From 4b308e8c396dc9af3e1a97f75d15c055e09a17b2 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Tue, 28 Jul 2015 00:38:59 +0200 Subject: 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 diff --git a/drivers/iio/adc/berlin2-adc.c b/drivers/iio/adc/berlin2-adc.c index 4946d9b..6e20c85 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; -- cgit v0.10.2 From 3ac065224fa07ec7e60213d67464388ac8a52222 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Tue, 28 Jul 2015 00:39:03 +0200 Subject: 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 diff --git a/drivers/iio/adc/berlin2-adc.c b/drivers/iio/adc/berlin2-adc.c index 6e20c85..13cfeb4 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; -- cgit v0.10.2 From b465fc5499083d0b7086ae590cb852c0052622a0 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Tue, 28 Jul 2015 00:39:04 +0200 Subject: 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 diff --git a/drivers/iio/adc/berlin2-adc.c b/drivers/iio/adc/berlin2-adc.c index 13cfeb4..71c806e 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; } -- cgit v0.10.2 From 7c7a9eeaa335df03d692ad65e0767020ad1be374 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Thu, 9 Jul 2015 23:51:31 +0200 Subject: 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 diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c index f101bb5..09f2f6a 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; } -- cgit v0.10.2 From 952c3aa3fb5538aa5026980cfdedb3d38829b67e Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Thu, 9 Jul 2015 23:51:32 +0200 Subject: 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 diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c index 09f2f6a..e5e0b04 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))); -- cgit v0.10.2 From 5b958f110f8b11f9bb6c62e713b83768b1375f31 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Thu, 9 Jul 2015 23:51:33 +0200 Subject: 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 diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c index e5e0b04..25c6a71 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; } } -- cgit v0.10.2 From 2427d22de807b40f72175c8c9b1ff8a07275ad82 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 17 Jul 2015 10:52:25 +0200 Subject: 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 diff --git a/drivers/iio/magnetometer/Kconfig b/drivers/iio/magnetometer/Kconfig index efb9350..868abad 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 33b1d4d..2c72df4 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 -- cgit v0.10.2 From 47d5e30ae38ba81600bd2c3292b39d31792470c7 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Sun, 21 Jun 2015 12:15:51 +0200 Subject: 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 diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index 50c103d..deea62c 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 a096210..fa5723a 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 -- cgit v0.10.2 From 050ee2f16e245b42c9ba30640bb91b309b424c48 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Fri, 14 Aug 2015 16:54:54 +0200 Subject: 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 diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index 4011eff..b52c8a3 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 698afc2..09d8ec5 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/buffer_cb.c deleted file mode 100644 index 1648e6e..0000000 --- a/drivers/iio/buffer_cb.c +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include -#include -#include -#include -#include - -struct iio_cb_buffer { - struct iio_buffer buffer; - int (*cb)(const void *data, void *private); - void *private; - struct iio_channel *channels; -}; - -static struct iio_cb_buffer *buffer_to_cb_buffer(struct iio_buffer *buffer) -{ - return container_of(buffer, struct iio_cb_buffer, buffer); -} - -static int iio_buffer_cb_store_to(struct iio_buffer *buffer, const void *data) -{ - struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer); - return cb_buff->cb(data, cb_buff->private); -} - -static void iio_buffer_cb_release(struct iio_buffer *buffer) -{ - struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer); - kfree(cb_buff->buffer.scan_mask); - kfree(cb_buff); -} - -static const struct iio_buffer_access_funcs iio_cb_access = { - .store_to = &iio_buffer_cb_store_to, - .release = &iio_buffer_cb_release, - - .modes = INDIO_BUFFER_SOFTWARE | INDIO_BUFFER_TRIGGERED, -}; - -struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev, - int (*cb)(const void *data, - void *private), - void *private) -{ - int ret; - struct iio_cb_buffer *cb_buff; - struct iio_dev *indio_dev; - struct iio_channel *chan; - - cb_buff = kzalloc(sizeof(*cb_buff), GFP_KERNEL); - if (cb_buff == NULL) - return ERR_PTR(-ENOMEM); - - iio_buffer_init(&cb_buff->buffer); - - cb_buff->private = private; - cb_buff->cb = cb; - cb_buff->buffer.access = &iio_cb_access; - INIT_LIST_HEAD(&cb_buff->buffer.demux_list); - - cb_buff->channels = iio_channel_get_all(dev); - if (IS_ERR(cb_buff->channels)) { - ret = PTR_ERR(cb_buff->channels); - goto error_free_cb_buff; - } - - indio_dev = cb_buff->channels[0].indio_dev; - cb_buff->buffer.scan_mask - = kcalloc(BITS_TO_LONGS(indio_dev->masklength), sizeof(long), - GFP_KERNEL); - if (cb_buff->buffer.scan_mask == NULL) { - ret = -ENOMEM; - goto error_release_channels; - } - chan = &cb_buff->channels[0]; - while (chan->indio_dev) { - if (chan->indio_dev != indio_dev) { - ret = -EINVAL; - goto error_free_scan_mask; - } - set_bit(chan->channel->scan_index, - cb_buff->buffer.scan_mask); - chan++; - } - - return cb_buff; - -error_free_scan_mask: - kfree(cb_buff->buffer.scan_mask); -error_release_channels: - iio_channel_release_all(cb_buff->channels); -error_free_cb_buff: - kfree(cb_buff); - return ERR_PTR(ret); -} -EXPORT_SYMBOL_GPL(iio_channel_get_all_cb); - -int iio_channel_start_all_cb(struct iio_cb_buffer *cb_buff) -{ - return iio_update_buffers(cb_buff->channels[0].indio_dev, - &cb_buff->buffer, - NULL); -} -EXPORT_SYMBOL_GPL(iio_channel_start_all_cb); - -void iio_channel_stop_all_cb(struct iio_cb_buffer *cb_buff) -{ - iio_update_buffers(cb_buff->channels[0].indio_dev, - NULL, - &cb_buff->buffer); -} -EXPORT_SYMBOL_GPL(iio_channel_stop_all_cb); - -void iio_channel_release_all_cb(struct iio_cb_buffer *cb_buff) -{ - iio_channel_release_all(cb_buff->channels); - iio_buffer_put(&cb_buff->buffer); -} -EXPORT_SYMBOL_GPL(iio_channel_release_all_cb); - -struct iio_channel -*iio_channel_cb_get_channels(const struct iio_cb_buffer *cb_buffer) -{ - return cb_buffer->channels; -} -EXPORT_SYMBOL_GPL(iio_channel_cb_get_channels); diff --git a/drivers/iio/industrialio-buffer-cb.c b/drivers/iio/industrialio-buffer-cb.c new file mode 100644 index 0000000..323079c --- /dev/null +++ b/drivers/iio/industrialio-buffer-cb.c @@ -0,0 +1,138 @@ +/* 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 +#include +#include + +struct iio_cb_buffer { + struct iio_buffer buffer; + int (*cb)(const void *data, void *private); + void *private; + struct iio_channel *channels; +}; + +static struct iio_cb_buffer *buffer_to_cb_buffer(struct iio_buffer *buffer) +{ + return container_of(buffer, struct iio_cb_buffer, buffer); +} + +static int iio_buffer_cb_store_to(struct iio_buffer *buffer, const void *data) +{ + struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer); + return cb_buff->cb(data, cb_buff->private); +} + +static void iio_buffer_cb_release(struct iio_buffer *buffer) +{ + struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer); + kfree(cb_buff->buffer.scan_mask); + kfree(cb_buff); +} + +static const struct iio_buffer_access_funcs iio_cb_access = { + .store_to = &iio_buffer_cb_store_to, + .release = &iio_buffer_cb_release, + + .modes = INDIO_BUFFER_SOFTWARE | INDIO_BUFFER_TRIGGERED, +}; + +struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev, + int (*cb)(const void *data, + void *private), + void *private) +{ + int ret; + struct iio_cb_buffer *cb_buff; + struct iio_dev *indio_dev; + struct iio_channel *chan; + + cb_buff = kzalloc(sizeof(*cb_buff), GFP_KERNEL); + if (cb_buff == NULL) + return ERR_PTR(-ENOMEM); + + iio_buffer_init(&cb_buff->buffer); + + cb_buff->private = private; + cb_buff->cb = cb; + cb_buff->buffer.access = &iio_cb_access; + INIT_LIST_HEAD(&cb_buff->buffer.demux_list); + + cb_buff->channels = iio_channel_get_all(dev); + if (IS_ERR(cb_buff->channels)) { + ret = PTR_ERR(cb_buff->channels); + goto error_free_cb_buff; + } + + indio_dev = cb_buff->channels[0].indio_dev; + cb_buff->buffer.scan_mask + = kcalloc(BITS_TO_LONGS(indio_dev->masklength), sizeof(long), + GFP_KERNEL); + if (cb_buff->buffer.scan_mask == NULL) { + ret = -ENOMEM; + goto error_release_channels; + } + chan = &cb_buff->channels[0]; + while (chan->indio_dev) { + if (chan->indio_dev != indio_dev) { + ret = -EINVAL; + goto error_free_scan_mask; + } + set_bit(chan->channel->scan_index, + cb_buff->buffer.scan_mask); + chan++; + } + + return cb_buff; + +error_free_scan_mask: + kfree(cb_buff->buffer.scan_mask); +error_release_channels: + iio_channel_release_all(cb_buff->channels); +error_free_cb_buff: + kfree(cb_buff); + return ERR_PTR(ret); +} +EXPORT_SYMBOL_GPL(iio_channel_get_all_cb); + +int iio_channel_start_all_cb(struct iio_cb_buffer *cb_buff) +{ + return iio_update_buffers(cb_buff->channels[0].indio_dev, + &cb_buff->buffer, + NULL); +} +EXPORT_SYMBOL_GPL(iio_channel_start_all_cb); + +void iio_channel_stop_all_cb(struct iio_cb_buffer *cb_buff) +{ + iio_update_buffers(cb_buff->channels[0].indio_dev, + NULL, + &cb_buff->buffer); +} +EXPORT_SYMBOL_GPL(iio_channel_stop_all_cb); + +void iio_channel_release_all_cb(struct iio_cb_buffer *cb_buff) +{ + iio_channel_release_all(cb_buff->channels); + iio_buffer_put(&cb_buff->buffer); +} +EXPORT_SYMBOL_GPL(iio_channel_release_all_cb); + +struct iio_channel +*iio_channel_cb_get_channels(const struct iio_cb_buffer *cb_buffer) +{ + 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"); -- cgit v0.10.2 From 8548a63b37be4891e7972ba058b785d9468e8907 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Fri, 14 Aug 2015 16:54:55 +0200 Subject: 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 diff --git a/Documentation/DocBook/iio.tmpl b/Documentation/DocBook/iio.tmpl index 06bb53d..98be322 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 b52c8a3..3c6c6e2 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 09d8ec5..7ddb988 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 0000000..0a7b2fd --- /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 0000000..4d193b9 --- /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/buffer/industrialio-buffer-cb.c b/drivers/iio/buffer/industrialio-buffer-cb.c new file mode 100644 index 0000000..323079c --- /dev/null +++ b/drivers/iio/buffer/industrialio-buffer-cb.c @@ -0,0 +1,138 @@ +/* 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 +#include +#include + +struct iio_cb_buffer { + struct iio_buffer buffer; + int (*cb)(const void *data, void *private); + void *private; + struct iio_channel *channels; +}; + +static struct iio_cb_buffer *buffer_to_cb_buffer(struct iio_buffer *buffer) +{ + return container_of(buffer, struct iio_cb_buffer, buffer); +} + +static int iio_buffer_cb_store_to(struct iio_buffer *buffer, const void *data) +{ + struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer); + return cb_buff->cb(data, cb_buff->private); +} + +static void iio_buffer_cb_release(struct iio_buffer *buffer) +{ + struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer); + kfree(cb_buff->buffer.scan_mask); + kfree(cb_buff); +} + +static const struct iio_buffer_access_funcs iio_cb_access = { + .store_to = &iio_buffer_cb_store_to, + .release = &iio_buffer_cb_release, + + .modes = INDIO_BUFFER_SOFTWARE | INDIO_BUFFER_TRIGGERED, +}; + +struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev, + int (*cb)(const void *data, + void *private), + void *private) +{ + int ret; + struct iio_cb_buffer *cb_buff; + struct iio_dev *indio_dev; + struct iio_channel *chan; + + cb_buff = kzalloc(sizeof(*cb_buff), GFP_KERNEL); + if (cb_buff == NULL) + return ERR_PTR(-ENOMEM); + + iio_buffer_init(&cb_buff->buffer); + + cb_buff->private = private; + cb_buff->cb = cb; + cb_buff->buffer.access = &iio_cb_access; + INIT_LIST_HEAD(&cb_buff->buffer.demux_list); + + cb_buff->channels = iio_channel_get_all(dev); + if (IS_ERR(cb_buff->channels)) { + ret = PTR_ERR(cb_buff->channels); + goto error_free_cb_buff; + } + + indio_dev = cb_buff->channels[0].indio_dev; + cb_buff->buffer.scan_mask + = kcalloc(BITS_TO_LONGS(indio_dev->masklength), sizeof(long), + GFP_KERNEL); + if (cb_buff->buffer.scan_mask == NULL) { + ret = -ENOMEM; + goto error_release_channels; + } + chan = &cb_buff->channels[0]; + while (chan->indio_dev) { + if (chan->indio_dev != indio_dev) { + ret = -EINVAL; + goto error_free_scan_mask; + } + set_bit(chan->channel->scan_index, + cb_buff->buffer.scan_mask); + chan++; + } + + return cb_buff; + +error_free_scan_mask: + kfree(cb_buff->buffer.scan_mask); +error_release_channels: + iio_channel_release_all(cb_buff->channels); +error_free_cb_buff: + kfree(cb_buff); + return ERR_PTR(ret); +} +EXPORT_SYMBOL_GPL(iio_channel_get_all_cb); + +int iio_channel_start_all_cb(struct iio_cb_buffer *cb_buff) +{ + return iio_update_buffers(cb_buff->channels[0].indio_dev, + &cb_buff->buffer, + NULL); +} +EXPORT_SYMBOL_GPL(iio_channel_start_all_cb); + +void iio_channel_stop_all_cb(struct iio_cb_buffer *cb_buff) +{ + iio_update_buffers(cb_buff->channels[0].indio_dev, + NULL, + &cb_buff->buffer); +} +EXPORT_SYMBOL_GPL(iio_channel_stop_all_cb); + +void iio_channel_release_all_cb(struct iio_cb_buffer *cb_buff) +{ + iio_channel_release_all(cb_buff->channels); + iio_buffer_put(&cb_buff->buffer); +} +EXPORT_SYMBOL_GPL(iio_channel_release_all_cb); + +struct iio_channel +*iio_channel_cb_get_channels(const struct iio_cb_buffer *cb_buffer) +{ + 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"); diff --git a/drivers/iio/buffer/industrialio-triggered-buffer.c b/drivers/iio/buffer/industrialio-triggered-buffer.c new file mode 100644 index 0000000..4b2858b --- /dev/null +++ b/drivers/iio/buffer/industrialio-triggered-buffer.c @@ -0,0 +1,103 @@ + /* + * Copyright (c) 2012 Analog Devices, Inc. + * Author: Lars-Peter Clausen + * + * 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 +#include +#include +#include + +static const struct iio_buffer_setup_ops iio_triggered_buffer_setup_ops = { + .postenable = &iio_triggered_buffer_postenable, + .predisable = &iio_triggered_buffer_predisable, +}; + +/** + * iio_triggered_buffer_setup() - Setup triggered buffer and pollfunc + * @indio_dev: IIO device structure + * @h: Function which will be used as pollfunc top half + * @thread: Function which will be used as pollfunc bottom half + * @setup_ops: Buffer setup functions to use for this device. + * If NULL the default setup functions for triggered + * buffers will be used. + * + * This function combines some common tasks which will normally be performed + * when setting up a triggered buffer. It will allocate the buffer and the + * pollfunc. + * + * 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_buffer_cleanup(). + */ +int iio_triggered_buffer_setup(struct iio_dev *indio_dev, + irqreturn_t (*h)(int irq, void *p), + irqreturn_t (*thread)(int irq, void *p), + const struct iio_buffer_setup_ops *setup_ops) +{ + struct iio_buffer *buffer; + int ret; + + buffer = iio_kfifo_allocate(); + if (!buffer) { + ret = -ENOMEM; + goto error_ret; + } + + iio_device_attach_buffer(indio_dev, buffer); + + indio_dev->pollfunc = iio_alloc_pollfunc(h, + thread, + IRQF_ONESHOT, + indio_dev, + "%s_consumer%d", + indio_dev->name, + indio_dev->id); + if (indio_dev->pollfunc == NULL) { + ret = -ENOMEM; + goto error_kfifo_free; + } + + /* Ring buffer functions - here trigger setup related */ + if (setup_ops) + indio_dev->setup_ops = setup_ops; + else + indio_dev->setup_ops = &iio_triggered_buffer_setup_ops; + + /* Flag that polled ring buffering is possible */ + indio_dev->modes |= INDIO_BUFFER_TRIGGERED; + + return 0; + +error_kfifo_free: + iio_kfifo_free(indio_dev->buffer); +error_ret: + return ret; +} +EXPORT_SYMBOL(iio_triggered_buffer_setup); + +/** + * iio_triggered_buffer_cleanup() - Free resources allocated by iio_triggered_buffer_setup() + * @indio_dev: IIO device structure + */ +void iio_triggered_buffer_cleanup(struct iio_dev *indio_dev) +{ + iio_dealloc_pollfunc(indio_dev->pollfunc); + iio_kfifo_free(indio_dev->buffer); +} +EXPORT_SYMBOL(iio_triggered_buffer_cleanup); + +MODULE_AUTHOR("Lars-Peter Clausen "); +MODULE_DESCRIPTION("IIO helper functions for setting up triggered buffers"); +MODULE_LICENSE("GPL"); diff --git a/drivers/iio/buffer/kfifo_buf.c b/drivers/iio/buffer/kfifo_buf.c new file mode 100644 index 0000000..c5b999f --- /dev/null +++ b/drivers/iio/buffer/kfifo_buf.c @@ -0,0 +1,221 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct iio_kfifo { + struct iio_buffer buffer; + struct kfifo kf; + struct mutex user_lock; + int update_needed; +}; + +#define iio_to_kfifo(r) container_of(r, struct iio_kfifo, buffer) + +static inline int __iio_allocate_kfifo(struct iio_kfifo *buf, + int bytes_per_datum, int length) +{ + if ((length == 0) || (bytes_per_datum == 0)) + return -EINVAL; + + return __kfifo_alloc((struct __kfifo *)&buf->kf, length, + bytes_per_datum, GFP_KERNEL); +} + +static int iio_request_update_kfifo(struct iio_buffer *r) +{ + int ret = 0; + struct iio_kfifo *buf = iio_to_kfifo(r); + + mutex_lock(&buf->user_lock); + if (buf->update_needed) { + kfifo_free(&buf->kf); + ret = __iio_allocate_kfifo(buf, buf->buffer.bytes_per_datum, + buf->buffer.length); + if (ret >= 0) + buf->update_needed = false; + } else { + kfifo_reset_out(&buf->kf); + } + mutex_unlock(&buf->user_lock); + + return ret; +} + +static int iio_mark_update_needed_kfifo(struct iio_buffer *r) +{ + struct iio_kfifo *kf = iio_to_kfifo(r); + kf->update_needed = true; + return 0; +} + +static int iio_set_bytes_per_datum_kfifo(struct iio_buffer *r, size_t bpd) +{ + if (r->bytes_per_datum != bpd) { + r->bytes_per_datum = bpd; + iio_mark_update_needed_kfifo(r); + } + return 0; +} + +static int iio_set_length_kfifo(struct iio_buffer *r, int length) +{ + /* Avoid an invalid state */ + if (length < 2) + length = 2; + if (r->length != length) { + r->length = length; + iio_mark_update_needed_kfifo(r); + } + return 0; +} + +static int iio_store_to_kfifo(struct iio_buffer *r, + const void *data) +{ + int ret; + struct iio_kfifo *kf = iio_to_kfifo(r); + ret = kfifo_in(&kf->kf, data, 1); + if (ret != 1) + return -EBUSY; + return 0; +} + +static int iio_read_first_n_kfifo(struct iio_buffer *r, + size_t n, char __user *buf) +{ + int ret, copied; + struct iio_kfifo *kf = iio_to_kfifo(r); + + if (mutex_lock_interruptible(&kf->user_lock)) + return -ERESTARTSYS; + + if (!kfifo_initialized(&kf->kf) || n < kfifo_esize(&kf->kf)) + ret = -EINVAL; + else + ret = kfifo_to_user(&kf->kf, buf, n, &copied); + mutex_unlock(&kf->user_lock); + if (ret < 0) + return ret; + + return copied; +} + +static size_t iio_kfifo_buf_data_available(struct iio_buffer *r) +{ + struct iio_kfifo *kf = iio_to_kfifo(r); + size_t samples; + + mutex_lock(&kf->user_lock); + samples = kfifo_len(&kf->kf); + mutex_unlock(&kf->user_lock); + + return samples; +} + +static void iio_kfifo_buffer_release(struct iio_buffer *buffer) +{ + struct iio_kfifo *kf = iio_to_kfifo(buffer); + + mutex_destroy(&kf->user_lock); + kfifo_free(&kf->kf); + kfree(kf); +} + +static const struct iio_buffer_access_funcs kfifo_access_funcs = { + .store_to = &iio_store_to_kfifo, + .read_first_n = &iio_read_first_n_kfifo, + .data_available = iio_kfifo_buf_data_available, + .request_update = &iio_request_update_kfifo, + .set_bytes_per_datum = &iio_set_bytes_per_datum_kfifo, + .set_length = &iio_set_length_kfifo, + .release = &iio_kfifo_buffer_release, + + .modes = INDIO_BUFFER_SOFTWARE | INDIO_BUFFER_TRIGGERED, +}; + +struct iio_buffer *iio_kfifo_allocate(void) +{ + struct iio_kfifo *kf; + + kf = kzalloc(sizeof(*kf), GFP_KERNEL); + if (!kf) + return NULL; + + kf->update_needed = true; + iio_buffer_init(&kf->buffer); + kf->buffer.access = &kfifo_access_funcs; + kf->buffer.length = 2; + mutex_init(&kf->user_lock); + + return &kf->buffer; +} +EXPORT_SYMBOL(iio_kfifo_allocate); + +void iio_kfifo_free(struct iio_buffer *r) +{ + iio_buffer_put(r); +} +EXPORT_SYMBOL(iio_kfifo_free); + +static void devm_iio_kfifo_release(struct device *dev, void *res) +{ + iio_kfifo_free(*(struct iio_buffer **)res); +} + +static int devm_iio_kfifo_match(struct device *dev, void *res, void *data) +{ + struct iio_buffer **r = res; + + if (WARN_ON(!r || !*r)) + return 0; + + return *r == data; +} + +/** + * devm_iio_fifo_allocate - Resource-managed iio_kfifo_allocate() + * @dev: Device to allocate kfifo buffer for + * + * RETURNS: + * Pointer to allocated iio_buffer on success, NULL on failure. + */ +struct iio_buffer *devm_iio_kfifo_allocate(struct device *dev) +{ + struct iio_buffer **ptr, *r; + + ptr = devres_alloc(devm_iio_kfifo_release, sizeof(*ptr), GFP_KERNEL); + if (!ptr) + return NULL; + + r = iio_kfifo_allocate(); + if (r) { + *ptr = r; + devres_add(dev, ptr); + } else { + devres_free(ptr); + } + + return r; +} +EXPORT_SYMBOL(devm_iio_kfifo_allocate); + +/** + * devm_iio_fifo_free - Resource-managed iio_kfifo_free() + * @dev: Device the buffer belongs to + * @r: The buffer associated with the device + */ +void devm_iio_kfifo_free(struct device *dev, struct iio_buffer *r) +{ + WARN_ON(devres_release(dev, devm_iio_kfifo_release, + devm_iio_kfifo_match, r)); +} +EXPORT_SYMBOL(devm_iio_kfifo_free); + +MODULE_LICENSE("GPL"); diff --git a/drivers/iio/industrialio-buffer-cb.c b/drivers/iio/industrialio-buffer-cb.c deleted file mode 100644 index 323079c..0000000 --- a/drivers/iio/industrialio-buffer-cb.c +++ /dev/null @@ -1,138 +0,0 @@ -/* 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 -#include -#include - -struct iio_cb_buffer { - struct iio_buffer buffer; - int (*cb)(const void *data, void *private); - void *private; - struct iio_channel *channels; -}; - -static struct iio_cb_buffer *buffer_to_cb_buffer(struct iio_buffer *buffer) -{ - return container_of(buffer, struct iio_cb_buffer, buffer); -} - -static int iio_buffer_cb_store_to(struct iio_buffer *buffer, const void *data) -{ - struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer); - return cb_buff->cb(data, cb_buff->private); -} - -static void iio_buffer_cb_release(struct iio_buffer *buffer) -{ - struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer); - kfree(cb_buff->buffer.scan_mask); - kfree(cb_buff); -} - -static const struct iio_buffer_access_funcs iio_cb_access = { - .store_to = &iio_buffer_cb_store_to, - .release = &iio_buffer_cb_release, - - .modes = INDIO_BUFFER_SOFTWARE | INDIO_BUFFER_TRIGGERED, -}; - -struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev, - int (*cb)(const void *data, - void *private), - void *private) -{ - int ret; - struct iio_cb_buffer *cb_buff; - struct iio_dev *indio_dev; - struct iio_channel *chan; - - cb_buff = kzalloc(sizeof(*cb_buff), GFP_KERNEL); - if (cb_buff == NULL) - return ERR_PTR(-ENOMEM); - - iio_buffer_init(&cb_buff->buffer); - - cb_buff->private = private; - cb_buff->cb = cb; - cb_buff->buffer.access = &iio_cb_access; - INIT_LIST_HEAD(&cb_buff->buffer.demux_list); - - cb_buff->channels = iio_channel_get_all(dev); - if (IS_ERR(cb_buff->channels)) { - ret = PTR_ERR(cb_buff->channels); - goto error_free_cb_buff; - } - - indio_dev = cb_buff->channels[0].indio_dev; - cb_buff->buffer.scan_mask - = kcalloc(BITS_TO_LONGS(indio_dev->masklength), sizeof(long), - GFP_KERNEL); - if (cb_buff->buffer.scan_mask == NULL) { - ret = -ENOMEM; - goto error_release_channels; - } - chan = &cb_buff->channels[0]; - while (chan->indio_dev) { - if (chan->indio_dev != indio_dev) { - ret = -EINVAL; - goto error_free_scan_mask; - } - set_bit(chan->channel->scan_index, - cb_buff->buffer.scan_mask); - chan++; - } - - return cb_buff; - -error_free_scan_mask: - kfree(cb_buff->buffer.scan_mask); -error_release_channels: - iio_channel_release_all(cb_buff->channels); -error_free_cb_buff: - kfree(cb_buff); - return ERR_PTR(ret); -} -EXPORT_SYMBOL_GPL(iio_channel_get_all_cb); - -int iio_channel_start_all_cb(struct iio_cb_buffer *cb_buff) -{ - return iio_update_buffers(cb_buff->channels[0].indio_dev, - &cb_buff->buffer, - NULL); -} -EXPORT_SYMBOL_GPL(iio_channel_start_all_cb); - -void iio_channel_stop_all_cb(struct iio_cb_buffer *cb_buff) -{ - iio_update_buffers(cb_buff->channels[0].indio_dev, - NULL, - &cb_buff->buffer); -} -EXPORT_SYMBOL_GPL(iio_channel_stop_all_cb); - -void iio_channel_release_all_cb(struct iio_cb_buffer *cb_buff) -{ - iio_channel_release_all(cb_buff->channels); - iio_buffer_put(&cb_buff->buffer); -} -EXPORT_SYMBOL_GPL(iio_channel_release_all_cb); - -struct iio_channel -*iio_channel_cb_get_channels(const struct iio_cb_buffer *cb_buffer) -{ - 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"); diff --git a/drivers/iio/industrialio-triggered-buffer.c b/drivers/iio/industrialio-triggered-buffer.c deleted file mode 100644 index 4b2858b..0000000 --- a/drivers/iio/industrialio-triggered-buffer.c +++ /dev/null @@ -1,103 +0,0 @@ - /* - * Copyright (c) 2012 Analog Devices, Inc. - * Author: Lars-Peter Clausen - * - * 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 -#include -#include -#include - -static const struct iio_buffer_setup_ops iio_triggered_buffer_setup_ops = { - .postenable = &iio_triggered_buffer_postenable, - .predisable = &iio_triggered_buffer_predisable, -}; - -/** - * iio_triggered_buffer_setup() - Setup triggered buffer and pollfunc - * @indio_dev: IIO device structure - * @h: Function which will be used as pollfunc top half - * @thread: Function which will be used as pollfunc bottom half - * @setup_ops: Buffer setup functions to use for this device. - * If NULL the default setup functions for triggered - * buffers will be used. - * - * This function combines some common tasks which will normally be performed - * when setting up a triggered buffer. It will allocate the buffer and the - * pollfunc. - * - * 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_buffer_cleanup(). - */ -int iio_triggered_buffer_setup(struct iio_dev *indio_dev, - irqreturn_t (*h)(int irq, void *p), - irqreturn_t (*thread)(int irq, void *p), - const struct iio_buffer_setup_ops *setup_ops) -{ - struct iio_buffer *buffer; - int ret; - - buffer = iio_kfifo_allocate(); - if (!buffer) { - ret = -ENOMEM; - goto error_ret; - } - - iio_device_attach_buffer(indio_dev, buffer); - - indio_dev->pollfunc = iio_alloc_pollfunc(h, - thread, - IRQF_ONESHOT, - indio_dev, - "%s_consumer%d", - indio_dev->name, - indio_dev->id); - if (indio_dev->pollfunc == NULL) { - ret = -ENOMEM; - goto error_kfifo_free; - } - - /* Ring buffer functions - here trigger setup related */ - if (setup_ops) - indio_dev->setup_ops = setup_ops; - else - indio_dev->setup_ops = &iio_triggered_buffer_setup_ops; - - /* Flag that polled ring buffering is possible */ - indio_dev->modes |= INDIO_BUFFER_TRIGGERED; - - return 0; - -error_kfifo_free: - iio_kfifo_free(indio_dev->buffer); -error_ret: - return ret; -} -EXPORT_SYMBOL(iio_triggered_buffer_setup); - -/** - * iio_triggered_buffer_cleanup() - Free resources allocated by iio_triggered_buffer_setup() - * @indio_dev: IIO device structure - */ -void iio_triggered_buffer_cleanup(struct iio_dev *indio_dev) -{ - iio_dealloc_pollfunc(indio_dev->pollfunc); - iio_kfifo_free(indio_dev->buffer); -} -EXPORT_SYMBOL(iio_triggered_buffer_cleanup); - -MODULE_AUTHOR("Lars-Peter Clausen "); -MODULE_DESCRIPTION("IIO helper functions for setting up triggered buffers"); -MODULE_LICENSE("GPL"); diff --git a/drivers/iio/kfifo_buf.c b/drivers/iio/kfifo_buf.c deleted file mode 100644 index c5b999f..0000000 --- a/drivers/iio/kfifo_buf.c +++ /dev/null @@ -1,221 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -struct iio_kfifo { - struct iio_buffer buffer; - struct kfifo kf; - struct mutex user_lock; - int update_needed; -}; - -#define iio_to_kfifo(r) container_of(r, struct iio_kfifo, buffer) - -static inline int __iio_allocate_kfifo(struct iio_kfifo *buf, - int bytes_per_datum, int length) -{ - if ((length == 0) || (bytes_per_datum == 0)) - return -EINVAL; - - return __kfifo_alloc((struct __kfifo *)&buf->kf, length, - bytes_per_datum, GFP_KERNEL); -} - -static int iio_request_update_kfifo(struct iio_buffer *r) -{ - int ret = 0; - struct iio_kfifo *buf = iio_to_kfifo(r); - - mutex_lock(&buf->user_lock); - if (buf->update_needed) { - kfifo_free(&buf->kf); - ret = __iio_allocate_kfifo(buf, buf->buffer.bytes_per_datum, - buf->buffer.length); - if (ret >= 0) - buf->update_needed = false; - } else { - kfifo_reset_out(&buf->kf); - } - mutex_unlock(&buf->user_lock); - - return ret; -} - -static int iio_mark_update_needed_kfifo(struct iio_buffer *r) -{ - struct iio_kfifo *kf = iio_to_kfifo(r); - kf->update_needed = true; - return 0; -} - -static int iio_set_bytes_per_datum_kfifo(struct iio_buffer *r, size_t bpd) -{ - if (r->bytes_per_datum != bpd) { - r->bytes_per_datum = bpd; - iio_mark_update_needed_kfifo(r); - } - return 0; -} - -static int iio_set_length_kfifo(struct iio_buffer *r, int length) -{ - /* Avoid an invalid state */ - if (length < 2) - length = 2; - if (r->length != length) { - r->length = length; - iio_mark_update_needed_kfifo(r); - } - return 0; -} - -static int iio_store_to_kfifo(struct iio_buffer *r, - const void *data) -{ - int ret; - struct iio_kfifo *kf = iio_to_kfifo(r); - ret = kfifo_in(&kf->kf, data, 1); - if (ret != 1) - return -EBUSY; - return 0; -} - -static int iio_read_first_n_kfifo(struct iio_buffer *r, - size_t n, char __user *buf) -{ - int ret, copied; - struct iio_kfifo *kf = iio_to_kfifo(r); - - if (mutex_lock_interruptible(&kf->user_lock)) - return -ERESTARTSYS; - - if (!kfifo_initialized(&kf->kf) || n < kfifo_esize(&kf->kf)) - ret = -EINVAL; - else - ret = kfifo_to_user(&kf->kf, buf, n, &copied); - mutex_unlock(&kf->user_lock); - if (ret < 0) - return ret; - - return copied; -} - -static size_t iio_kfifo_buf_data_available(struct iio_buffer *r) -{ - struct iio_kfifo *kf = iio_to_kfifo(r); - size_t samples; - - mutex_lock(&kf->user_lock); - samples = kfifo_len(&kf->kf); - mutex_unlock(&kf->user_lock); - - return samples; -} - -static void iio_kfifo_buffer_release(struct iio_buffer *buffer) -{ - struct iio_kfifo *kf = iio_to_kfifo(buffer); - - mutex_destroy(&kf->user_lock); - kfifo_free(&kf->kf); - kfree(kf); -} - -static const struct iio_buffer_access_funcs kfifo_access_funcs = { - .store_to = &iio_store_to_kfifo, - .read_first_n = &iio_read_first_n_kfifo, - .data_available = iio_kfifo_buf_data_available, - .request_update = &iio_request_update_kfifo, - .set_bytes_per_datum = &iio_set_bytes_per_datum_kfifo, - .set_length = &iio_set_length_kfifo, - .release = &iio_kfifo_buffer_release, - - .modes = INDIO_BUFFER_SOFTWARE | INDIO_BUFFER_TRIGGERED, -}; - -struct iio_buffer *iio_kfifo_allocate(void) -{ - struct iio_kfifo *kf; - - kf = kzalloc(sizeof(*kf), GFP_KERNEL); - if (!kf) - return NULL; - - kf->update_needed = true; - iio_buffer_init(&kf->buffer); - kf->buffer.access = &kfifo_access_funcs; - kf->buffer.length = 2; - mutex_init(&kf->user_lock); - - return &kf->buffer; -} -EXPORT_SYMBOL(iio_kfifo_allocate); - -void iio_kfifo_free(struct iio_buffer *r) -{ - iio_buffer_put(r); -} -EXPORT_SYMBOL(iio_kfifo_free); - -static void devm_iio_kfifo_release(struct device *dev, void *res) -{ - iio_kfifo_free(*(struct iio_buffer **)res); -} - -static int devm_iio_kfifo_match(struct device *dev, void *res, void *data) -{ - struct iio_buffer **r = res; - - if (WARN_ON(!r || !*r)) - return 0; - - return *r == data; -} - -/** - * devm_iio_fifo_allocate - Resource-managed iio_kfifo_allocate() - * @dev: Device to allocate kfifo buffer for - * - * RETURNS: - * Pointer to allocated iio_buffer on success, NULL on failure. - */ -struct iio_buffer *devm_iio_kfifo_allocate(struct device *dev) -{ - struct iio_buffer **ptr, *r; - - ptr = devres_alloc(devm_iio_kfifo_release, sizeof(*ptr), GFP_KERNEL); - if (!ptr) - return NULL; - - r = iio_kfifo_allocate(); - if (r) { - *ptr = r; - devres_add(dev, ptr); - } else { - devres_free(ptr); - } - - return r; -} -EXPORT_SYMBOL(devm_iio_kfifo_allocate); - -/** - * devm_iio_fifo_free - Resource-managed iio_kfifo_free() - * @dev: Device the buffer belongs to - * @r: The buffer associated with the device - */ -void devm_iio_kfifo_free(struct device *dev, struct iio_buffer *r) -{ - WARN_ON(devres_release(dev, devm_iio_kfifo_release, - devm_iio_kfifo_match, r)); -} -EXPORT_SYMBOL(devm_iio_kfifo_free); - -MODULE_LICENSE("GPL"); -- cgit v0.10.2 From c6c9e995bcd8349f271b39e6abd9bd2f090ec5bd Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 12 Aug 2015 16:50:04 +0200 Subject: 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 diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig index 8d24393..cf82d74 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 460bf71..d3c5300 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); - 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); + 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 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); - 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); + 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 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); - 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); + 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 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) -- cgit v0.10.2 From 74e04345dc7e111fd151923d2de32267f1aae321 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 12 Aug 2015 16:50:05 +0200 Subject: 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 diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160.c index d3c5300..e73f7f2 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; } -- cgit v0.10.2 From ebc6eb5907acecdebbd0e180a754d98f21045fbc Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 12 Aug 2015 16:50:06 +0200 Subject: 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 diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160.c index e73f7f2..7492532 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; -- cgit v0.10.2 From 5d889abbe5c39c0c9ebe468dbcab2688324a33fc Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 12 Aug 2015 16:50:07 +0200 Subject: iio: bmg160: Remove remaining uses of i2c_client Signed-off-by: Markus Pargmann Signed-off-by: Jonathan Cameron diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160.c index 7492532..ca12402 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; -- cgit v0.10.2 From e0950d3b9e88051082f7d5a60a0f8156285cbb6d Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Wed, 12 Aug 2015 14:28:34 +0300 Subject: 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 diff --git a/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs b/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs index bbb0392..76698d2 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. -- cgit v0.10.2 From 8d96fc276aaec449871bcb86cef41f3187136f0a Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Wed, 12 Aug 2015 14:29:41 +0300 Subject: 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 diff --git a/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs b/Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs index 76698d2..04ac623 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. -- cgit v0.10.2 From a0175b9c76f59c1f5706f986d690e27ba06363dd Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Wed, 12 Aug 2015 10:22:41 +0200 Subject: 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 diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c index ff30f88..dab8b76 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 2e7fdb5..25258e2 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 4b993a5..02eddce 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 f8dc4b8..b27f014 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 eb41d2b..b39a2fb 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 3c17cd7..2fe939c 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); -- cgit v0.10.2 From 672f93b6047cc724f002cf50a84f4e8155b86f12 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Tue, 11 Aug 2015 14:34:38 +0200 Subject: 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 diff --git a/tools/iio/iio_event_monitor.c b/tools/iio/iio_event_monitor.c index cd3fd41..d51eb04 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"); -- cgit v0.10.2 From 53dabafe1b17411de82b6c4560145cf396cbb564 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Mon, 10 Aug 2015 10:55:08 +0200 Subject: 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 diff --git a/tools/iio/generic_buffer.c b/tools/iio/generic_buffer.c index 9f7b85b..01c4f67 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. -- cgit v0.10.2 From 3f9059b71791cf0e57a4879594f0066237976943 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Tue, 11 Aug 2015 11:56:40 +0200 Subject: 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 diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index b3fcc2c..b347524 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; -- cgit v0.10.2 From 70b2737e0a948552843ce1b8500e033080677086 Mon Sep 17 00:00:00 2001 From: Yong Li Date: Wed, 12 Aug 2015 21:25:46 +0800 Subject: 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 diff --git a/drivers/staging/iio/magnetometer/hmc5843.h b/drivers/staging/iio/magnetometer/hmc5843.h index f3d0da2..06f35d3 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 fffca3a..4aab022 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 ff08667..3e06ceb 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 8e658f7..8a80d01 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) -- cgit v0.10.2 From 70581e0ef8634074cc305f9e63e8abec08788753 Mon Sep 17 00:00:00 2001 From: Xander Huff Date: Tue, 11 Aug 2015 18:00:49 -0500 Subject: 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 diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c index ce93bd8..0370624 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 54adc50..f6f0819 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; }; -- cgit v0.10.2 From 8463f6fb78e0798817785e03860f8b1fc4e1b2e8 Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Tue, 11 Aug 2015 13:18:18 +0300 Subject: 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 diff --git a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c index 3c1c8c6..9fe48ef 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 0c1976d..a2a42c2 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; -- cgit v0.10.2 From a6d748e3ad927f6f2b93c9747d78da72c83141b6 Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Tue, 11 Aug 2015 13:20:53 +0300 Subject: 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 diff --git a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c index a2a42c2..2db8857 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; -- cgit v0.10.2 From 45ef12b6ad6ade7bb8c89db3d3101e99d9552f3a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:15 +0200 Subject: 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 diff --git a/drivers/staging/iio/magnetometer/hmc5843_spi.c b/drivers/staging/iio/magnetometer/hmc5843_spi.c index 8a80d01..1549192 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 = { -- cgit v0.10.2 From d1b895fedae30e2e948dbae4d209509c44564074 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:24 +0200 Subject: 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 diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c index 44bf815..54a8302 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, -- cgit v0.10.2 From 8b7c826d03721ed1d96bd87f138e59dcf80f54e7 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:27 +0200 Subject: 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 diff --git a/drivers/iio/proximity/as3935.c b/drivers/iio/proximity/as3935.c index bc0d68e..e950351 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, }, -- cgit v0.10.2 From 9e611c9e5a20c28f426271a0c2c962795b699069 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:28 +0200 Subject: 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 diff --git a/drivers/iio/adc/ti-adc128s052.c b/drivers/iio/adc/ti-adc128s052.c index 915be6b..98c0d2b 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, -- cgit v0.10.2 From 9c68be3ecc74e1ccc085eab6f0cdbaff3093fba2 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:29 +0200 Subject: 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 diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c index 9890c81..9a6ef3c 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, -- cgit v0.10.2 From 1c00dcd31d8e71670180ff938f05eb9aef49c84e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:23 +0200 Subject: 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 diff --git a/drivers/iio/dac/ad7303.c b/drivers/iio/dac/ad7303.c index fa28100..18a4ad5 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, -- cgit v0.10.2 From ed199a11bdfd2957e46984b77a1e1f0927dc9fa0 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:14 +0200 Subject: 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 diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c index c0d364e..32b82a2 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 9a6ef3c..73f27e0 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 = { -- cgit v0.10.2 From ab6ff6c6ca1b4739b2af07501bc333b85d7381d8 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:26 +0200 Subject: 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 diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c index b19e4f9..41a21e9 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, -- cgit v0.10.2 From ecf7e207a55d8760734a9de5fba1a974628b92e5 Mon Sep 17 00:00:00 2001 From: Nicola Corna Date: Sun, 23 Aug 2015 23:06:19 +0200 Subject: 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 diff --git a/drivers/iio/humidity/si7020.c b/drivers/iio/humidity/si7020.c index fa3b809..12128d1 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) -- cgit v0.10.2 From 764589b688a1b087b5ff6c1e99f7cd57a5241395 Mon Sep 17 00:00:00 2001 From: Crt Mori Date: Mon, 17 Aug 2015 19:34:33 +0200 Subject: 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 diff --git a/MAINTAINERS b/MAINTAINERS index fb7d3b6..d8bf36d 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 5d033a5..3fd3ba4 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; } @@ -263,6 +329,18 @@ static int mlx90614_write_raw(struct iio_dev *indio_dev, 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"); -- cgit v0.10.2 From 735ad074ffa72ccc4fdba8e54eb024df95545e7d Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Thu, 20 Aug 2015 22:37:39 +0300 Subject: 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 diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index 3c6c6e2..6fe0d65 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 7ddb988..40995f3 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 b347524..bef690e 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 570606c..ae2806a 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 0000000..8cc254f --- /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 7bb7f67..19c94c9 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 0000000..8fe8537 --- /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 -- cgit v0.10.2 From 3f4642fc06a51e203b01cf29c418d0833761c4d3 Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Thu, 20 Aug 2015 22:38:08 +0300 Subject: 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 diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index d444757..bc64cc9 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 -- cgit v0.10.2 From a8dbc64a2619b82ec0106f2c54174a94d74da620 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Sun, 30 Aug 2015 16:46:57 +0800 Subject: 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 diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index 923aa6a..01e111e 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, }, }; -- cgit v0.10.2 From f6707ef7a3c9196faee1841f4d12e990239f5dae Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Sun, 30 Aug 2015 16:12:57 +0800 Subject: 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 diff --git a/drivers/staging/iio/adc/lpc32xx_adc.c b/drivers/staging/iio/adc/lpc32xx_adc.c index 5331c44..bcf4ebb 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, -- cgit v0.10.2 From 0010d6b444064029f924b4973f74b87579daddc6 Mon Sep 17 00:00:00 2001 From: Sanchayan Maity Date: Mon, 17 Aug 2015 21:21:40 +0530 Subject: 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 diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index deea62c..2753118 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 6bf4c20..635ccd8 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); -- cgit v0.10.2 From 078d02cfdafdd06562286b2f222e6532f369eb27 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Mon, 17 Aug 2015 10:30:15 -0700 Subject: 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 diff --git a/Documentation/devicetree/bindings/iio/light/apds9960.txt b/Documentation/devicetree/bindings/iio/light/apds9960.txt new file mode 100644 index 0000000..174b709 --- /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>; +}; -- cgit v0.10.2 From aff268cd532e99ced3c8f48d01118912eb002bbf Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Mon, 17 Aug 2015 10:30:16 -0700 Subject: 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 diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig index 7ed859a..19b9a17 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 91c74c0..7b22445 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 0000000..27f4157 --- /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"); -- cgit v0.10.2 From 7d87b3c5c8602df4ce6d615b33ae6dc15438fa29 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 18 Aug 2015 12:16:33 +0300 Subject: 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 diff --git a/drivers/iio/light/tsl4531.c b/drivers/iio/light/tsl4531.c index 2697918..cf94ec7 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, -- cgit v0.10.2 From 12280bd3d5d7e1ba1dd60ba0bd4412f4056fc028 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 18 Aug 2015 07:40:37 -0700 Subject: 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 diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt index 00f8652..af1bc50 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 bc64cc9..341695b 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 -- cgit v0.10.2 From cb119d5350839297bbe8a382dbb2feff545742b5 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 18 Aug 2015 07:40:38 -0700 Subject: 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 diff --git a/drivers/iio/proximity/Kconfig b/drivers/iio/proximity/Kconfig index 41a8d8f..ef4c73d 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 9818dc5..9aadd9a 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 0000000..185a7ab --- /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"); -- cgit v0.10.2 From 13426454b6493a847cebe276fb1ec3a7f1d48d0e Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 19 Aug 2015 14:12:45 +0200 Subject: 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 diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig index cf82d74..94526b1 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 f46341b..6084010 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.c b/drivers/iio/gyro/bmg160.c deleted file mode 100644 index ca12402..0000000 --- a/drivers/iio/gyro/bmg160.c +++ /dev/null @@ -1,1249 +0,0 @@ -/* - * BMG160 Gyro Sensor driver - * 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define BMG160_DRV_NAME "bmg160" -#define BMG160_IRQ_NAME "bmg160_event" -#define BMG160_GPIO_NAME "gpio_int" - -#define BMG160_REG_CHIP_ID 0x00 -#define BMG160_CHIP_ID_VAL 0x0F - -#define BMG160_REG_PMU_LPW 0x11 -#define BMG160_MODE_NORMAL 0x00 -#define BMG160_MODE_DEEP_SUSPEND 0x20 -#define BMG160_MODE_SUSPEND 0x80 - -#define BMG160_REG_RANGE 0x0F - -#define BMG160_RANGE_2000DPS 0 -#define BMG160_RANGE_1000DPS 1 -#define BMG160_RANGE_500DPS 2 -#define BMG160_RANGE_250DPS 3 -#define BMG160_RANGE_125DPS 4 - -#define BMG160_REG_PMU_BW 0x10 -#define BMG160_NO_FILTER 0 -#define BMG160_DEF_BW 100 - -#define BMG160_REG_INT_MAP_0 0x17 -#define BMG160_INT_MAP_0_BIT_ANY BIT(1) - -#define BMG160_REG_INT_MAP_1 0x18 -#define BMG160_INT_MAP_1_BIT_NEW_DATA BIT(0) - -#define BMG160_REG_INT_RST_LATCH 0x21 -#define BMG160_INT_MODE_LATCH_RESET 0x80 -#define BMG160_INT_MODE_LATCH_INT 0x0F -#define BMG160_INT_MODE_NON_LATCH_INT 0x00 - -#define BMG160_REG_INT_EN_0 0x15 -#define BMG160_DATA_ENABLE_INT BIT(7) - -#define BMG160_REG_INT_EN_1 0x16 -#define BMG160_INT1_BIT_OD BIT(1) - -#define BMG160_REG_XOUT_L 0x02 -#define BMG160_AXIS_TO_REG(axis) (BMG160_REG_XOUT_L + (axis * 2)) - -#define BMG160_REG_SLOPE_THRES 0x1B -#define BMG160_SLOPE_THRES_MASK 0x0F - -#define BMG160_REG_MOTION_INTR 0x1C -#define BMG160_INT_MOTION_X BIT(0) -#define BMG160_INT_MOTION_Y BIT(1) -#define BMG160_INT_MOTION_Z BIT(2) -#define BMG160_ANY_DUR_MASK 0x30 -#define BMG160_ANY_DUR_SHIFT 4 - -#define BMG160_REG_INT_STATUS_2 0x0B -#define BMG160_ANY_MOTION_MASK 0x07 -#define BMG160_ANY_MOTION_BIT_X BIT(0) -#define BMG160_ANY_MOTION_BIT_Y BIT(1) -#define BMG160_ANY_MOTION_BIT_Z BIT(2) - -#define BMG160_REG_TEMP 0x08 -#define BMG160_TEMP_CENTER_VAL 23 - -#define BMG160_MAX_STARTUP_TIME_MS 80 - -#define BMG160_AUTO_SUSPEND_DELAY_MS 2000 - -struct bmg160_data { - struct device *dev; - struct regmap *regmap; - struct iio_trigger *dready_trig; - struct iio_trigger *motion_trig; - struct mutex mutex; - s16 buffer[8]; - u8 bw_bits; - u32 dps_range; - int ev_enable_state; - int slope_thres; - bool dready_trigger_on; - bool motion_trigger_on; - int irq; -}; - -enum bmg160_axis { - AXIS_X, - AXIS_Y, - AXIS_Z, -}; - -static const struct { - int val; - int bw_bits; -} bmg160_samp_freq_table[] = { {100, 0x07}, - {200, 0x06}, - {400, 0x03}, - {1000, 0x02}, - {2000, 0x01} }; - -static const struct { - int scale; - int dps_range; -} bmg160_scale_table[] = { { 1065, BMG160_RANGE_2000DPS}, - { 532, BMG160_RANGE_1000DPS}, - { 266, BMG160_RANGE_500DPS}, - { 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 = regmap_write(data->regmap, BMG160_REG_PMU_LPW, mode); - if (ret < 0) { - dev_err(data->dev, "Error writing reg_pmu_lpw\n"); - return ret; - } - - return 0; -} - -static int bmg160_convert_freq_to_bit(int val) -{ - int i; - - for (i = 0; i < ARRAY_SIZE(bmg160_samp_freq_table); ++i) { - if (bmg160_samp_freq_table[i].val == val) - return bmg160_samp_freq_table[i].bw_bits; - } - - return -EINVAL; -} - -static int bmg160_set_bw(struct bmg160_data *data, int val) -{ - int ret; - int bw_bits; - - bw_bits = bmg160_convert_freq_to_bit(val); - if (bw_bits < 0) - return bw_bits; - - ret = regmap_write(data->regmap, BMG160_REG_PMU_BW, bw_bits); - if (ret < 0) { - dev_err(data->dev, "Error writing reg_pmu_bw\n"); - return ret; - } - - data->bw_bits = bw_bits; - - return 0; -} - -static int bmg160_chip_init(struct bmg160_data *data) -{ - int ret; - unsigned int val; - - ret = regmap_read(data->regmap, BMG160_REG_CHIP_ID, &val); - if (ret < 0) { - dev_err(data->dev, "Error reading reg_chip_id\n"); - return ret; - } - - dev_dbg(data->dev, "Chip Id %x\n", val); - if (val != BMG160_CHIP_ID_VAL) { - dev_err(data->dev, "invalid chip %x\n", val); - return -ENODEV; - } - - ret = bmg160_set_mode(data, BMG160_MODE_NORMAL); - if (ret < 0) - return ret; - - /* Wait upto 500 ms to be ready after changing mode */ - usleep_range(500, 1000); - - /* Set Bandwidth */ - ret = bmg160_set_bw(data, BMG160_DEF_BW); - if (ret < 0) - return ret; - - /* Set Default Range */ - ret = regmap_write(data->regmap, BMG160_REG_RANGE, BMG160_RANGE_500DPS); - if (ret < 0) { - 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->dev, "Error reading reg_slope_thres\n"); - return ret; - } - data->slope_thres = val; - - /* Set default interrupt mode */ - ret = regmap_update_bits(data->regmap, BMG160_REG_INT_EN_1, - BMG160_INT1_BIT_OD, 0); - if (ret < 0) { - dev_err(data->dev, "Error updating bits in reg_int_en_1\n"); - return ret; - } - - 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->dev, - "Error writing reg_motion_intr\n"); - return ret; - } - - return 0; -} - -static int bmg160_set_power_state(struct bmg160_data *data, bool on) -{ -#ifdef CONFIG_PM - int ret; - - if (on) - ret = pm_runtime_get_sync(data->dev); - else { - pm_runtime_mark_last_busy(data->dev); - ret = pm_runtime_put_autosuspend(data->dev); - } - - if (ret < 0) { - dev_err(data->dev, - "Failed: bmg160_set_power_state for %d\n", on); - if (on) - pm_runtime_put_noidle(data->dev); - - return ret; - } -#endif - - return 0; -} - -static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, - bool status) -{ - int ret; - - /* Enable/Disable INT_MAP0 mapping */ - 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->dev, "Error updating bits reg_int_map0\n"); - return ret; - } - - /* Enable/Disable slope interrupts */ - if (status) { - /* Update slope thres */ - ret = regmap_write(data->regmap, BMG160_REG_SLOPE_THRES, - data->slope_thres); - if (ret < 0) { - dev_err(data->dev, - "Error writing reg_slope_thres\n"); - return ret; - } - - 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->dev, - "Error writing reg_motion_intr\n"); - return ret; - } - - /* - * New data interrupt is always non-latched, - * which will have higher priority, so no need - * to set latched mode, we will be flooded anyway with INTR - */ - if (!data->dready_trigger_on) { - 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->dev, - "Error writing reg_rst_latch\n"); - return ret; - } - } - - ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, - BMG160_DATA_ENABLE_INT); - - } else { - ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, 0); - } - - if (ret < 0) { - dev_err(data->dev, "Error writing reg_int_en0\n"); - return ret; - } - - return 0; -} - -static int bmg160_setup_new_data_interrupt(struct bmg160_data *data, - bool status) -{ - int ret; - - /* Enable/Disable INT_MAP1 mapping */ - 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->dev, "Error updating bits in reg_int_map1\n"); - return ret; - } - - if (status) { - 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->dev, - "Error writing reg_rst_latch\n"); - return ret; - } - - ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, - BMG160_DATA_ENABLE_INT); - - } else { - /* Restore interrupt mode */ - 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->dev, - "Error writing reg_rst_latch\n"); - return ret; - } - - ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, 0); - } - - if (ret < 0) { - dev_err(data->dev, "Error writing reg_int_en0\n"); - return ret; - } - - return 0; -} - -static int bmg160_get_bw(struct bmg160_data *data, int *val) -{ - int i; - - for (i = 0; i < ARRAY_SIZE(bmg160_samp_freq_table); ++i) { - if (bmg160_samp_freq_table[i].bw_bits == data->bw_bits) { - *val = bmg160_samp_freq_table[i].val; - return IIO_VAL_INT; - } - } - - return -EINVAL; -} - -static int bmg160_set_scale(struct bmg160_data *data, int val) -{ - int ret, i; - - for (i = 0; i < ARRAY_SIZE(bmg160_scale_table); ++i) { - if (bmg160_scale_table[i].scale == val) { - ret = regmap_write(data->regmap, BMG160_REG_RANGE, - bmg160_scale_table[i].dps_range); - if (ret < 0) { - dev_err(data->dev, - "Error writing reg_range\n"); - return ret; - } - data->dps_range = bmg160_scale_table[i].dps_range; - return 0; - } - } - - return -EINVAL; -} - -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); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - - ret = regmap_read(data->regmap, BMG160_REG_TEMP, &raw_val); - if (ret < 0) { - dev_err(data->dev, "Error reading reg_temp\n"); - bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - } - - *val = sign_extend32(raw_val, 7); - ret = bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - if (ret < 0) - return ret; - - return IIO_VAL_INT; -} - -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); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - - ret = regmap_bulk_read(data->regmap, BMG160_AXIS_TO_REG(axis), &raw_val, - 2); - if (ret < 0) { - dev_err(data->dev, "Error reading axis %d\n", axis); - bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - } - - *val = sign_extend32(raw_val, 15); - ret = bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - if (ret < 0) - return ret; - - return IIO_VAL_INT; -} - -static int bmg160_read_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, - int *val, int *val2, long mask) -{ - struct bmg160_data *data = iio_priv(indio_dev); - int ret; - - switch (mask) { - case IIO_CHAN_INFO_RAW: - switch (chan->type) { - case IIO_TEMP: - return bmg160_get_temp(data, val); - case IIO_ANGL_VEL: - if (iio_buffer_enabled(indio_dev)) - return -EBUSY; - else - return bmg160_get_axis(data, chan->scan_index, - val); - default: - return -EINVAL; - } - case IIO_CHAN_INFO_OFFSET: - if (chan->type == IIO_TEMP) { - *val = BMG160_TEMP_CENTER_VAL; - return IIO_VAL_INT; - } else - return -EINVAL; - case IIO_CHAN_INFO_SCALE: - *val = 0; - switch (chan->type) { - case IIO_TEMP: - *val2 = 500000; - return IIO_VAL_INT_PLUS_MICRO; - case IIO_ANGL_VEL: - { - int i; - - for (i = 0; i < ARRAY_SIZE(bmg160_scale_table); ++i) { - if (bmg160_scale_table[i].dps_range == - data->dps_range) { - *val2 = bmg160_scale_table[i].scale; - return IIO_VAL_INT_PLUS_MICRO; - } - } - return -EINVAL; - } - default: - return -EINVAL; - } - case IIO_CHAN_INFO_SAMP_FREQ: - *val2 = 0; - mutex_lock(&data->mutex); - ret = bmg160_get_bw(data, val); - mutex_unlock(&data->mutex); - return ret; - default: - return -EINVAL; - } -} - -static int bmg160_write_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, - int val, int val2, long mask) -{ - struct bmg160_data *data = iio_priv(indio_dev); - int ret; - - switch (mask) { - case IIO_CHAN_INFO_SAMP_FREQ: - mutex_lock(&data->mutex); - /* - * Section 4.2 of spec - * In suspend mode, the only supported operations are reading - * registers as well as writing to the (0x14) softreset - * register. Since we will be in suspend mode by default, change - * mode to power on for other writes. - */ - ret = bmg160_set_power_state(data, true); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - ret = bmg160_set_bw(data, val); - if (ret < 0) { - bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - } - ret = bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - case IIO_CHAN_INFO_SCALE: - if (val) - return -EINVAL; - - mutex_lock(&data->mutex); - /* Refer to comments above for the suspend mode ops */ - ret = bmg160_set_power_state(data, true); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - ret = bmg160_set_scale(data, val2); - if (ret < 0) { - bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - } - ret = bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - default: - return -EINVAL; - } - - return -EINVAL; -} - -static int bmg160_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) -{ - struct bmg160_data *data = iio_priv(indio_dev); - - *val2 = 0; - switch (info) { - case IIO_EV_INFO_VALUE: - *val = data->slope_thres & BMG160_SLOPE_THRES_MASK; - break; - default: - return -EINVAL; - } - - return IIO_VAL_INT; -} - -static int bmg160_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) -{ - struct bmg160_data *data = iio_priv(indio_dev); - - switch (info) { - case IIO_EV_INFO_VALUE: - if (data->ev_enable_state) - return -EBUSY; - data->slope_thres &= ~BMG160_SLOPE_THRES_MASK; - data->slope_thres |= (val & BMG160_SLOPE_THRES_MASK); - break; - default: - return -EINVAL; - } - - return 0; -} - -static int bmg160_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 bmg160_data *data = iio_priv(indio_dev); - - return data->ev_enable_state; -} - -static int bmg160_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 bmg160_data *data = iio_priv(indio_dev); - int ret; - - if (state && data->ev_enable_state) - return 0; - - mutex_lock(&data->mutex); - - if (!state && data->motion_trigger_on) { - data->ev_enable_state = 0; - mutex_unlock(&data->mutex); - return 0; - } - /* - * We will expect the enable and disable to do operation in - * in reverse order. This will happen here anyway as our - * resume operation uses sync mode runtime pm calls, the - * suspend operation will be delayed by autosuspend delay - * So the disable operation will still happen in reverse of - * enable operation. When runtime pm is disabled the mode - * is always on so sequence doesn't matter - */ - ret = bmg160_set_power_state(data, state); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - - ret = bmg160_setup_any_motion_interrupt(data, state); - if (ret < 0) { - bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - } - - data->ev_enable_state = state; - mutex_unlock(&data->mutex); - - return 0; -} - -static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("100 200 400 1000 2000"); - -static IIO_CONST_ATTR(in_anglvel_scale_available, - "0.001065 0.000532 0.000266 0.000133 0.000066"); - -static struct attribute *bmg160_attributes[] = { - &iio_const_attr_sampling_frequency_available.dev_attr.attr, - &iio_const_attr_in_anglvel_scale_available.dev_attr.attr, - NULL, -}; - -static const struct attribute_group bmg160_attrs_group = { - .attrs = bmg160_attributes, -}; - -static const struct iio_event_spec bmg160_event = { - .type = IIO_EV_TYPE_ROC, - .dir = IIO_EV_DIR_EITHER, - .mask_shared_by_type = BIT(IIO_EV_INFO_VALUE) | - BIT(IIO_EV_INFO_ENABLE) -}; - -#define BMG160_CHANNEL(_axis) { \ - .type = IIO_ANGL_VEL, \ - .modified = 1, \ - .channel2 = IIO_MOD_##_axis, \ - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) | \ - BIT(IIO_CHAN_INFO_SAMP_FREQ), \ - .scan_index = AXIS_##_axis, \ - .scan_type = { \ - .sign = 's', \ - .realbits = 16, \ - .storagebits = 16, \ - }, \ - .event_spec = &bmg160_event, \ - .num_event_specs = 1 \ -} - -static const struct iio_chan_spec bmg160_channels[] = { - { - .type = IIO_TEMP, - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | - BIT(IIO_CHAN_INFO_SCALE) | - BIT(IIO_CHAN_INFO_OFFSET), - .scan_index = -1, - }, - BMG160_CHANNEL(X), - BMG160_CHANNEL(Y), - BMG160_CHANNEL(Z), - IIO_CHAN_SOFT_TIMESTAMP(3), -}; - -static const struct iio_info bmg160_info = { - .attrs = &bmg160_attrs_group, - .read_raw = bmg160_read_raw, - .write_raw = bmg160_write_raw, - .read_event_value = bmg160_read_event, - .write_event_value = bmg160_write_event, - .write_event_config = bmg160_write_event_config, - .read_event_config = bmg160_read_event_config, - .driver_module = THIS_MODULE, -}; - -static irqreturn_t bmg160_trigger_handler(int irq, void *p) -{ - struct iio_poll_func *pf = 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 = regmap_bulk_read(data->regmap, BMG160_AXIS_TO_REG(bit), - &val, 2); - if (ret < 0) { - mutex_unlock(&data->mutex); - goto err; - } - data->buffer[i++] = ret; - } - mutex_unlock(&data->mutex); - - 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 bmg160_trig_try_reen(struct iio_trigger *trig) -{ - struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); - struct bmg160_data *data = iio_priv(indio_dev); - int ret; - - /* new data interrupts don't need ack */ - if (data->dready_trigger_on) - return 0; - - /* Set latched mode interrupt and clear any latched interrupt */ - 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->dev, "Error writing reg_rst_latch\n"); - return ret; - } - - return 0; -} - -static int bmg160_data_rdy_trigger_set_state(struct iio_trigger *trig, - bool state) -{ - struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); - struct bmg160_data *data = iio_priv(indio_dev); - int ret; - - mutex_lock(&data->mutex); - - if (!state && data->ev_enable_state && data->motion_trigger_on) { - data->motion_trigger_on = false; - mutex_unlock(&data->mutex); - return 0; - } - - /* - * Refer to comment in bmg160_write_event_config for - * enable/disable operation order - */ - ret = bmg160_set_power_state(data, state); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - if (data->motion_trig == trig) - ret = bmg160_setup_any_motion_interrupt(data, state); - else - ret = bmg160_setup_new_data_interrupt(data, state); - if (ret < 0) { - bmg160_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - } - if (data->motion_trig == trig) - data->motion_trigger_on = state; - else - data->dready_trigger_on = state; - - mutex_unlock(&data->mutex); - - return 0; -} - -static const struct iio_trigger_ops bmg160_trigger_ops = { - .set_trigger_state = bmg160_data_rdy_trigger_set_state, - .try_reenable = bmg160_trig_try_reen, - .owner = THIS_MODULE, -}; - -static irqreturn_t bmg160_event_handler(int irq, void *private) -{ - struct iio_dev *indio_dev = private; - struct bmg160_data *data = iio_priv(indio_dev); - int ret; - int dir; - unsigned int val; - - ret = regmap_read(data->regmap, BMG160_REG_INT_STATUS_2, &val); - if (ret < 0) { - dev_err(data->dev, "Error reading reg_int_status2\n"); - goto ack_intr_status; - } - - if (val & 0x08) - dir = IIO_EV_DIR_RISING; - else - dir = IIO_EV_DIR_FALLING; - - 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 (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 (val & BMG160_ANY_MOTION_BIT_Z) - iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ANGL_VEL, - 0, - IIO_MOD_Z, - IIO_EV_TYPE_ROC, - dir), - iio_get_time_ns()); - -ack_intr_status: - if (!data->dready_trigger_on) { - 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->dev, - "Error writing reg_rst_latch\n"); - } - - return IRQ_HANDLED; -} - -static irqreturn_t bmg160_data_rdy_trig_poll(int irq, void *private) -{ - struct iio_dev *indio_dev = private; - struct bmg160_data *data = iio_priv(indio_dev); - - if (data->dready_trigger_on) - iio_trigger_poll(data->dready_trig); - else if (data->motion_trigger_on) - iio_trigger_poll(data->motion_trig); - - if (data->ev_enable_state) - return IRQ_WAKE_THREAD; - else - return IRQ_HANDLED; - -} - -static int bmg160_buffer_preenable(struct iio_dev *indio_dev) -{ - struct bmg160_data *data = iio_priv(indio_dev); - - return bmg160_set_power_state(data, true); -} - -static int bmg160_buffer_postdisable(struct iio_dev *indio_dev) -{ - struct bmg160_data *data = iio_priv(indio_dev); - - return bmg160_set_power_state(data, false); -} - -static const struct iio_buffer_setup_ops bmg160_buffer_setup_ops = { - .preenable = bmg160_buffer_preenable, - .postenable = iio_triggered_buffer_postenable, - .predisable = iio_triggered_buffer_predisable, - .postdisable = bmg160_buffer_postdisable, -}; - -static int bmg160_gpio_probe(struct bmg160_data *data) - -{ - struct device *dev; - struct gpio_desc *gpio; - - dev = data->dev; - - /* data ready gpio interrupt pin */ - gpio = devm_gpiod_get_index(dev, BMG160_GPIO_NAME, 0, GPIOD_IN); - if (IS_ERR(gpio)) { - dev_err(dev, "acpi gpio get index failed\n"); - return PTR_ERR(gpio); - } - - data->irq = gpiod_to_irq(gpio); - - dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), - data->irq); - - return 0; -} - -static const char *bmg160_match_acpi_device(struct device *dev) -{ - const struct acpi_device_id *id; - - id = acpi_match_device(dev->driver->acpi_match_table, dev); - if (!id) - return NULL; - - return dev_name(dev); -} - -static int bmg160_probe(struct i2c_client *client, - const struct i2c_device_id *id) -{ - 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)); - if (!indio_dev) - return -ENOMEM; - - data = iio_priv(indio_dev); - dev_set_drvdata(dev, indio_dev); - data->dev = dev; - data->irq = client->irq; - - ret = bmg160_chip_init(data); - if (ret < 0) - return ret; - - mutex_init(&data->mutex); - - if (id) - name = id->name; - - if (ACPI_HANDLE(dev)) - name = bmg160_match_acpi_device(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 (data->irq <= 0) - bmg160_gpio_probe(data); - - if (data->irq > 0) { - ret = devm_request_threaded_irq(dev, - data->irq, - bmg160_data_rdy_trig_poll, - bmg160_event_handler, - IRQF_TRIGGER_RISING, - BMG160_IRQ_NAME, - indio_dev); - if (ret) - return ret; - - 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(dev, - "%s-any-motion-dev%d", - indio_dev->name, - indio_dev->id); - if (!data->motion_trig) - return -ENOMEM; - - 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 = dev; - data->motion_trig->ops = &bmg160_trigger_ops; - iio_trigger_set_drvdata(data->motion_trig, indio_dev); - ret = iio_trigger_register(data->motion_trig); - if (ret) { - data->motion_trig = NULL; - goto err_trigger_unregister; - } - } - - ret = iio_triggered_buffer_setup(indio_dev, - iio_pollfunc_store_time, - bmg160_trigger_handler, - &bmg160_buffer_setup_ops); - if (ret < 0) { - dev_err(dev, - "iio triggered buffer setup failed\n"); - goto err_trigger_unregister; - } - - ret = iio_device_register(indio_dev); - if (ret < 0) { - dev_err(dev, "unable to register iio device\n"); - goto err_buffer_cleanup; - } - - ret = pm_runtime_set_active(dev); - if (ret) - goto err_iio_unregister; - - pm_runtime_enable(dev); - pm_runtime_set_autosuspend_delay(dev, - BMG160_AUTO_SUSPEND_DELAY_MS); - pm_runtime_use_autosuspend(dev); - - return 0; - -err_iio_unregister: - iio_device_unregister(indio_dev); -err_buffer_cleanup: - iio_triggered_buffer_cleanup(indio_dev); -err_trigger_unregister: - if (data->dready_trig) - iio_trigger_unregister(data->dready_trig); - if (data->motion_trig) - iio_trigger_unregister(data->motion_trig); - - return ret; -} - -static int bmg160_remove(struct i2c_client *client) -{ - struct iio_dev *indio_dev = i2c_get_clientdata(client); - 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); - - iio_device_unregister(indio_dev); - iio_triggered_buffer_cleanup(indio_dev); - - if (data->dready_trig) { - iio_trigger_unregister(data->dready_trig); - iio_trigger_unregister(data->motion_trig); - } - - mutex_lock(&data->mutex); - bmg160_set_mode(data, BMG160_MODE_DEEP_SUSPEND); - mutex_unlock(&data->mutex); - - return 0; -} - -#ifdef CONFIG_PM_SLEEP -static int bmg160_suspend(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct bmg160_data *data = iio_priv(indio_dev); - - mutex_lock(&data->mutex); - bmg160_set_mode(data, BMG160_MODE_SUSPEND); - mutex_unlock(&data->mutex); - - return 0; -} - -static int bmg160_resume(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct bmg160_data *data = iio_priv(indio_dev); - - mutex_lock(&data->mutex); - if (data->dready_trigger_on || data->motion_trigger_on || - data->ev_enable_state) - bmg160_set_mode(data, BMG160_MODE_NORMAL); - mutex_unlock(&data->mutex); - - return 0; -} -#endif - -#ifdef CONFIG_PM -static int bmg160_runtime_suspend(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct bmg160_data *data = iio_priv(indio_dev); - int ret; - - ret = bmg160_set_mode(data, BMG160_MODE_SUSPEND); - if (ret < 0) { - dev_err(data->dev, "set mode failed\n"); - return -EAGAIN; - } - - return 0; -} - -static int bmg160_runtime_resume(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct bmg160_data *data = iio_priv(indio_dev); - int ret; - - ret = bmg160_set_mode(data, BMG160_MODE_NORMAL); - if (ret < 0) - return ret; - - msleep_interruptible(BMG160_MAX_STARTUP_TIME_MS); - - return 0; -} -#endif - -static 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); - -MODULE_AUTHOR("Srinivas Pandruvada "); -MODULE_LICENSE("GPL v2"); -MODULE_DESCRIPTION("BMG160 Gyro driver"); diff --git a/drivers/iio/gyro/bmg160.h b/drivers/iio/gyro/bmg160.h new file mode 100644 index 0000000..72db723 --- /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_core.c b/drivers/iio/gyro/bmg160_core.c new file mode 100644 index 0000000..02ff789 --- /dev/null +++ b/drivers/iio/gyro/bmg160_core.c @@ -0,0 +1,1203 @@ +/* + * BMG160 Gyro Sensor driver + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "bmg160.h" + +#define BMG160_IRQ_NAME "bmg160_event" +#define BMG160_GPIO_NAME "gpio_int" + +#define BMG160_REG_CHIP_ID 0x00 +#define BMG160_CHIP_ID_VAL 0x0F + +#define BMG160_REG_PMU_LPW 0x11 +#define BMG160_MODE_NORMAL 0x00 +#define BMG160_MODE_DEEP_SUSPEND 0x20 +#define BMG160_MODE_SUSPEND 0x80 + +#define BMG160_REG_RANGE 0x0F + +#define BMG160_RANGE_2000DPS 0 +#define BMG160_RANGE_1000DPS 1 +#define BMG160_RANGE_500DPS 2 +#define BMG160_RANGE_250DPS 3 +#define BMG160_RANGE_125DPS 4 + +#define BMG160_REG_PMU_BW 0x10 +#define BMG160_NO_FILTER 0 +#define BMG160_DEF_BW 100 + +#define BMG160_REG_INT_MAP_0 0x17 +#define BMG160_INT_MAP_0_BIT_ANY BIT(1) + +#define BMG160_REG_INT_MAP_1 0x18 +#define BMG160_INT_MAP_1_BIT_NEW_DATA BIT(0) + +#define BMG160_REG_INT_RST_LATCH 0x21 +#define BMG160_INT_MODE_LATCH_RESET 0x80 +#define BMG160_INT_MODE_LATCH_INT 0x0F +#define BMG160_INT_MODE_NON_LATCH_INT 0x00 + +#define BMG160_REG_INT_EN_0 0x15 +#define BMG160_DATA_ENABLE_INT BIT(7) + +#define BMG160_REG_INT_EN_1 0x16 +#define BMG160_INT1_BIT_OD BIT(1) + +#define BMG160_REG_XOUT_L 0x02 +#define BMG160_AXIS_TO_REG(axis) (BMG160_REG_XOUT_L + (axis * 2)) + +#define BMG160_REG_SLOPE_THRES 0x1B +#define BMG160_SLOPE_THRES_MASK 0x0F + +#define BMG160_REG_MOTION_INTR 0x1C +#define BMG160_INT_MOTION_X BIT(0) +#define BMG160_INT_MOTION_Y BIT(1) +#define BMG160_INT_MOTION_Z BIT(2) +#define BMG160_ANY_DUR_MASK 0x30 +#define BMG160_ANY_DUR_SHIFT 4 + +#define BMG160_REG_INT_STATUS_2 0x0B +#define BMG160_ANY_MOTION_MASK 0x07 +#define BMG160_ANY_MOTION_BIT_X BIT(0) +#define BMG160_ANY_MOTION_BIT_Y BIT(1) +#define BMG160_ANY_MOTION_BIT_Z BIT(2) + +#define BMG160_REG_TEMP 0x08 +#define BMG160_TEMP_CENTER_VAL 23 + +#define BMG160_MAX_STARTUP_TIME_MS 80 + +#define BMG160_AUTO_SUSPEND_DELAY_MS 2000 + +struct bmg160_data { + struct device *dev; + struct regmap *regmap; + struct iio_trigger *dready_trig; + struct iio_trigger *motion_trig; + struct mutex mutex; + s16 buffer[8]; + u8 bw_bits; + u32 dps_range; + int ev_enable_state; + int slope_thres; + bool dready_trigger_on; + bool motion_trigger_on; + int irq; +}; + +enum bmg160_axis { + AXIS_X, + AXIS_Y, + AXIS_Z, +}; + +static const struct { + int val; + int bw_bits; +} bmg160_samp_freq_table[] = { {100, 0x07}, + {200, 0x06}, + {400, 0x03}, + {1000, 0x02}, + {2000, 0x01} }; + +static const struct { + int scale; + int dps_range; +} bmg160_scale_table[] = { { 1065, BMG160_RANGE_2000DPS}, + { 532, BMG160_RANGE_1000DPS}, + { 266, BMG160_RANGE_500DPS}, + { 133, BMG160_RANGE_250DPS}, + { 66, BMG160_RANGE_125DPS} }; + +static int bmg160_set_mode(struct bmg160_data *data, u8 mode) +{ + int ret; + + ret = regmap_write(data->regmap, BMG160_REG_PMU_LPW, mode); + if (ret < 0) { + dev_err(data->dev, "Error writing reg_pmu_lpw\n"); + return ret; + } + + return 0; +} + +static int bmg160_convert_freq_to_bit(int val) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(bmg160_samp_freq_table); ++i) { + if (bmg160_samp_freq_table[i].val == val) + return bmg160_samp_freq_table[i].bw_bits; + } + + return -EINVAL; +} + +static int bmg160_set_bw(struct bmg160_data *data, int val) +{ + int ret; + int bw_bits; + + bw_bits = bmg160_convert_freq_to_bit(val); + if (bw_bits < 0) + return bw_bits; + + ret = regmap_write(data->regmap, BMG160_REG_PMU_BW, bw_bits); + if (ret < 0) { + dev_err(data->dev, "Error writing reg_pmu_bw\n"); + return ret; + } + + data->bw_bits = bw_bits; + + return 0; +} + +static int bmg160_chip_init(struct bmg160_data *data) +{ + int ret; + unsigned int val; + + ret = regmap_read(data->regmap, BMG160_REG_CHIP_ID, &val); + if (ret < 0) { + dev_err(data->dev, "Error reading reg_chip_id\n"); + return ret; + } + + dev_dbg(data->dev, "Chip Id %x\n", val); + if (val != BMG160_CHIP_ID_VAL) { + dev_err(data->dev, "invalid chip %x\n", val); + return -ENODEV; + } + + ret = bmg160_set_mode(data, BMG160_MODE_NORMAL); + if (ret < 0) + return ret; + + /* Wait upto 500 ms to be ready after changing mode */ + usleep_range(500, 1000); + + /* Set Bandwidth */ + ret = bmg160_set_bw(data, BMG160_DEF_BW); + if (ret < 0) + return ret; + + /* Set Default Range */ + ret = regmap_write(data->regmap, BMG160_REG_RANGE, BMG160_RANGE_500DPS); + if (ret < 0) { + 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->dev, "Error reading reg_slope_thres\n"); + return ret; + } + data->slope_thres = val; + + /* Set default interrupt mode */ + ret = regmap_update_bits(data->regmap, BMG160_REG_INT_EN_1, + BMG160_INT1_BIT_OD, 0); + if (ret < 0) { + dev_err(data->dev, "Error updating bits in reg_int_en_1\n"); + return ret; + } + + 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->dev, + "Error writing reg_motion_intr\n"); + return ret; + } + + return 0; +} + +static int bmg160_set_power_state(struct bmg160_data *data, bool on) +{ +#ifdef CONFIG_PM + int ret; + + if (on) + ret = pm_runtime_get_sync(data->dev); + else { + pm_runtime_mark_last_busy(data->dev); + ret = pm_runtime_put_autosuspend(data->dev); + } + + if (ret < 0) { + dev_err(data->dev, + "Failed: bmg160_set_power_state for %d\n", on); + if (on) + pm_runtime_put_noidle(data->dev); + + return ret; + } +#endif + + return 0; +} + +static int bmg160_setup_any_motion_interrupt(struct bmg160_data *data, + bool status) +{ + int ret; + + /* Enable/Disable INT_MAP0 mapping */ + 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->dev, "Error updating bits reg_int_map0\n"); + return ret; + } + + /* Enable/Disable slope interrupts */ + if (status) { + /* Update slope thres */ + ret = regmap_write(data->regmap, BMG160_REG_SLOPE_THRES, + data->slope_thres); + if (ret < 0) { + dev_err(data->dev, + "Error writing reg_slope_thres\n"); + return ret; + } + + 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->dev, + "Error writing reg_motion_intr\n"); + return ret; + } + + /* + * New data interrupt is always non-latched, + * which will have higher priority, so no need + * to set latched mode, we will be flooded anyway with INTR + */ + if (!data->dready_trigger_on) { + 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->dev, + "Error writing reg_rst_latch\n"); + return ret; + } + } + + ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, + BMG160_DATA_ENABLE_INT); + + } else { + ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, 0); + } + + if (ret < 0) { + dev_err(data->dev, "Error writing reg_int_en0\n"); + return ret; + } + + return 0; +} + +static int bmg160_setup_new_data_interrupt(struct bmg160_data *data, + bool status) +{ + int ret; + + /* Enable/Disable INT_MAP1 mapping */ + 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->dev, "Error updating bits in reg_int_map1\n"); + return ret; + } + + if (status) { + 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->dev, + "Error writing reg_rst_latch\n"); + return ret; + } + + ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, + BMG160_DATA_ENABLE_INT); + + } else { + /* Restore interrupt mode */ + 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->dev, + "Error writing reg_rst_latch\n"); + return ret; + } + + ret = regmap_write(data->regmap, BMG160_REG_INT_EN_0, 0); + } + + if (ret < 0) { + dev_err(data->dev, "Error writing reg_int_en0\n"); + return ret; + } + + return 0; +} + +static int bmg160_get_bw(struct bmg160_data *data, int *val) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(bmg160_samp_freq_table); ++i) { + if (bmg160_samp_freq_table[i].bw_bits == data->bw_bits) { + *val = bmg160_samp_freq_table[i].val; + return IIO_VAL_INT; + } + } + + return -EINVAL; +} + +static int bmg160_set_scale(struct bmg160_data *data, int val) +{ + int ret, i; + + for (i = 0; i < ARRAY_SIZE(bmg160_scale_table); ++i) { + if (bmg160_scale_table[i].scale == val) { + ret = regmap_write(data->regmap, BMG160_REG_RANGE, + bmg160_scale_table[i].dps_range); + if (ret < 0) { + dev_err(data->dev, + "Error writing reg_range\n"); + return ret; + } + data->dps_range = bmg160_scale_table[i].dps_range; + return 0; + } + } + + return -EINVAL; +} + +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); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + + ret = regmap_read(data->regmap, BMG160_REG_TEMP, &raw_val); + if (ret < 0) { + dev_err(data->dev, "Error reading reg_temp\n"); + bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + } + + *val = sign_extend32(raw_val, 7); + ret = bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + if (ret < 0) + return ret; + + return IIO_VAL_INT; +} + +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); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + + ret = regmap_bulk_read(data->regmap, BMG160_AXIS_TO_REG(axis), &raw_val, + 2); + if (ret < 0) { + dev_err(data->dev, "Error reading axis %d\n", axis); + bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + } + + *val = sign_extend32(raw_val, 15); + ret = bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + if (ret < 0) + return ret; + + return IIO_VAL_INT; +} + +static int bmg160_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) +{ + struct bmg160_data *data = iio_priv(indio_dev); + int ret; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + switch (chan->type) { + case IIO_TEMP: + return bmg160_get_temp(data, val); + case IIO_ANGL_VEL: + if (iio_buffer_enabled(indio_dev)) + return -EBUSY; + else + return bmg160_get_axis(data, chan->scan_index, + val); + default: + return -EINVAL; + } + case IIO_CHAN_INFO_OFFSET: + if (chan->type == IIO_TEMP) { + *val = BMG160_TEMP_CENTER_VAL; + return IIO_VAL_INT; + } else + return -EINVAL; + case IIO_CHAN_INFO_SCALE: + *val = 0; + switch (chan->type) { + case IIO_TEMP: + *val2 = 500000; + return IIO_VAL_INT_PLUS_MICRO; + case IIO_ANGL_VEL: + { + int i; + + for (i = 0; i < ARRAY_SIZE(bmg160_scale_table); ++i) { + if (bmg160_scale_table[i].dps_range == + data->dps_range) { + *val2 = bmg160_scale_table[i].scale; + return IIO_VAL_INT_PLUS_MICRO; + } + } + return -EINVAL; + } + default: + return -EINVAL; + } + case IIO_CHAN_INFO_SAMP_FREQ: + *val2 = 0; + mutex_lock(&data->mutex); + ret = bmg160_get_bw(data, val); + mutex_unlock(&data->mutex); + return ret; + default: + return -EINVAL; + } +} + +static int bmg160_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct bmg160_data *data = iio_priv(indio_dev); + int ret; + + switch (mask) { + case IIO_CHAN_INFO_SAMP_FREQ: + mutex_lock(&data->mutex); + /* + * Section 4.2 of spec + * In suspend mode, the only supported operations are reading + * registers as well as writing to the (0x14) softreset + * register. Since we will be in suspend mode by default, change + * mode to power on for other writes. + */ + ret = bmg160_set_power_state(data, true); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + ret = bmg160_set_bw(data, val); + if (ret < 0) { + bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + } + ret = bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + case IIO_CHAN_INFO_SCALE: + if (val) + return -EINVAL; + + mutex_lock(&data->mutex); + /* Refer to comments above for the suspend mode ops */ + ret = bmg160_set_power_state(data, true); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + ret = bmg160_set_scale(data, val2); + if (ret < 0) { + bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + } + ret = bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + default: + return -EINVAL; + } + + return -EINVAL; +} + +static int bmg160_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) +{ + struct bmg160_data *data = iio_priv(indio_dev); + + *val2 = 0; + switch (info) { + case IIO_EV_INFO_VALUE: + *val = data->slope_thres & BMG160_SLOPE_THRES_MASK; + break; + default: + return -EINVAL; + } + + return IIO_VAL_INT; +} + +static int bmg160_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) +{ + struct bmg160_data *data = iio_priv(indio_dev); + + switch (info) { + case IIO_EV_INFO_VALUE: + if (data->ev_enable_state) + return -EBUSY; + data->slope_thres &= ~BMG160_SLOPE_THRES_MASK; + data->slope_thres |= (val & BMG160_SLOPE_THRES_MASK); + break; + default: + return -EINVAL; + } + + return 0; +} + +static int bmg160_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 bmg160_data *data = iio_priv(indio_dev); + + return data->ev_enable_state; +} + +static int bmg160_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 bmg160_data *data = iio_priv(indio_dev); + int ret; + + if (state && data->ev_enable_state) + return 0; + + mutex_lock(&data->mutex); + + if (!state && data->motion_trigger_on) { + data->ev_enable_state = 0; + mutex_unlock(&data->mutex); + return 0; + } + /* + * We will expect the enable and disable to do operation in + * in reverse order. This will happen here anyway as our + * resume operation uses sync mode runtime pm calls, the + * suspend operation will be delayed by autosuspend delay + * So the disable operation will still happen in reverse of + * enable operation. When runtime pm is disabled the mode + * is always on so sequence doesn't matter + */ + ret = bmg160_set_power_state(data, state); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + + ret = bmg160_setup_any_motion_interrupt(data, state); + if (ret < 0) { + bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + } + + data->ev_enable_state = state; + mutex_unlock(&data->mutex); + + return 0; +} + +static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("100 200 400 1000 2000"); + +static IIO_CONST_ATTR(in_anglvel_scale_available, + "0.001065 0.000532 0.000266 0.000133 0.000066"); + +static struct attribute *bmg160_attributes[] = { + &iio_const_attr_sampling_frequency_available.dev_attr.attr, + &iio_const_attr_in_anglvel_scale_available.dev_attr.attr, + NULL, +}; + +static const struct attribute_group bmg160_attrs_group = { + .attrs = bmg160_attributes, +}; + +static const struct iio_event_spec bmg160_event = { + .type = IIO_EV_TYPE_ROC, + .dir = IIO_EV_DIR_EITHER, + .mask_shared_by_type = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_ENABLE) +}; + +#define BMG160_CHANNEL(_axis) { \ + .type = IIO_ANGL_VEL, \ + .modified = 1, \ + .channel2 = IIO_MOD_##_axis, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) | \ + BIT(IIO_CHAN_INFO_SAMP_FREQ), \ + .scan_index = AXIS_##_axis, \ + .scan_type = { \ + .sign = 's', \ + .realbits = 16, \ + .storagebits = 16, \ + }, \ + .event_spec = &bmg160_event, \ + .num_event_specs = 1 \ +} + +static const struct iio_chan_spec bmg160_channels[] = { + { + .type = IIO_TEMP, + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | + BIT(IIO_CHAN_INFO_SCALE) | + BIT(IIO_CHAN_INFO_OFFSET), + .scan_index = -1, + }, + BMG160_CHANNEL(X), + BMG160_CHANNEL(Y), + BMG160_CHANNEL(Z), + IIO_CHAN_SOFT_TIMESTAMP(3), +}; + +static const struct iio_info bmg160_info = { + .attrs = &bmg160_attrs_group, + .read_raw = bmg160_read_raw, + .write_raw = bmg160_write_raw, + .read_event_value = bmg160_read_event, + .write_event_value = bmg160_write_event, + .write_event_config = bmg160_write_event_config, + .read_event_config = bmg160_read_event_config, + .driver_module = THIS_MODULE, +}; + +static irqreturn_t bmg160_trigger_handler(int irq, void *p) +{ + struct iio_poll_func *pf = 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 = regmap_bulk_read(data->regmap, BMG160_AXIS_TO_REG(bit), + &val, 2); + if (ret < 0) { + mutex_unlock(&data->mutex); + goto err; + } + data->buffer[i++] = ret; + } + mutex_unlock(&data->mutex); + + 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 bmg160_trig_try_reen(struct iio_trigger *trig) +{ + struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); + struct bmg160_data *data = iio_priv(indio_dev); + int ret; + + /* new data interrupts don't need ack */ + if (data->dready_trigger_on) + return 0; + + /* Set latched mode interrupt and clear any latched interrupt */ + 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->dev, "Error writing reg_rst_latch\n"); + return ret; + } + + return 0; +} + +static int bmg160_data_rdy_trigger_set_state(struct iio_trigger *trig, + bool state) +{ + struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); + struct bmg160_data *data = iio_priv(indio_dev); + int ret; + + mutex_lock(&data->mutex); + + if (!state && data->ev_enable_state && data->motion_trigger_on) { + data->motion_trigger_on = false; + mutex_unlock(&data->mutex); + return 0; + } + + /* + * Refer to comment in bmg160_write_event_config for + * enable/disable operation order + */ + ret = bmg160_set_power_state(data, state); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + if (data->motion_trig == trig) + ret = bmg160_setup_any_motion_interrupt(data, state); + else + ret = bmg160_setup_new_data_interrupt(data, state); + if (ret < 0) { + bmg160_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + } + if (data->motion_trig == trig) + data->motion_trigger_on = state; + else + data->dready_trigger_on = state; + + mutex_unlock(&data->mutex); + + return 0; +} + +static const struct iio_trigger_ops bmg160_trigger_ops = { + .set_trigger_state = bmg160_data_rdy_trigger_set_state, + .try_reenable = bmg160_trig_try_reen, + .owner = THIS_MODULE, +}; + +static irqreturn_t bmg160_event_handler(int irq, void *private) +{ + struct iio_dev *indio_dev = private; + struct bmg160_data *data = iio_priv(indio_dev); + int ret; + int dir; + unsigned int val; + + ret = regmap_read(data->regmap, BMG160_REG_INT_STATUS_2, &val); + if (ret < 0) { + dev_err(data->dev, "Error reading reg_int_status2\n"); + goto ack_intr_status; + } + + if (val & 0x08) + dir = IIO_EV_DIR_RISING; + else + dir = IIO_EV_DIR_FALLING; + + 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 (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 (val & BMG160_ANY_MOTION_BIT_Z) + iio_push_event(indio_dev, IIO_MOD_EVENT_CODE(IIO_ANGL_VEL, + 0, + IIO_MOD_Z, + IIO_EV_TYPE_ROC, + dir), + iio_get_time_ns()); + +ack_intr_status: + if (!data->dready_trigger_on) { + 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->dev, + "Error writing reg_rst_latch\n"); + } + + return IRQ_HANDLED; +} + +static irqreturn_t bmg160_data_rdy_trig_poll(int irq, void *private) +{ + struct iio_dev *indio_dev = private; + struct bmg160_data *data = iio_priv(indio_dev); + + if (data->dready_trigger_on) + iio_trigger_poll(data->dready_trig); + else if (data->motion_trigger_on) + iio_trigger_poll(data->motion_trig); + + if (data->ev_enable_state) + return IRQ_WAKE_THREAD; + else + return IRQ_HANDLED; + +} + +static int bmg160_buffer_preenable(struct iio_dev *indio_dev) +{ + struct bmg160_data *data = iio_priv(indio_dev); + + return bmg160_set_power_state(data, true); +} + +static int bmg160_buffer_postdisable(struct iio_dev *indio_dev) +{ + struct bmg160_data *data = iio_priv(indio_dev); + + return bmg160_set_power_state(data, false); +} + +static const struct iio_buffer_setup_ops bmg160_buffer_setup_ops = { + .preenable = bmg160_buffer_preenable, + .postenable = iio_triggered_buffer_postenable, + .predisable = iio_triggered_buffer_predisable, + .postdisable = bmg160_buffer_postdisable, +}; + +static int bmg160_gpio_probe(struct bmg160_data *data) + +{ + struct device *dev; + struct gpio_desc *gpio; + + dev = data->dev; + + /* data ready gpio interrupt pin */ + gpio = devm_gpiod_get_index(dev, BMG160_GPIO_NAME, 0, GPIOD_IN); + if (IS_ERR(gpio)) { + dev_err(dev, "acpi gpio get index failed\n"); + return PTR_ERR(gpio); + } + + data->irq = gpiod_to_irq(gpio); + + dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), + data->irq); + + return 0; +} + +static const char *bmg160_match_acpi_device(struct device *dev) +{ + const struct acpi_device_id *id; + + id = acpi_match_device(dev->driver->acpi_match_table, dev); + if (!id) + return NULL; + + return dev_name(dev); +} + +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; + + 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 = irq; + data->regmap = regmap; + + ret = bmg160_chip_init(data); + if (ret < 0) + return ret; + + mutex_init(&data->mutex); + + if (ACPI_HANDLE(dev)) + name = bmg160_match_acpi_device(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 (data->irq <= 0) + bmg160_gpio_probe(data); + + if (data->irq > 0) { + ret = devm_request_threaded_irq(dev, + data->irq, + bmg160_data_rdy_trig_poll, + bmg160_event_handler, + IRQF_TRIGGER_RISING, + BMG160_IRQ_NAME, + indio_dev); + if (ret) + return ret; + + 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(dev, + "%s-any-motion-dev%d", + indio_dev->name, + indio_dev->id); + if (!data->motion_trig) + return -ENOMEM; + + 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 = dev; + data->motion_trig->ops = &bmg160_trigger_ops; + iio_trigger_set_drvdata(data->motion_trig, indio_dev); + ret = iio_trigger_register(data->motion_trig); + if (ret) { + data->motion_trig = NULL; + goto err_trigger_unregister; + } + } + + ret = iio_triggered_buffer_setup(indio_dev, + iio_pollfunc_store_time, + bmg160_trigger_handler, + &bmg160_buffer_setup_ops); + if (ret < 0) { + dev_err(dev, + "iio triggered buffer setup failed\n"); + goto err_trigger_unregister; + } + + ret = iio_device_register(indio_dev); + if (ret < 0) { + dev_err(dev, "unable to register iio device\n"); + goto err_buffer_cleanup; + } + + ret = pm_runtime_set_active(dev); + if (ret) + goto err_iio_unregister; + + pm_runtime_enable(dev); + pm_runtime_set_autosuspend_delay(dev, + BMG160_AUTO_SUSPEND_DELAY_MS); + pm_runtime_use_autosuspend(dev); + + return 0; + +err_iio_unregister: + iio_device_unregister(indio_dev); +err_buffer_cleanup: + iio_triggered_buffer_cleanup(indio_dev); +err_trigger_unregister: + if (data->dready_trig) + iio_trigger_unregister(data->dready_trig); + if (data->motion_trig) + iio_trigger_unregister(data->motion_trig); + + return ret; +} +EXPORT_SYMBOL_GPL(bmg160_core_probe); + +void bmg160_core_remove(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmg160_data *data = iio_priv(indio_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); + + if (data->dready_trig) { + iio_trigger_unregister(data->dready_trig); + iio_trigger_unregister(data->motion_trig); + } + + mutex_lock(&data->mutex); + bmg160_set_mode(data, BMG160_MODE_DEEP_SUSPEND); + mutex_unlock(&data->mutex); +} +EXPORT_SYMBOL_GPL(bmg160_core_remove); + +#ifdef CONFIG_PM_SLEEP +static int bmg160_suspend(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmg160_data *data = iio_priv(indio_dev); + + mutex_lock(&data->mutex); + bmg160_set_mode(data, BMG160_MODE_SUSPEND); + mutex_unlock(&data->mutex); + + return 0; +} + +static int bmg160_resume(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmg160_data *data = iio_priv(indio_dev); + + mutex_lock(&data->mutex); + if (data->dready_trigger_on || data->motion_trigger_on || + data->ev_enable_state) + bmg160_set_mode(data, BMG160_MODE_NORMAL); + mutex_unlock(&data->mutex); + + return 0; +} +#endif + +#ifdef CONFIG_PM +static int bmg160_runtime_suspend(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmg160_data *data = iio_priv(indio_dev); + int ret; + + ret = bmg160_set_mode(data, BMG160_MODE_SUSPEND); + if (ret < 0) { + dev_err(data->dev, "set mode failed\n"); + return -EAGAIN; + } + + return 0; +} + +static int bmg160_runtime_resume(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmg160_data *data = iio_priv(indio_dev); + int ret; + + ret = bmg160_set_mode(data, BMG160_MODE_NORMAL); + if (ret < 0) + return ret; + + msleep_interruptible(BMG160_MAX_STARTUP_TIME_MS); + + return 0; +} +#endif + +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) +}; +EXPORT_SYMBOL_GPL(bmg160_pm_ops); + +MODULE_AUTHOR("Srinivas Pandruvada "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("BMG160 Gyro driver"); diff --git a/drivers/iio/gyro/bmg160_i2c.c b/drivers/iio/gyro/bmg160_i2c.c new file mode 100644 index 0000000..90126a5 --- /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"); -- cgit v0.10.2 From b1d125cc6236399258025b0c5646cafa2b45e043 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Wed, 19 Aug 2015 14:12:46 +0200 Subject: iio: bmg160: Add SPI driver Signed-off-by: Markus Pargmann Signed-off-by: Jonathan Cameron diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig index 94526b1..e816d29 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 6084010..f866a4be 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 0000000..021ea5f --- /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"); -- cgit v0.10.2 From 077377fc4f74899c58e946e47352216412d0bb3a Mon Sep 17 00:00:00 2001 From: Teodora Baluta Date: Thu, 20 Aug 2015 17:37:31 +0300 Subject: 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 diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index a59047d..69302be 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 ebd2675..020dda0 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 0000000..e15c1bd --- /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"); -- cgit v0.10.2 From 1ce0eda0f75747b3131a9047aee19291f59c18c9 Mon Sep 17 00:00:00 2001 From: Teodora Baluta Date: Thu, 20 Aug 2015 17:37:32 +0300 Subject: 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 diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index 69302be..cd5cd24 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 e15c1bd..390eaf8 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; } -- cgit v0.10.2 From 47196620c82f8d8cef0dc61b87b76f18278537dd Mon Sep 17 00:00:00 2001 From: Teodora Baluta Date: Thu, 20 Aug 2015 17:37:33 +0300 Subject: 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 diff --git a/drivers/iio/accel/mxc4005.c b/drivers/iio/accel/mxc4005.c index 390eaf8..e72e218 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; } -- cgit v0.10.2 From 441fda8461c8c1c781c3604d9ddb32747c61657c Mon Sep 17 00:00:00 2001 From: Maxime Lorrillere Date: Mon, 17 Aug 2015 14:04:49 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c index 1eae389..1fd8510 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/import.c +++ b/drivers/staging/lustre/lustre/ptlrpc/import.c @@ -200,12 +200,15 @@ 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) +/* + * 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) { - assert_spin_locked(&imp->imp_lock); - CDEBUG(D_HA, "setting import %s INVALID\n", obd2cli_tgt(imp->imp_obd)); + + spin_lock(&imp->imp_lock); imp->imp_invalid = 1; imp->imp_generation++; spin_unlock(&imp->imp_lock); @@ -213,16 +216,6 @@ static void ptlrpc_deactivate_and_unlock_import(struct obd_import *imp) 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) -{ - spin_lock(&imp->imp_lock); - ptlrpc_deactivate_and_unlock_import(imp); -} EXPORT_SYMBOL(ptlrpc_deactivate_import); static unsigned int -- cgit v0.10.2 From 8369cfff7235d120397b96030beb33a72062f491 Mon Sep 17 00:00:00 2001 From: Anjali Menon Date: Tue, 18 Aug 2015 19:24:24 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index dcd0c6d..166c3f1 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; -- cgit v0.10.2 From d0bed03524f3e1a4140d339cd69c88120052d3ea Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Mon, 24 Aug 2015 11:28:18 -0700 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h index f4b6c33..07e81cb 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 */ - - struct rdma_cm_id *ibc_cmid; /* CM id */ - struct ib_cq *ibc_cq; /* completion queue */ - - kib_connvars_t *ibc_connvars; /* in-progress connection - * state */ + 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 */ + + 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) -- cgit v0.10.2 From b1ff890126909bfaeb8b5be5af08cb525cd85cfe Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 22 Aug 2015 17:17:20 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index 0d5aac6..ffdc06c 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 3407061..679785b 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) -- cgit v0.10.2 From ea28d21ac51ae955834ac71e66587e2005de9215 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 22 Aug 2015 17:17:21 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index 4bb3173..cc212b9 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 42d615f..d39fece 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 d8d1a66..99af017 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 2c705d7..20a7cd9 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 c49dfe5..1f0004c 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 8e47232..55d4523 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 93805ac..7b2b4c8 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)) { -- cgit v0.10.2 From 60753e90ffa7e213539fa937b110c7e91297be04 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 22 Aug 2015 17:17:23 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index fd3c4df..213666b 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 9b1bb23..144afbe 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 163fe0c..c1a9b81 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, -- cgit v0.10.2 From 625a31217eb2cca358d7a3d6976bca402beaa7a5 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:05 +0200 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/lnet/types.h b/drivers/staging/lustre/include/linux/lnet/types.h index 940f73f..1163018 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; } /** -- cgit v0.10.2 From 5019c8f017495cd8da21df7a49a5ed41377965e6 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:06 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/lib-ptl.c b/drivers/staging/lustre/lnet/lnet/lib-ptl.c index 84707c5..b4f573a 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 -- cgit v0.10.2 From a75e7ac6492aabb5fa9bb659657766b7b40c3b18 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:07 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index a4c252f..ab670fc 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); -- cgit v0.10.2 From 3cfc537aea3fe442f31d16fd641bf8bff56c6acd Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:08 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/libcfs/hash.c b/drivers/staging/lustre/lustre/libcfs/hash.c index 0ed0631..08f0b48 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, -- cgit v0.10.2 From 1f6eaf830b3c4f77a5b18414f1d564c1d3301f6e Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:09 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c index 769b611..d407fcc 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 166c3f1..e332326 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 b4ed6c8..fcad241 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; -- cgit v0.10.2 From 9c5d9fa05508e3e03b6d17641588819bafb55dad Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:10 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index c1a9b81..8f17d7c 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; -- cgit v0.10.2 From 40daf5ce553ae214ba5bf56af1550258e2e57ff4 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:11 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/osc_page.c b/drivers/staging/lustre/lustre/osc/osc_page.c index f9cf5ce..856d859 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)) { -- cgit v0.10.2 From 2b241d31a4b3129e10d35763f8cfdc84d9e46936 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 29 Aug 2015 19:30:12 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index c83a34a..865c8a2 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 1fd8510..f5b3245 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 84937ad..e9f8aa0 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: -- cgit v0.10.2 From 11f32ad360bf0447e4f97cb1dc2d020247a59f1f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 11:39:39 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index 649cf47..a33b2cb 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) -- cgit v0.10.2 From ef9a6bdfea3fa9686dbadf0a79502eff005c141a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 11:39:40 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index a33b2cb..b348710 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) -- cgit v0.10.2 From c20d199492b48402cef24a9bab599bc10e0d2a3c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 11:39:41 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index b348710..8b4cafe 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 */ -- cgit v0.10.2 From d3f1e38830f7201d901aa456050d00be1931b248 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 11:39:42 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index 8b4cafe..d49147b 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, -- cgit v0.10.2 From 0726f06d176c015f4ed5f27b661eb1da1ea6f633 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 14:35:28 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/vmk80xx.c b/drivers/staging/comedi/drivers/vmk80xx.c index 3af075a..3293f1a 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 - - 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. + * 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. + */ - 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 -- cgit v0.10.2 From c9b9cfe792feace71a2e0b4c079124b3f5f26ff2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 14:35:29 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/vmk80xx.c b/drivers/staging/comedi/drivers/vmk80xx.c index 3293f1a..8c7393e 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 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 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 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 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 IC3_VERSION BIT(0) +#define IC6_VERSION BIT(1) enum vmk80xx_model { VMK8055_MODEL, -- cgit v0.10.2 From 3b2ea2fb4b31bd59c48bb37a21928a0205668b34 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:26 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index ced05e5..bb100e9 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) -- cgit v0.10.2 From 0725b16ece9fe68887144fc2a86b6f297bafa1e2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:27 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index bb100e9..1ba6dd9 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, { -- cgit v0.10.2 From a0341e5deb05c18c67b786d138799b9a107cdfbf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:28 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index 1ba6dd9..be4c2db 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, -- cgit v0.10.2 From 1e4c3a2e7da0f7e40f79ba1e219ccbe1d8a79f56 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:29 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index be4c2db..d576af7 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 -- cgit v0.10.2 From 2779b7e51497b5d0855dc7d21d793998acd2ad5f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:30 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index d576af7..eea41e8 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); -- cgit v0.10.2 From 6e2ebdf8720306d9aee47de4e050b41884de7e3d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 15:23:31 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index eea41e8..39710f2 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; } -- cgit v0.10.2 From 035d819b4ee6de95268381e92f65f8c98d39ecdc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 14 Aug 2015 17:09:12 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/ssv_dnp.c b/drivers/staging/comedi/drivers/ssv_dnp.c index acc7f34..f9f634f 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 - - 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. -*/ + * 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. + */ + /* -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); -- cgit v0.10.2 From 6d40c0c74a49c568ecb3d8fa650f922c195047a7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 13:03:22 -0700 Subject: 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 diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index 57e71f9..682987e 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 5764dc9..c3b8f2d 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 51498b8..0000000 --- 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"); -- cgit v0.10.2 From 28a2993e3e7c02d0b4312df80ada4c27f830c9d5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 13:18:41 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/serial2002.c b/drivers/staging/comedi/drivers/serial2002.c index 5f19374..186ddd4 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" -- cgit v0.10.2 From 3335dfd1ab5f02915fb2aeeace41526f92d8b560 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 13:18:42 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/serial2002.c b/drivers/staging/comedi/drivers/serial2002.c index 186ddd4..c6f9855 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); -- cgit v0.10.2 From 8d63f5b8f87204cbbdbf5616731680dac7add01b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 13:18:43 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/serial2002.c b/drivers/staging/comedi/drivers/serial2002.c index c6f9855..7a1defc 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) -- cgit v0.10.2 From de332b11946f1e5f9d8513828e18701d6cb903d4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:10 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 6f3e8a0..817ce15 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 - - 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: + * 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_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" -- cgit v0.10.2 From 1d0d1c00daff961b130691a64ad2cde6d856d24e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:11 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 817ce15..c011c70 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); - - /* Load the pre-load register 0 high word */ - val = (data[2] >> 16) & 0xffff; - outw(val, chan_iobase + REG_C0H); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - /* 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); - - /* Load the pre-load register 1 high word */ - val = (data[3] >> 16) & 0xffff; - outw(val, chan_iobase + REG_C0H); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - /* 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); - - /* Load the pre-load register 1 high word */ - val = (data[3] >> 16) & 0xffff; - outw(val, chan_iobase + REG_C0H); + outw(cmReg.value, dev->iobase + S526_GPCT_MODE_REG(chan)); - /* 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: -- cgit v0.10.2 From 4e04fd32599bb4e0f2574708e5d48f1f78d80761 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:12 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index c011c70..e329c04 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 -- cgit v0.10.2 From 088c1ce04dacc3374335ce8b23666a9f8aa5d85c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:13 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index e329c04..df463a22 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 -- cgit v0.10.2 From abbb6489090255290d0bc24f1bf9eeba26b595de Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:14 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index df463a22..e71d850 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; -- cgit v0.10.2 From fe79b3d0c339f053a04673bff95a50f26f59222f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:15 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index e71d850..ff576d3 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); -- cgit v0.10.2 From 15bccf2e5d7f5d1960c41962b2b628bd1b034ce2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:16 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index ff576d3..5f8a5d3 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; -- cgit v0.10.2 From 8a5d6d2ee252dd76305c18f843f82ee7ee376371 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:17 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 5f8a5d3..11a661b 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); -- cgit v0.10.2 From 658441b48c01886217d6119d5cfd5c3278b37ddf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:18 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 11a661b..0f56a89 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; } -- cgit v0.10.2 From 64fe38f49cb2d1335d077f1b9a387177fea22dac Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:19 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 0f56a89..22724a2 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)) -- cgit v0.10.2 From 2c6b58246de18a9915e5a5804800a7c0a302f8c2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:20 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 22724a2..9ed3edd 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) -- cgit v0.10.2 From 12911c2d6ae64315edb721cc142cc6d4b20db8b5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:21 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 9ed3edd..242db7d 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; } -- cgit v0.10.2 From 09c5d6c83ec3bd56ee1ebef8bec42956b32ca7eb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:22 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 242db7d..152be95 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; -- cgit v0.10.2 From bf483f1e07d0b292ae5d5fdf94d901fa4415ab38 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:23 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 152be95..1a5aa3d 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 */ -- cgit v0.10.2 From 21424e3fa81505f466841eaecaa373f160f44cf4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:24 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 1a5aa3d..7cf6250 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]; -- cgit v0.10.2 From 537dd665e42794886266f50c8379b879d5d99af3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:25 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 7cf6250..801413d 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) -- cgit v0.10.2 From 4f3ed25664073891ae093bfe2fa35480bbd10717 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:26 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 801413d..43f9c0c 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; -- cgit v0.10.2 From a399d81d41e17410ffd7a84af9bd7ec8aafa58a2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 17 Aug 2015 16:58:27 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index 43f9c0c..d70c979 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; -- cgit v0.10.2 From 99555fc25a5f2a40f0d111a67b13bcd8e8d826b1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:54 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index d90dc59..16b28fa 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; -- cgit v0.10.2 From db1876ff1e7c86dc97d1721ce2e5e0df71072acb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:55 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 16b28fa..a8635b1 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 */ -- cgit v0.10.2 From fd9fe1fc1cd4771eff4666379b915661d7a4f0d2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:56 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index a8635b1..cb221e7 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"); -- cgit v0.10.2 From 26961546738e42f3672ba4022c2d0b8b2b6ea882 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:57 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index cb221e7..9d889be 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; -- cgit v0.10.2 From 24b83783ceda1e7a0e871d9110cbf966387da4d5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:58 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 9d889be..90422de8 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; }; -- cgit v0.10.2 From d636f87d861308a46ad18bb9b23c34ab32ea39de Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:13:59 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 90422de8..1183476 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: -- cgit v0.10.2 From fe0d96bf5198a06d4620a10f7faba0e596902e72 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:00 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 1183476..e18b14e 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, -- cgit v0.10.2 From c748debc66026d1400686ce9bd5183d5bcf36ec3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:01 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index e18b14e..ae77596 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: /* -- cgit v0.10.2 From 7b0fc5baa0bd75fa04cd784828d7d072fb905144 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index ae77596..60f1c5e 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; } /* -- cgit v0.10.2 From a05e94bd5230a90eca2905495e764a0ad707c498 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:03 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 60f1c5e..9e846b4 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); -- cgit v0.10.2 From 7c79c014cba5694633ada77811ce14654dfb8227 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:04 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 9e846b4..149b558 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; } -- cgit v0.10.2 From 42293db075e121d6baef4d0cd7865e060631f3ac Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:05 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 149b558..4c86a9a 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) -- cgit v0.10.2 From e48c9c260189e28b57ab3a7cf68c5a29ab6dbf51 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 24 Aug 2015 10:14:06 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 4c86a9a..c6b2a65 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); } -- cgit v0.10.2 From de1c1862ca8c32a811021b61ce8905d03e53a451 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 15 Aug 2015 21:57:32 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index c7b75df..ab632e0 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 3c9007e..68b3121 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 0d8f123..37c2be2 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 e14eed1..dbaaeeb 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.*/ -- cgit v0.10.2 From 9fc7091cc24ceae25885a3ad074689cfb029f3c0 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 15 Aug 2015 21:57:33 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index ab632e0..7a30ba2 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 68b3121..eb0c7c3 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 37c2be2..22c1957 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 dbaaeeb..ef39cbe 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)) { -- cgit v0.10.2 From 88defe2b35f1b765dbfe9a800c443c31400a4e13 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 15 Aug 2015 21:57:34 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/desc.h b/drivers/staging/vt6655/desc.h index eb0c7c3..752c546 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 c9fa6ef..80cc170 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 22c1957..defdcc0 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 ef39cbe..4659185 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; -- cgit v0.10.2 From 9cb693f6f326ddf8f9df9c2bb3302048a919b394 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 15 Aug 2015 21:57:35 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 7a30ba2..ecbe94f 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 752c546..9fbc717 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 80cc170..d1917d0 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 defdcc0..86c24a1 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 4659185..700032e 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 ad49571..e80b308 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__ */ -- cgit v0.10.2 From d2e4f687c463e5080af203de2251b5b78b01e58c Mon Sep 17 00:00:00 2001 From: Peng Sun Date: Thu, 27 Aug 2015 15:41:05 +0800 Subject: 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 diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 60200a3..b340ddc 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; } -- cgit v0.10.2 From b8d3bfa7802a5d5ffea7e14837147d063df8eabe Mon Sep 17 00:00:00 2001 From: Peng Sun Date: Thu, 27 Aug 2015 15:41:06 +0800 Subject: 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 diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index b340ddc..1312600 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: -- cgit v0.10.2 From 7048c1fc37f71f860b5042fbe021c9f98218b122 Mon Sep 17 00:00:00 2001 From: Peng Sun Date: Thu, 27 Aug 2015 15:41:07 +0800 Subject: 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 diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 1312600..d786ec1 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; -- cgit v0.10.2 From b8797affa142840e7c62deccb750813563fc8097 Mon Sep 17 00:00:00 2001 From: Trung Thanh Le Date: Sat, 15 Aug 2015 22:09:45 +0800 Subject: 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 diff --git a/drivers/staging/android/sw_sync.c b/drivers/staging/android/sw_sync.c index c90838d..29b5c35 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; -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/wilc1000/wilc_exported_buf.c b/drivers/staging/wilc1000/wilc_exported_buf.c index c3f6a0a..44db496 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"); -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/wilc1000/wilc_exported_buf.c b/drivers/staging/wilc1000/wilc_exported_buf.c index 44db496..e617b77 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) -- cgit v0.10.2 From 8dfaafd6398ec49797566ecb6992117434376588 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 18 Aug 2015 23:18:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 16a0abc..1889195 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 b3cc9f5..888652d 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 37f31f4..62e6b62 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 236669c..c5cdab7 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 70e4fa6..f047d62 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 1bf7d31..d7bb204 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 a6edc97..ead1291 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 7c53a2b..c48fe4a 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 e2842d3..c3f3aaf 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; -- cgit v0.10.2 From 6fffc6213df87e78debd952fe28338a3c8816d03 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:58:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index f047d62..fcf3a29 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); } } -- cgit v0.10.2 From 32728da0293835ee37adf72d7d334b29eeb121c2 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:58:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index fcf3a29..7718c481 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; -- cgit v0.10.2 From df1890a67482660485130baff7dd5e0c3c3fa9be Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:58:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 7718c481..e7c4a9a 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 -- cgit v0.10.2 From b6583f7415dbf15aab8fee9ccebd47e52a7aab4c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:58:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index e7c4a9a..8cb74d1 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) -- cgit v0.10.2 From 96cab4cdc6583d386696c1325a391c11391d6998 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 8cb74d1..53ce586 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 */ -- cgit v0.10.2 From ae177a2afc36336dd6a5a21bb8ddfe9d44791a0d Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 53ce586..0770ff6 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); } -- cgit v0.10.2 From ce118546d4250cfe2b059fb42a4b755944723a50 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 0770ff6..d97dd70 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); } } -- cgit v0.10.2 From bb9c2e7a9d04f74746256f033fd78cff2df0a5db Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index d97dd70..f974f85 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); } -- cgit v0.10.2 From bd56018a87a992c3c5ebfe4174b2bc41316dae3b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index b9517dc..6012ec4 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 f974f85..f528f98 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 ef1d2fa..a32c6db 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 -- cgit v0.10.2 From cd08fc78138af767a8dea2f4d0a8251efd9a0afc Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 66fa677..159734f 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 f528f98..0358099 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 a32c6db..555aa02 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 -- cgit v0.10.2 From 79198138a8c77b385f9232a9067e783e2a7d5eeb Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 159734f..6be2348 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 0358099..b5d230b 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 555aa02..197b0a9 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); /*! -- cgit v0.10.2 From b986e33e1e60c203620bc8224353590694d70abd Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:07 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6be2348..f0a1383 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 b5d230b..6015098 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 197b0a9..143fba4 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); -- cgit v0.10.2 From 1b128f632d100290fe1e7d9007f08046f2579189 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 19 Aug 2015 15:59:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f0a1383..d411847 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 6015098..76d2e63 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 143fba4..fc65dfe 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 -- cgit v0.10.2 From 8a625cade3d4ac4da0d985f62afd3184617ba9b7 Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Thu, 20 Aug 2015 16:32:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d411847..83abe78 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; } -- cgit v0.10.2 From 53a84401883a873c8ad29a43dee4f0fbdc53157e Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Thu, 20 Aug 2015 16:32:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 83abe78..0506d6d 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) -- cgit v0.10.2 From e5d57e917a8c7ff1da10a568eb738a6ac5697dae Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Thu, 20 Aug 2015 16:32:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 888652d..4f7f3b7 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; -- cgit v0.10.2 From 3a79a7f7135ab724bce5979963a9e3e5be4c8908 Mon Sep 17 00:00:00 2001 From: Hari Prasath Gujulan Elango Date: Thu, 20 Aug 2015 09:59:44 +0000 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0506d6d..17fa299 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"); -- cgit v0.10.2 From fec85e0afa918b33e56797400f674bc828362dd4 Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Thu, 27 Aug 2015 19:08:15 +0600 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index 935b48e..5dae7de 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); -- cgit v0.10.2 From 0c74210509049f3391576a45acb1174e2454588c Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Thu, 27 Aug 2015 19:09:27 +0600 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c index be9a3d5..fca22ba 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); -- cgit v0.10.2 From 51d6859f2352ef420f8a45abaac0391acf573730 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:21 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 0a13d8d..a0cdd26 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 { -- cgit v0.10.2 From ba857e0ff08b0ba7922cb58d0870a5a207eadc5e Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:22 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index a0cdd26..a5e8993 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; -- cgit v0.10.2 From c704dfbe452ef1857e83d29bac88e35bdb2bb507 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:23 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index a5e8993..2bc877c 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; } -- cgit v0.10.2 From 11f7edb5980f4ad7d4eae915c34bdb17d8c751bb Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:24 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index a54cf2c..e334206 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 8929af9..ebb7d87 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 6a5a3a2..1ba694b 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -166,16 +166,6 @@ void DIMCB_OnError(u8 error_id, const char *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 * -- cgit v0.10.2 From 809da8a5f19010e877ed66cd1ffac9f8284d7052 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:25 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 860302e..27449d2 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) -- cgit v0.10.2 From 96d3064b461f32b0e37b3d7c0cfa4edb24dbf430 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:26 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 1ba694b..5b0a588 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; } -- cgit v0.10.2 From 9153b5b1286546d6bee3be0662625573be7bc7a2 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:27 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 305303f..34843b0 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))) { -- cgit v0.10.2 From a9c2520818ddc8666472e5535181bf3930a8b558 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 18 Aug 2015 20:48:28 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-v4l2/Makefile b/drivers/staging/most/aim-v4l2/Makefile index 28aa948..69a7524 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 -- cgit v0.10.2 From 858e1a27c1c58f5a1dd0ba58ce28c80bf5095d0b Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Mon, 24 Aug 2015 19:19:32 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 2bc877c..b0a9a4a 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; -- cgit v0.10.2 From 1865e4ea0b2d9889e5e1f93d5ca69194857cc9f0 Mon Sep 17 00:00:00 2001 From: Ronit Halder Date: Wed, 19 Aug 2015 11:17:09 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index c8ab239..a1e1bce 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( -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 6f6fe38..915493d 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; } } -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 915493d..6137a04 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; -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 6137a04..3c20731 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) { -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 3c20731..bdb8e4f 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; -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U.h b/drivers/staging/rtl8192u/r8192U.h index 785fd02..a76748e 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 bdb8e4f..e786237 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 = { -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index e786237..e0832d1 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); } } -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index e0832d1..9a658b4 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); -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 9a658b4..2ab0a98 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 */ -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 2ab0a98..90c5907 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; } /* -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 90c5907..4425335 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. -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 4425335..cd14c0a 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; -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index cd14c0a..d0020f1 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 } -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index d0020f1..88108fb 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); -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 88108fb..21173b1 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) -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 21173b1..b471b33 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]); } } -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index b471b33..88b11e8 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"); -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 88b11e8..76255cb 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, -- cgit v0.10.2 From 4a1a838362a0ddbb847855e2a6918c2efcb54de2 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Wed, 2 Sep 2015 18:46:42 -0700 Subject: 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 diff --git a/drivers/staging/fbtft/fb_bd663474.c b/drivers/staging/fbtft/fb_bd663474.c index 17a2162..deb069f 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 54528aa..c5b2e51 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 03ae95b..42fed64 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 d7f4308..79e7ebc 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 8c7bb3a..1b0a29d 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 ef4fa6b..edcd79c 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 19d254e..5f38e78 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 0f4a42f..68acfe0 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 709492e..1838972 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 8bae09c..e176c87 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 dd4ddca..5a3fc89 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 15da0ec..ab208b8 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 54bc566..eaac112 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 f330252..4b27378 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 2e1b72a..0cdde02 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 17a77e0..c5f996e 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 15ee44d..fed5961 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 f652243..3628836 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 4c740b7..78dfb3a 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 3253a25..b4b80d7 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 26d669b..90a8408 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 176c210..04802af 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 88fb2c0..33c21f1 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 23392eb..63696fe 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 7e9a506..379f662 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 fa916e8..ee43ad2 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 -- cgit v0.10.2 From e7f506bd0e2db2cc67da6e16776cf54aeb827999 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:10 +0300 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 63696fe..95aaf77 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; } -- cgit v0.10.2 From c18d116d9215d28736f6346f95127b53c7892376 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:11 +0300 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 95aaf77..a72e046 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", -- cgit v0.10.2 From ed20c6fbf76bdbc326960be621caebfdce92a2c6 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:12 +0300 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index a72e046..d2f547e 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; -- cgit v0.10.2 From 23801e3438f6ceddf7db6d03c3556375d1001fda Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:13 +0300 Subject: 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 diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index 9bcd7a0..dff5809 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", -- cgit v0.10.2 From 6d657dac56438bf7ade5a05142a633e7f5e43984 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 08:13:14 +0300 Subject: 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 diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c index 33c21f1..3000f75 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", -- cgit v0.10.2 From e6ea2028e04b2adea69b06ef6d5e2d73f82b713c Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:33 -0700 Subject: 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 diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c index c5b2e51..d6dd034 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 79e7ebc..7379123 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 4b27378..2fa4bec 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 3628836..9b5cea9 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__); -- cgit v0.10.2 From e73221877a21352aa03437960b3874fee52fa189 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:34 -0700 Subject: 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 diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 94dd49c..bfe01f0 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 deb069f..e3e9ece 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 42fed64..00dd9d1 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 7379123..a8b0ae6 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 1b0a29d..4188bab 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 ed92a64..799283f 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 edcd79c..9bc2a71 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 5f38e78..80f0462 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 68acfe0..1bb1abd 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 1838972..b78d481 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 e176c87..8c5581d 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 5a3fc89..e9d553c 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 ab208b8..897e2d5 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 eaac112..65e4fe2 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 2fa4bec..06e94f1 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 0cdde02..10916ba 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 c5f996e..d602aec 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 fed5961..171fac4 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 5bb7410..a880ff6 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 dff5809..ecd378e 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 9b5cea9..5cba98c 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 78dfb3a..f159bbc 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 b4b80d7..2e3f914 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 32f3a9d..14a8734 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 90a8408..d40d0a8 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 04802af..b480563 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 d2f547e..56a3a7f 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 ee43ad2..7730e10 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 c763efc..b7ed7b1 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); -- cgit v0.10.2 From c3eeca503db189422ee22bbad7ca52e1febbe276 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:35 -0700 Subject: staging/fbtft : Remove unicode characters Remove stray unicode quotes around name Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index bfe01f0..1eba1a0 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 -- cgit v0.10.2 From 1014c2ce082241db728e0528dd5f1bfb04fd0b06 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:36 -0700 Subject: 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 diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 1eba1a0..8eb5e69 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 e3e9ece..ea013e9 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 d6dd034..ff3be12 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 00dd9d1..996af1a 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 a8b0ae6..b36f6e1 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 4188bab..3a28a36 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 9bc2a71..3164b2b 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 80f0462..92398a0 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 1bb1abd..7efd8bc1 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 b78d481..6629de3 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 8c5581d..85387f0 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 e9d553c..10068b0 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 897e2d5..dea698a 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 65e4fe2..62ab7fa 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 06e94f1..0ae5bc6 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 10916ba..e97d1c5 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 d602aec..96039b4 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 171fac4..6013b68 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 a880ff6..9ac75f6 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 ecd378e..7e3762d 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 5cba98c..d7a716d 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 f159bbc..04d1e34 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 2e3f914..e7dd41f 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 d40d0a8..e94ecd6 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 b480563..f0011ee 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 3000f75..01126a5 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 912c632..0e0def4 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 56a3a7f..fa81399 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 c4cc452..73c7ec6 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 379f662..6dd42b2 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 7730e10..e9c2040 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; -- cgit v0.10.2 From 94c0a5442708dbc4226f8aabcf9163caac179a92 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Thu, 3 Sep 2015 00:53:37 -0700 Subject: 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 diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c index ff3be12..e1ed177 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 996af1a..8b3ee24 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 799283f..d166ca9 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 3164b2b..30bed2c 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 92398a0..25e5a11 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 6629de3..d07a312 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 dea698a..7ba220f 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 62ab7fa..5c1d93d 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 e97d1c5..9ee8d56 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 96039b4..e680452 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 6013b68..4fe899b 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 d7a716d..e249bbf 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 e7dd41f..1225ba9 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 e94ecd6..e0d4d36 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 0e0def4..9712924 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 fa81399..293fcbb 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 73c7ec6..8d8bd12 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 e9c2040..0483d33 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; -- cgit v0.10.2 From 1e498d4b40120899f1477b106677f3fa2cc7bb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 20 Aug 2015 09:07:19 +0200 Subject: 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 diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index ad30ce4..1aa449e 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 -- cgit v0.10.2 From 1972308bf580ad092c315ad21700946320ab54f7 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 3 Sep 2015 13:13:51 +0200 Subject: 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 diff --git a/drivers/staging/octeon-usb/octeon-hcd.c b/drivers/staging/octeon-usb/octeon-hcd.c index 9bd73ea..6194028 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 = { -- cgit v0.10.2 From 8c17893c2fe2e0a506ef07eda486ebc9aa709da7 Mon Sep 17 00:00:00 2001 From: Nayeemahmed Badebade Date: Thu, 27 Aug 2015 21:02:46 +0530 Subject: 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 diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index 3e9ee7e..498d623 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)); } -- cgit v0.10.2 From 0b190f34f7b535171ed5a1c09e6a7603b0a8d3ef Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 22 Aug 2015 16:28:11 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index d6b46df..52e1e27 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); -- cgit v0.10.2 From afeeff07440650bb03a659de8ef4c8eb5328d5d7 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 22 Aug 2015 16:28:14 +0530 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_security.c b/drivers/staging/rtl8723au/core/rtw_security.c index 3d40bab..82518cd 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) { -- cgit v0.10.2 From d40d3e117a82650423944182477b4027a7e45d72 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 22 Aug 2015 16:28:13 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 3e502520..3445fd4 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); } -- cgit v0.10.2 From f740474bbf8b2e1e0ccf0a45d929b219aabbc95a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 22 Aug 2015 16:28:12 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index c28cabc..353e3fe 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: -- cgit v0.10.2 From 2f0c1424f0663fedd8f38b00088f2d4fdeb03b09 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Fri, 28 Aug 2015 00:57:45 +0200 Subject: staging: rtl8723au: remove unimplemented function declarations Signed-off-by: Luca Ceresoli Acked-by: Jes Sorensen Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8723au/include/rtw_cmd.h b/drivers/staging/rtl8723au/include/rtw_cmd.h index 4dcc925..d1fa95d 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; -- cgit v0.10.2 From 2503426cfbb3fa48606d51aec3525d3d1680d304 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sun, 30 Aug 2015 23:52:13 +0200 Subject: 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 diff --git a/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c b/drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c index 1f9ba8b..824d460 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"); -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_security.c b/drivers/staging/rtl8723au/core/rtw_security.c index 82518cd..038b57b 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_, -- cgit v0.10.2 From 10d7108466f91edac408c568defd0863965d34ea Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Wed, 2 Sep 2015 22:41:19 +0530 Subject: 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 diff --git a/drivers/staging/goldfish/goldfish_nand.c b/drivers/staging/goldfish/goldfish_nand.c index 66ae48f..623353db5 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); -- cgit v0.10.2 From 768e66bd0b2ab33f294fec51c3a0820c616ae283 Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Thu, 3 Sep 2015 01:31:30 +0530 Subject: 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 diff --git a/drivers/staging/goldfish/goldfish_nand_reg.h b/drivers/staging/goldfish/goldfish_nand_reg.h index fe7f47c..43aeba3 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 -- cgit v0.10.2 From 6b32fccc104da1e9673bb461035c1dbcb5a2962e Mon Sep 17 00:00:00 2001 From: Nayeemahmed Badebade Date: Thu, 3 Sep 2015 23:14:35 +0530 Subject: 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 diff --git a/drivers/staging/comedi/kcomedilib/kcomedilib_main.c b/drivers/staging/comedi/kcomedilib/kcomedilib_main.c index 76bf561..d0a8a28 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 -- cgit v0.10.2 From 76f966e79560ab0bcf20a48e8a0a3d51b3618bc5 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 20:50:51 +0300 Subject: 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 diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c index 83683e9..612ac0b 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; -- cgit v0.10.2 From 310a28fd34d77e6dca246cd13b1e52018d3af819 Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Fri, 4 Sep 2015 00:48:14 +0600 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 17fa299..c853f82 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 4f7f3b7..1e0b1d5 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++) { -- cgit v0.10.2 From b2952d62bab9a0c1d7c22ef427785886a0104f40 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 3 Sep 2015 11:49:13 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index ffdc06c..d0c79d1 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 7d33cf9..ae7ed75 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 f47c8f2..5c624e1 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 7939e4e..dfe3342 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 d56c8be..04dcb51 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 e1d72a7..a16c9ea 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 ac78dbc..e79af19 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 144afbe..e9925ef 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 fe19534..11bcdb9 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 9b28331..131985d 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 3552546..92b24be 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 d4cc096..d27bdae0 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 43ee9f0..2a4294d 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 48ad60b..3341b5d 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 9ad8c26..76a2546 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 18aec79..3986ca4 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 effa2af..5a2e5ea 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 ec8fff4..2de64c2 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 486dca6..2fc24a9 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 991d20c..3e28255 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 f97371d..8f4cca1 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 a659962..75a8ea2 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 c9e0536e..f8146ac 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 c5c67d9..2a2fd8d 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 fd1a4c5..da0066a 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 b081167..7c6583a 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 8f17d7c..9d1a3be 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 20a7cd9..b151154 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 0ca7309..bc614dc 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 facc835..78d9226 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 7b2b4c8..d399cae 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 12113df..cf2739c 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 53f9af1..84eb3da 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" }, -- cgit v0.10.2 From 927ac9d54eca5ce36fc3fe3c43a162f45d404bd9 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 18:44:19 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index 6be8a92..3b6bc7b 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 e617b77..0000000 --- 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 c48fe4a..e0da7b4 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) -- cgit v0.10.2 From f019b9d91d84cb62bfa22fccf15bd4457d4acb2f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 18:50:27 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 1e0b1d5..903fc7c 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 e0da7b4..c5fd55a 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 5cf74e4..b5aa83c 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 *); -- cgit v0.10.2 From 47c632d829c6aea524cb57114ceef5c07bcf8d2c Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 18:55:43 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 903fc7c..a9aefa5 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 c5fd55a..970f6a9 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 b5aa83c..ed1ed00 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 *); -- cgit v0.10.2 From d5df379784bdb3e88c2644972a576e2a74b90ce3 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 18:59:07 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index a9aefa5..b576d02 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); -- cgit v0.10.2 From a18dd63047a86e0dc1c927232a526bda6d770bff Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:04:19 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index b576d02..c1289e0 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 970f6a9..95897bf 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 ed1ed00..5a01d34 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); -- cgit v0.10.2 From c2e4c0f19a6bbcb4f5f7c8991614c1b1dfaf9683 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:09:50 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c1289e0..734cabe 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 95897bf..6bf1f45 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 5a01d34..7787e8f 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 *); -- cgit v0.10.2 From 5e150b52a5fadbf3ef27ce2eaa7c79b4b1436342 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:32:11 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 734cabe..14ea616 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 6bf1f45..e1b248d 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 7787e8f..40050d7 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; -- cgit v0.10.2 From b25a37b910dd9b0eda1cc3a55be2abf38dae21da Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:38:42 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 14ea616..dace77e 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); -- cgit v0.10.2 From 19a334890b11c5b622e35eca352728a42bfe4396 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:43:44 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index dace77e..7b68d12 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); -- cgit v0.10.2 From 642768eec5e5d8cd1e239828e3b5e23ae45b131a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 19:56:21 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 7b68d12..c342977 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 77f320d..d1de032 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; -- cgit v0.10.2 From 8990d856f55d42b56c0e940f42942e21f9c05e16 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 20:07:58 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c342977..84bdfc1 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 ead1291..75e1687 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 d1de032..8047dd9 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 e1b248d..e34ce53 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 40050d7..3519b22 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 { -- cgit v0.10.2 From 17c4d5d541e282f05b709885578d7c5ac18e49d8 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Sep 2015 20:17:31 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 84bdfc1..c90c459 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 e34ce53..248f3d9 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 3519b22..8b8cf9b 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 { -- cgit v0.10.2 From d42ab0838d040bb57b2368125aeb49a8bf1d2383 Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Thu, 20 Aug 2015 16:32:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c853f82..8458d8d 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 e66dee9..349d5f5 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 8047dd9..27c6920 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]; -- cgit v0.10.2 From 360e27a91dd25fb7cf3b2befa1e1a7b4f27828d2 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 15:34:15 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c90c459..020ed03 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) { -- cgit v0.10.2 From 2b922cbef153359413ec328135f21165d5f04826 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 4 Sep 2015 09:30:51 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 020ed03..afd6702 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 248f3d9..4b37de5 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 8b8cf9b..021a2aa 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; -- cgit v0.10.2 From 4629385e6a4c8f092555c45eea21f1d24887071b Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 4 Sep 2015 12:25:49 -0400 Subject: 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 diff --git a/drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset b/drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset index 28f8f12..b0498ff 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 8d078e4..25f93f2 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. - -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. - -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. - -Driver Descriptions - -Device Modules - -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. - -visorchipset - -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. - -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 - -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 +normally be unsharable, specifically: + +* visornic - network interface +* visorhba - scsi disk adapter +* visorhid - 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 +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". + +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). + +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. + +NOT covered in this document: + +* 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. + +* 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). + + +2. Driver Descriptions +---------------------- + +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: + + "visorbus:"+SPAR_VHBA_CHANNEL_PROTOCOL_UUID_STR + +i.e.: + + alias visorbus:414815ed-c58c-11da-95a9-00e08161165f visorhba + -The virtnic module provides a paravirtualized network interface to a +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 - -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 - -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. - -visorclientbus - -The visorclientbus module forwards the bus functions for virthba, and -virtnic to the virtpci driver. - -virtpci - -The virtpci module handles the bus functions for virthba, and virtnic. - -s-Par Integration Modules - -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. - -visorvideoclient - -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. +When compiled as a module, visornic can be autoloaded by visorbus in +standard udev/systemd environments, as it includes the modules.alias +definition: -sparstop + "visorbus:"+SPAR_VNIC_CHANNEL_PROTOCOL_UUID_STR -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. +i.e.: -visordiag + alias visorbus:8cd5994d-c58e-11da-95a9-00e08161165f visornic -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. -Support Modules +2.4. visorhid +------------- -The modules described in this section provide functions and -abstractions to support the modules described in the previous -sections, to avoid having duplicated functionality. +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". -visornoop +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(). -The visornoop module is a placeholder that responds to device -create/destroy messages that are currently not in use by linux guests. +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. -visoruislib +When compiled as a module, visorhid can be autoloaded by visorbus in +standard udev/systemd environments, as it includes the modules.alias +definition: -The visoruislib module is a support library, used to handle requests -from virtpci. + "visorbus:"+SPAR_MOUSE_CHANNEL_PROTOCOL_UUID_STR + "visorbus:"+SPAR_KEYBOARD_CHANNEL_PROTOCOL_UUID_STR -visorchannelstub +i.e.: -The visorchannelstub module provides support routines for storing and -retrieving data from a channel. + alias visorbus:c73416d0-b0b8-44af-b304-9d2ae99f1b3d visorhid + alias visorbus:addf07d4-94a9-46e2-81c3-61abcdbdbd87 visorhid -visorchannel -The visorchannel module is a support library that abstracts reading -and writing a channel in memory. +3. Minimum Required Driver Set +------------------------------ -visorutil +visorbus is required for every Linux guest running under s-Par. -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. +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. -Minimum Required Driver Set +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. -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 034ac61..d863f26 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 -- cgit v0.10.2 From b0183053e31a51f7814b5ea257db010b924b3857 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:02 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index b0a9a4a..1a17e2a 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( -- cgit v0.10.2 From 9b532df0fc1eb0834261d9cfbeef0f346c817d7f Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:03 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index d968791..8333245 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) -- cgit v0.10.2 From 983e83cc173894720b168fa603ccf82ca74e020d Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:04 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 5b0a588..4481a0b 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, }, }; -- cgit v0.10.2 From 0834be6c52367d397d75e185dad549e3da9be312 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:05 +0530 Subject: 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 diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 7bb16db..87f950f 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); -- cgit v0.10.2 From ec58d2a8727d34a2b51295895d51279abf9edd74 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 4 Sep 2015 16:22:06 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 34843b0..9bbefaa 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 87f950f..eb4e159 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) { -- cgit v0.10.2 From 1f39e10872c0ca161146e253d3efa18b59d5d9a5 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 7 Sep 2015 19:09:29 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index b8d7d04..b5db23f 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 afd6702..4187c7c 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 75e1687..663d0f8 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 97b663b..3c3571d 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 4b37de5..b0ae09d 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 244f710..99e07de 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 c3f3aaf..d503799 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 021a2aa..9f9f4a9 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; -- cgit v0.10.2 From 700db05372bf44eb44a6e0bbae749ef0d538b192 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 7 Sep 2015 19:09:30 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 4187c7c..59c9b44 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 d503799..21ed14d 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); -- cgit v0.10.2 From f638dd3918a4caa910ce62176d2d185203867876 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 7 Sep 2015 19:09:31 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index b5db23f..dd80071 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 663d0f8..cf76a33 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); -- cgit v0.10.2 From 8c589c240122e37d01997e665cd22bff9f11603c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 8 Sep 2015 00:36:35 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 59c9b44..de82a90 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; -- cgit v0.10.2 From d9998a91fee33153dfddb86fa7301d2e26590dbe Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 8 Sep 2015 00:36:38 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 76d2e63..41244ce 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); -- cgit v0.10.2 From ac61ef86f971c3fd0d3aff59744423ff32c4fcca Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 8 Sep 2015 00:36:36 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index de82a90..d68b42c 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; -- cgit v0.10.2 From c590b9a4c0ec5e3a545887dc83e96466c493613e Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Tue, 8 Sep 2015 17:07:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8458d8d..8033205 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 349d5f5..a107377 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 -- cgit v0.10.2 From 3441847ee2f3993a3e6fae435431d507f211b1c6 Mon Sep 17 00:00:00 2001 From: Johnny Kim Date: Tue, 8 Sep 2015 17:08:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d68b42c..b563c9e 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; -- cgit v0.10.2 From 06b548638b39c99f2e96effc80bbb5f33043d697 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 8 Sep 2015 17:08:01 +0900 Subject: 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 diff --git a/MAINTAINERS b/MAINTAINERS index 7ba7ab7..cf1a98d 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/ -- cgit v0.10.2 From e89419bc9cde142639acbe5c40791a43940896f1 Mon Sep 17 00:00:00 2001 From: "Kim, Leo" Date: Tue, 8 Sep 2015 17:08:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index b563c9e..74c70fc 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 e6ebf3e..ea121f9 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 62e6b62..1120a0f 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 c5cdab7..8bcbed8 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 27c6920..e1caea9 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 -- cgit v0.10.2 From 721c9859478345d2c3593ce798af8c1c1dfdef68 Mon Sep 17 00:00:00 2001 From: "Kim, Leo" Date: Tue, 8 Sep 2015 17:08:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index 3b6bc7b..8336a89 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 dd80071..d873877 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 74c70fc..335335a 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,21 +2347,17 @@ 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 b0ae09d..4c54ea7 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 -- cgit v0.10.2 From 780eb03eba8491bd15c0e87334660f9181757a21 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 9 Sep 2015 16:08:13 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 4c54ea7..39716ba 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; } -- cgit v0.10.2 From a8fff8bf6b8376ec14f3176c0601f2c318650ba0 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:40 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/libcfs/workitem.c b/drivers/staging/lustre/lustre/libcfs/workitem.c index 48009b7..02d18f5 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(); -- cgit v0.10.2 From 2de5855cf96a798bc95cb13f94b6ba7a142f2f1f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:41 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 55d4523..48d5436 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); -- cgit v0.10.2 From 222a7e9166b90f7cfd683a192cc757181b95a34f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:42 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index d399cae..7a5e87c 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); -- cgit v0.10.2 From 91b4e64bfe5b2b2afe66ba5ec622c003d483f9e3 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:44 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index d0c79d1..6d87731 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); -- cgit v0.10.2 From 3cf8e32d6d337e0c293cd1b192a970639291703e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:45 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c index bcb6c00..e6b3bf9 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) { -- cgit v0.10.2 From d4d34a5f5de5e5449bdf1ddd16ab42494d07af50 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:47 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index bc614dc..a2a82e1 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 -- cgit v0.10.2 From fd6f9a4b08dc534dfb34786739d8e8b2f0e281cd Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:48 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index a2a82e1..efb433da 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); -- cgit v0.10.2 From e72f36e22c4d54642edc7b807dc2ee13724c71a8 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 4 Sep 2015 12:08:49 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index cf2739c..114c550 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; } -- cgit v0.10.2 From 1b779d2e1b7244677917b521304257ee76045f6d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:20 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index 865c8a2..1800db1 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; } -- cgit v0.10.2 From bd2909f7591b4177b31f14d19b2e9c37e7e93675 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:21 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c index fbbc8a7..328a278 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); -- cgit v0.10.2 From 451a377d10728419b8730f427d68697d3eda3f0e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:22 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/dt_object.c b/drivers/staging/lustre/lustre/obdclass/dt_object.c index b67b0fe..6b645a1 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. -- cgit v0.10.2 From d9ec18cf14c6ceefe58e869ebd4104ca61328bfe Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:23 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_close.c b/drivers/staging/lustre/lustre/llite/llite_close.c index 7bdae72..e31cad8 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) { -- cgit v0.10.2 From 9d927bc51b4f05ac9aebdf42037b4e55957ef42e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:24 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index fcad241..c60eb46e 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; } -- cgit v0.10.2 From e03b80cfc2d43b1f3ee9e854450aa5691dc92a8a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:25 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index a23a6d9..345ed4d 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; -- cgit v0.10.2 From ddb4e767437c75858e9ad556e1a9477c6fffbefb Mon Sep 17 00:00:00 2001 From: Matthew Needes Date: Sat, 5 Sep 2015 13:03:38 -0700 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c b/drivers/staging/lustre/lustre/obdclass/linux/linux-module.c index 6218ef3..245ac2e 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) { -- cgit v0.10.2 From b45024edc44428888c41a8e186f4f0385c79b768 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Mon, 7 Sep 2015 16:05:15 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/linux/lustre_lite.h b/drivers/staging/lustre/lustre/include/linux/lustre_lite.h index 45651ca..f5d83eb 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 -- cgit v0.10.2 From 2ced12a7f8bf4994d43209074587519d044d21a2 Mon Sep 17 00:00:00 2001 From: Anders Fridlund Date: Tue, 8 Sep 2015 00:56:48 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c b/drivers/staging/lustre/lustre/ptlrpc/sec_plain.c index a243db6..d905b77 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; -- cgit v0.10.2 From d0f69b5a66c30350ed6e41eef72414ce8650face Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 8 Sep 2015 21:53:01 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lov/lov_io.c b/drivers/staging/lustre/lustre/lov/lov_io.c index bf36291..b5b2580 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); -- cgit v0.10.2 From 4cba1972bb060cc4042b226ecb54d09ddfb9fb2d Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 8 Sep 2015 21:53:02 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index 2a2fd8d..906503b 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]; -- cgit v0.10.2 From 446be1b553c3cf03f2d581153777a4ce88f403fe Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Fri, 4 Sep 2015 13:29:52 +0530 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index b6b76ff..a5b9e1e 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 0db6b41..5a53186 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. */ -- cgit v0.10.2 From b68ff8f61e9d10055092d6d8f35d72663b83e0ae Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Fri, 4 Sep 2015 13:46:32 +0530 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index a5b9e1e..d57a9ab 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 5a53186..4a2cc38 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; -- cgit v0.10.2 From 706eb8cfb1f43953d7b7e85780e4ba720748ca00 Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Fri, 4 Sep 2015 13:48:22 +0530 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index d57a9ab..8cef08d 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); -- cgit v0.10.2 From c648a57ae5e1685ff5aee496b0014ae93b308975 Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Sat, 5 Sep 2015 01:08:29 +0530 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 8cef08d..ffb8a3d 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; } /*-------------------------------------------------------------------------*/ -- cgit v0.10.2 From f2b29165c52dc1377824e6407a11ac786bef15d5 Mon Sep 17 00:00:00 2001 From: Ravi Teja Darbha Date: Tue, 8 Sep 2015 21:18:51 +0530 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index ffb8a3d..597b78d 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); -- cgit v0.10.2 From a2f9ff6c75ad2c3110ad8464c0dbaef4902c9400 Mon Sep 17 00:00:00 2001 From: Nayeemahmed Badebade Date: Fri, 4 Sep 2015 22:30:33 +0530 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 766a659..b3a60a0 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; -- cgit v0.10.2 From 242850f48a96ce0bf48e81fa20850792f27fd3ba Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Fri, 4 Sep 2015 14:00:30 -0700 Subject: 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 diff --git a/drivers/staging/wlan-ng/p80211conv.c b/drivers/staging/wlan-ng/p80211conv.c index 49f2ef8..1b02cdf 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 e031a74..8c10357 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; -- cgit v0.10.2 From 12d273767a819f7f1bfb90fb485b8caa959b6853 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:19 +0530 Subject: 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 diff --git a/drivers/staging/rtl8723au/hal/usb_halinit.c b/drivers/staging/rtl8723au/hal/usb_halinit.c index 68156a1..9926b07 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); -- cgit v0.10.2 From 7273773c2cecb647373c4180b159ba1669313681 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:26 +0530 Subject: 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 diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index d786ec1..f931800 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: -- cgit v0.10.2 From ca0b6fe173a11219312bb3607d4d5a0faac1feb4 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:27 +0530 Subject: 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 diff --git a/drivers/staging/speakup/speakup_dectlk.c b/drivers/staging/speakup/speakup_dectlk.c index b5a23d4..09063b8 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); -- cgit v0.10.2 From e1b32e1e89ee69fd62e6d3bd781d017748889e00 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 5 Sep 2015 18:58:28 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 7e3ca7e..7e56137 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; -- cgit v0.10.2 From eb6a2dbf32a4ea2fa94f742f6494f661a807fb45 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 5 Sep 2015 19:13:43 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 0483d33..3856c88 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 -- cgit v0.10.2 From fb7014df159bb8524341a0fdb8d467f6827b0770 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 5 Sep 2015 19:13:44 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 3856c88..80ab918 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++) -- cgit v0.10.2 From ea022df19395f0da090e9dcdf417d28326e15404 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Mon, 7 Sep 2015 18:08:21 +0530 Subject: 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 diff --git a/drivers/staging/gdm72xx/usb_boot.c b/drivers/staging/gdm72xx/usb_boot.c index 3ccc447..50fbec3 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); -- cgit v0.10.2 From c32bb25ee1b396c8d04c4c797f826afe2167eb15 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Mon, 7 Sep 2015 18:08:22 +0530 Subject: 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 diff --git a/drivers/staging/gdm72xx/gdm_qos.c b/drivers/staging/gdm72xx/gdm_qos.c index 96bf2bf..72c0f7ef 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 a5fd079..b0521da 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 eac2f34..16e497d 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 08290d9..6e8dbaf 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 2c02842..ba94b5f 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 50fbec3..39ca34031 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; } -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 76255cb..b143b36 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); -- cgit v0.10.2 From a15adada1ca0f2b853d7876045e0580e831f91b5 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 7 Sep 2015 19:58:23 +0530 Subject: 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 diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c index 5bfd43d..651b393 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; -- cgit v0.10.2 From 37b9d03039032008e244ec37030ef9b3d87f198a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Thu, 10 Sep 2015 11:59:11 +0900 Subject: staging: wilc1000: remove BROKEN status This patch removes BROKEN status from the Kconfig. Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/Kconfig b/drivers/staging/wilc1000/Kconfig index 51bbf46..59ccecc 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 -- cgit v0.10.2 From f3052587e31ce8ac11c069d942a5cefb18025037 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 10 Sep 2015 12:03:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8033205..59a1a9d 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 cf76a33..26412a5 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); -- cgit v0.10.2 From d36340917ae4a04d7e6322058e3209e37af50662 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 10 Sep 2015 12:03:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index 8336a89..bdeffea 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 e90a957..0000000 --- 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 f19cec1..0000000 --- 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 fc65dfe..fb26463 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 cb48325..68f6efe 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" -- cgit v0.10.2 From 7f9eb1fbef1d151107e2ba598e40c47f3e11d474 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 09:03:01 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 8bcbed8..3b3ba8a 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 -- cgit v0.10.2 From 73d4ee746d6159dd76cf89e7d0d44a90a3545edd Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Thu, 10 Sep 2015 18:26:26 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 335335a..df5ee26 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); -- cgit v0.10.2 From 435ebabb305bdc09376297520095ec346a49de62 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Thu, 10 Sep 2015 18:26:27 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index df5ee26..8e19095 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; -- cgit v0.10.2 From 7092b839e915583b3f518bf89f6053d9c757b292 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Thu, 10 Sep 2015 18:26:28 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 8e19095..63f44f8 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 5a18148..79aa4a1 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 d7bb204..d9ccca9 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; } -- cgit v0.10.2 From a0462838c1c8c72ffdf81461d862a320c010e025 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 10 Sep 2015 18:26:29 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 1889195..c67ab67 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 */ -- cgit v0.10.2 From 5da0a0706b4d2a591cf9dcb0e9bfe0100bf5a5b2 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 11 Sep 2015 12:04:20 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index c67ab67..544c12d 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 -- cgit v0.10.2 From 5b8ffb5565a241c4cfddb15b5a7b2f28ce64dbf7 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:02:39 +0530 Subject: 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 diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index e6e9eaa..10fa372 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) -- cgit v0.10.2 From b4d8aceb63985cd504a368b49b26b3681a40379f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:30 +0530 Subject: 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 diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c index ffc7f0d..3d2e50c 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 f12b2e5..8552c76 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 77141ae..3883808 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 dbceda1..23e7392 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 d620bbd..a838835 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) -- cgit v0.10.2 From d832fb26416f599a92e1b41d8380b208de32c7c1 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:29 +0530 Subject: 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 diff --git a/drivers/staging/iio/addac/adt7316.c b/drivers/staging/iio/addac/adt7316.c index 5b11b42..a1dd745 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, -- cgit v0.10.2 From 913336ae09a3aaf13b8ace21569ac7ad40ff50db Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Wed, 9 Sep 2015 15:57:07 -0700 Subject: 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 diff --git a/drivers/staging/rtl8188eu/include/wifi.h b/drivers/staging/rtl8188eu/include/wifi.h index dba8af1..6e5fa735 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 -- cgit v0.10.2 From 27934f362a90039b8cd9e48721ace549fd2ae417 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Wed, 9 Sep 2015 15:57:08 -0700 Subject: 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 diff --git a/drivers/staging/rtl8712/wifi.h b/drivers/staging/rtl8712/wifi.h index 17f5131..67c6ebf 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 -- cgit v0.10.2 From 4c021dc0b8722365e9aee06d7a2213b5d93075c7 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Wed, 9 Sep 2015 15:57:10 -0700 Subject: 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 diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h index 0a7f58c..076d508 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 67c6ebf..7a352c4 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 -- cgit v0.10.2 From 4e6aa99b87c3cd9e2487b275a7c47b37bee33fb5 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:31 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/libcfs/hash.c b/drivers/staging/lustre/lustre/libcfs/hash.c index 08f0b48..286641b 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 { -- cgit v0.10.2 From 6876a1435390a1bcc59cea6e23b9e03ae727819d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:02:40 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/layout.c b/drivers/staging/lustre/lustre/ptlrpc/layout.c index d14c200..5d19cfc 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; -- cgit v0.10.2 From 60aff4ffba3336cd97789b60f086d47b1932147b Mon Sep 17 00:00:00 2001 From: Sakshi Vaid Date: Thu, 10 Sep 2015 22:35:10 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index 9d1a3be..05e29f8 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 -- cgit v0.10.2 From 39be6b8b0cc84b33cd17bc570e80a25126f87c9c Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 10 Sep 2015 17:24:58 +0530 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 9112dd2..20ba258 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)) -- cgit v0.10.2 From 045ec4123152e48b1047bb0e3ed316d924677e86 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 10 Sep 2015 17:24:59 +0530 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 20ba258..ee37938 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); /* -- cgit v0.10.2 From 7e25075e3e34cedf660c63e30bfcc7e385d40766 Mon Sep 17 00:00:00 2001 From: Junesung Lee Date: Sat, 12 Sep 2015 09:58:47 +0900 Subject: staging: android: fix typo 'syncrhronization' is wrong spell. 'synchronization' is correct. Signed-off-by: Junesung Lee Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/android/Kconfig b/drivers/staging/android/Kconfig index 6830712..42b1512 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 -- cgit v0.10.2 From b9f7f1d0846f15585b8af64435b6b706b25a5c0b Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Sat, 12 Sep 2015 00:22:15 +0600 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index ee37938..303d9702 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) -- cgit v0.10.2 From aecdac15d9b545099be42122aea3b98cac2c52e3 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 09:02:57 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c index fff8d58..1ab0aea 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" -- cgit v0.10.2 From 2245e1492e2bbeae61552b899e823a5b3af10141 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 09:02:59 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c index 31233d8..425b2dd 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" -- cgit v0.10.2 From 03c7da4fe1c6903f6d05ce99b8f31a5ec0eb86aa Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 09:02:58 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index 39e9892..e4624e8 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" -- cgit v0.10.2 From 4fee29ba6f5c7df4bc61a8afa1a0d59b41980289 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 9 Sep 2015 23:16:13 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 3445fd4..81d1c2a 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; -- cgit v0.10.2 From c5ad7c0ece9f06558d56a823a4213d1d5d80e5fc Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 9 Sep 2015 23:16:21 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 81d1c2a..e15a2d9 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; -- cgit v0.10.2 From a02c67382d0c0874ddd5cdb87ea8dc5428119ca1 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 9 Sep 2015 23:16:28 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index e15a2d9..52818bd 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); -- cgit v0.10.2 From 077d4575c91928abc36a8963e1fe5f2c7118b328 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 9 Sep 2015 23:16:33 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 52818bd..5b6cf0b 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; -- cgit v0.10.2 From 412ef9933e403bb863ec6ac29e671dd832c4638b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:02:41 +0530 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 0207b8e..8e92041 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); -- cgit v0.10.2 From ff52fc380db676398fe92e2a3c802ecb41bc535e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:32:29 +0530 Subject: 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 diff --git a/drivers/staging/speakup/varhandlers.c b/drivers/staging/speakup/varhandlers.c index 75bf40c..b2afec6 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++) -- cgit v0.10.2 From 562c47982df0e46499042dfcc06b4dfa8324f63d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:32:26 +0530 Subject: 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 diff --git a/drivers/staging/speakup/devsynth.c b/drivers/staging/speakup/devsynth.c index 71c728a..d1ffdf4 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; -- cgit v0.10.2 From 114885e08c0e7d55775373f5cea8fa3c0b1ef1e8 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:32:27 +0530 Subject: 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 diff --git a/drivers/staging/speakup/serialio.c b/drivers/staging/speakup/serialio.c index 66ac999..3b5835b 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 */ -- cgit v0.10.2 From a90624cf253cc74e9464b42d54aa4825575edefe Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:32:28 +0530 Subject: 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 diff --git a/drivers/staging/speakup/kobjects.c b/drivers/staging/speakup/kobjects.c index 958add4..fdfeb42 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; -- cgit v0.10.2 From a544f0edb25fa43c2807c3e21c86bb1f33a2e457 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:52 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c index b340e4a..497fb06 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; -- cgit v0.10.2 From e3789b0c54442fef9cdb5541b89b677b76c8673a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:53 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c index 0a62bfa..d528140 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 */ -- cgit v0.10.2 From 0ecacb4e43720009a01439605c127ac88e529833 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:09:23 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c b/drivers/staging/lustre/lustre/libcfs/libcfs_lock.c index 2c199c7..29308ba 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) -- cgit v0.10.2 From fdf21a324c0519dc6b0b74a438dbd018f956c49d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:09:24 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/libcfs/libcfs_mem.c b/drivers/staging/lustre/lustre/libcfs/libcfs_mem.c index 1debdda..f4e08da 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; } -- cgit v0.10.2 From dd550e40e1d1f09964b6c2fb0e52ce3e7229404f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:09:25 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 7a5e87c..32b40ea 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]); -- cgit v0.10.2 From 11d5c7894bfb24955ebc3f7675f93f9377c6e7ae Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 11:09:26 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index efb433da..64af0ab 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++; -- cgit v0.10.2 From 5228fb63a1060c4bb361df7d986f9bb025324e6e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:54 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c b/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c index 06d1e65..d6d009a 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")); -- cgit v0.10.2 From cfd23644a87d9b6b0917c72418c5966520fd4e5a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:55 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c b/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c index 2633a13..a108e80 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)); -- cgit v0.10.2 From b210e0dc6056953f54bb539630c5e0db2b0b9026 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:56 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c index 594c1da..4433560 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); -- cgit v0.10.2 From fc749a9a3d1801c8dee892816eb19d285e06fd41 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:57 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/os_dep/recv_linux.c b/drivers/staging/rtl8188eu/os_dep/recv_linux.c index 3ebb8b2..d4734baf 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; -- cgit v0.10.2 From a08cd2b7d0c98047a09b91fc7e18f4ed13dd7753 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:58 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/os_dep/mlme_linux.c b/drivers/staging/rtl8188eu/os_dep/mlme_linux.c index 218adaa..eb8ecb7 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) -- cgit v0.10.2 From b92ae1fd84ac24100db20fccd5a34cde1a53a857 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 11 Sep 2015 10:40:59 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/os_dep/osdep_service.c b/drivers/staging/rtl8188eu/os_dep/osdep_service.c index acb4eb1..466cd76 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; } -- cgit v0.10.2 From 962539a068a5a9b9ab2729f4f3ae88ef85fecf4f Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 11 Sep 2015 18:28:51 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 80ab918..95985726 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; -- cgit v0.10.2 From 805deadbc298939a7ade70443feadeb80e7d9e6d Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 11 Sep 2015 18:28:52 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 95985726..4071bf8 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); -- cgit v0.10.2 From e714b7eab150a609b9c2bb1ae7605d882b2cceec Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Fri, 11 Sep 2015 18:28:53 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index 4071bf8..a60f389 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); -- cgit v0.10.2 From f9db385df2d337f11fd71eaffde62ff9678416d3 Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Sat, 12 Sep 2015 22:02:12 +0800 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index 1120a0f..b1c6b6f 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) }, + { }, }; -- cgit v0.10.2 From 80785a9a82fc6a5979129a1aedb1260034c6927b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 26412a5..c2060ff 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, -- cgit v0.10.2 From 0e30d06d9bda25c0edc3dbb721a43a6f87036f24 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c2060ff..2c39179 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, -- cgit v0.10.2 From 4ffbcdb6de150c13f23eb6ef8746db70b07f08ff Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 2c39179..7f1ca95 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, -- cgit v0.10.2 From b027cde9504e87b6181328fb8c4ed5ccd87a0a55 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 7f1ca95..1ebaaef 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, -- cgit v0.10.2 From 953d417a0dc704169b507314e3e3bfde45948fe3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 1ebaaef..b5e6176 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)); - - 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_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_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)); - - 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_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_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)); - - 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_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_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, -- cgit v0.10.2 From 3044ba7e6f6b8916c87204737c7c266795147fff Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index b5e6176..dfa9db3 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 -- cgit v0.10.2 From f4893dfc31f51a608911ce9f44cbd29058872034 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:07 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index dfa9db3..5794db3 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, -- cgit v0.10.2 From 0f5b8ca323d56bfb22152af1dfd91f127278a91a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5794db3..f0065cb 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, -- cgit v0.10.2 From 69deb4c2a1ef214fe3d859ab913bb9a87d785db2 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index f0065cb..5ff81cf 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, -- cgit v0.10.2 From b4a733558450583e143c9f1aa24bd0ef8f0c0046 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5ff81cf..e85f91f 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, -- cgit v0.10.2 From 3615e9a36778317535134878382c014079d56042 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e85f91f..4197d74 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, -- cgit v0.10.2 From a13168d75b30311ebe974042dd5ae658e7aece25 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:12 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 4197d74..3853113 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, -- cgit v0.10.2 From 2a4c84d7a04e607225170b29403af503b8e84805 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:13 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 3853113..936db60 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, -- cgit v0.10.2 From c8cddd7917d8a2f52bf1410ff48cb421b9e1f5ae Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:14 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 936db60..0b5baec 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, -- cgit v0.10.2 From ed26955ca0e81ba0b56302c896836e6a9d7d495a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:15 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 0b5baec..72bcdc9 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*/ -- cgit v0.10.2 From a0a8be95cc54b3d68b4cb45d74d23ffb7c5baae8 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:16 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 72bcdc9..5bdd111 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, -- cgit v0.10.2 From 14b420849bfe568940dbd391a5890c6aa3a9ab18 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:17 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5bdd111..d5365de 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, -- cgit v0.10.2 From f06f562dd144857325d8c1db38102bea3b946e77 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:18 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index d5365de..c15bd7c 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, -- cgit v0.10.2 From bdb6338f6f5bc1fd2bb79a83357bfba2e1bc64a8 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:19 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c15bd7c..e932e64 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, -- cgit v0.10.2 From a5f7db6aaa20edae10f287c01b59ec65b944b692 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:20 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e932e64..e1514db 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, -- cgit v0.10.2 From a76b63ef570cd771e973fe2c4d3f1b5efb8f685a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:21 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e1514db..51ed89a 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, -- cgit v0.10.2 From 4d46657a23cce98ef5a21cf42fc6ea4145fbeee7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:22 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 51ed89a..774897f 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 -- cgit v0.10.2 From 1ff86d9605a2ed7142647e18c6da7f0cf8807292 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:23 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 774897f..93d0c2a 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, -- cgit v0.10.2 From b33c39b1f3fa113e013b8d715a8373bda3e37e0f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:24 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 93d0c2a..c425037 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, -- cgit v0.10.2 From 6d19d695e091c2e32a1eac80ace52c4e8af13d10 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:25 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c425037..40bf7a5 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, -- cgit v0.10.2 From 1dd5440b60ccc8875395b7f49546c38c59c7679a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:26 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 40bf7a5..c7ac967 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, -- cgit v0.10.2 From 4a2f9b38a5eada30826644e488af4114bb78a183 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:27 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c7ac967..627a254 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, -- cgit v0.10.2 From 12a26a33fec9454781352f6268239e1ced83a60d Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 14 Sep 2015 12:24:28 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 627a254..068e648 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, -- cgit v0.10.2 From 52a59cf1e74441d95174e607836ee76aa956e4cc Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 12 Sep 2015 15:04:35 +0530 Subject: 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 diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c index fd255c6..d1ba0b8 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); -- cgit v0.10.2 From 046225e79995482e96560c3b4390be4d83f490bf Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 13 Sep 2015 22:46:06 +0530 Subject: 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 diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c index 297b7ae..cf85021 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)) -- cgit v0.10.2 From a05b98635b2abf22138ed4b0e6373447aa36758c Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 19:20:02 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lnet/selftest/selftest.h b/drivers/staging/lustre/lnet/selftest/selftest.h index dfe3342..160d68c 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 eb10e3b..87d8449 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"; } } -- cgit v0.10.2 From 910b551c85ae599201428e6ac110a222d0da4c50 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 19:20:03 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 3986ca4..30f22d9 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 f926224..2097364 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 2fc24a9..427a34b 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 f8146ac..0fc0b61 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 7c5bab3..3c66dbd 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 ae99180..9985fb6 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; -- cgit v0.10.2 From ce85ed4d15b44f6a3216f0e0b3ce464aecd44c3c Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sun, 13 Sep 2015 14:15:06 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/super25.c b/drivers/staging/lustre/lustre/llite/super25.c index e4020ce..4cf7af2 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 64af0ab..370d5b4 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 48d5436..3111982 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); -- cgit v0.10.2 From 4579ec9af094361bef38f37005897d6de6cc7dcb Mon Sep 17 00:00:00 2001 From: Samuel Dominguez Lorenzo Date: Sun, 13 Sep 2015 16:18:33 +0100 Subject: 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 diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index c3a4e3f..9d0d031 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) { -- cgit v0.10.2 From 4ddc2f06c8384cc023b60d7bf8471d0737bba613 Mon Sep 17 00:00:00 2001 From: Anjali Menon Date: Sun, 13 Sep 2015 16:22:00 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c index b13318a..81c793a 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 -- cgit v0.10.2 From 433c7f8fe2e086d037783d324cb2ddaf1e244787 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 13 Sep 2015 09:16:10 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index e4624e8..f2d09fe 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 } -- cgit v0.10.2 From c2c77eea18f24d847fc6dbbed5d6eaf29fb8de3e Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:28 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 86c24a1..2584d17 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) { -- cgit v0.10.2 From e77610a94c1fe0402979f58bee6933ffe18b15e3 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:29 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 2584d17..99191d9 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); -- cgit v0.10.2 From 319755a72226e8c433077b7839aa6064080917fc Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:30 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index d1917d0..be42e44 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 99191d9..4bc9ba0 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; -- cgit v0.10.2 From 73eb8a11275ecadf7f49ffc1e67f7cef35188182 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:31 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index be42e44..f020bb1 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 4bc9ba0..fcc4510 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)); } -- cgit v0.10.2 From e577474f3b55ef368090ec7f29543fb8b5a712be Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:32 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index fcc4510..03cc52e 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)); -- cgit v0.10.2 From f31798266f23edf85d32b38f7b2a755684d399ef Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:33 +0100 Subject: staging: vt6655: remove and move vt6655_init_info move code to vt6655_probe. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 03cc52e..ce2df37 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; -- cgit v0.10.2 From 7a95f96108efc94cd79d46245a70c3b5bf9c0840 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:34 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index f020bb1..271a719 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 ce2df37..1e660cc 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); -- cgit v0.10.2 From 2ef1571b13859ce56bf779ddaf3b7be44eacc5d7 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:35 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 1e660cc..17fa6aa 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); -- cgit v0.10.2 From 41652a21b7c11322f4efa6daa43deb7935a052f9 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:36 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 17fa6aa..edda836 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; } -- cgit v0.10.2 From 70d66a6a753b19a3de5ab167fe8b941eac32c079 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:37 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index edda836..add9cdf 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; } -- cgit v0.10.2 From a03b8b3e18969e10d5fdc732a06b5c58c247e842 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 12 Sep 2015 19:10:38 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index add9cdf..326bce3 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) { -- cgit v0.10.2 From 19f70eaedba8f2575e757b3439ed08a0dad9511b Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:33 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 5ddac43..7eb122e 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 0b830ba6..11381eb 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 0bdf3db..1803b74 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 -- cgit v0.10.2 From ed7042edaf0b515088e83c692a895dfbebaa4678 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:34 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 7eb122e..8aa83ab 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 11381eb..a8d23d2 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); -- cgit v0.10.2 From 5ccf7340036b4dd1abf60ecafe77d14ce094468f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:35 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 8aa83ab..03da0a7 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 a8d23d2..70a6007 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 1803b74..20dbc05 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 -- cgit v0.10.2 From 6bdbe62b9d1bd6cc7853992b26d093630416dd0f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:36 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 03da0a7..e6d31db 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 70a6007..29ce48d 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 20dbc05..3d129aa 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 -- cgit v0.10.2 From ac1189513f4c60adc4f350ff6abb01928dcccae2 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:37 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index e6d31db..65c1546 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); -- cgit v0.10.2 From f2ea7733ddd741e0803015271573fec0c529ba27 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:38 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_sii164.c b/drivers/staging/sm750fb/ddk750_sii164.c index 3d129aa..241b77b 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 5133bcc..ecfd300 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 4af2b7a..1e18b80 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 7317ba9..522736e 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 -- cgit v0.10.2 From 288836b69f1a3fd96d742fdf9bc4a827f8f625e5 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:39 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index ecfd300..765edd6 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 1e18b80..2e87a63 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 522736e..b8b5e00 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. */ -- cgit v0.10.2 From d33b42048ed97dfacc031707e3aefa63da631237 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:40 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 765edd6..e3f60eb 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 2e87a63..37335dd 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 b8b5e00..de30429 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"); } } -- cgit v0.10.2 From 01a64c4469acf6556c7e622e8874f84cb95a23bf Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:41 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index e3f60eb..6a10ae3 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 37335dd..27a04f3a 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_ */ -- cgit v0.10.2 From 6c78f4ce60437e5292202241c317bd2a9e05d3ac Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:42 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 6a10ae3..faaf858 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; } -- cgit v0.10.2 From a503da64fdde16b745f6465659fcc40e2ece8ee7 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:43 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 65c1546..a35505d 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 29ce48d..5872f9c 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); -- cgit v0.10.2 From 938ad7edf21b16f93e9309e3d859a1aa4685f164 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:44 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index a35505d..abac6ae 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 5872f9c..2827865 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 -- cgit v0.10.2 From b3696b797185396090da1f2661f242317a3cd795 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:45 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index abac6ae..8d06f48 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; } -- cgit v0.10.2 From 53bc6b6e1a8d7f6a2e16ef701b7c0ecfe627c396 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:46 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index faaf858..1d7e8f6 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); -- cgit v0.10.2 From fe820044892de545b8cd8ad3ccdd864d78734b97 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:47 +0300 Subject: staging: sm750fb: ddk750_swi2c: further reduce CamelCase Rename remaining CamelCase variables Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c index 1d7e8f6..5cb1cf2 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 27a04f3a..b53629c 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 ); -- cgit v0.10.2 From 987f202a344385c461b33f13eb39050e2a39fa22 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:48 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 8d06f48..34b687b 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 5cb1cf2..ddbbeff 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: * =========================== -- cgit v0.10.2 From 9137f812e911fc8030e8b954b097e62e29691154 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sat, 12 Sep 2015 11:07:49 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c b/drivers/staging/sm750fb/ddk750_hwi2c.c index 34b687b..7be2111 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 2827865..46e22dc 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 ddbbeff..37cdd5b 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); -- cgit v0.10.2 From 6dd19f19a5e2fb78681e5f33431200e2b5aec763 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Sun, 13 Sep 2015 22:00:44 -0700 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index 5dae7de..dd82018 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 077b39a..3bb40a7fe 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 2c33eb3..e99179a 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 6e5fa735..6cb5bec 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 -- cgit v0.10.2 From b03f395a3e9bf4874fb58f4fe6033866d3b9f105 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 14 Sep 2015 18:41:17 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/libcfs.h index 01961d9..259a336 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 a9c9a07..22d54b2 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 d14fe70..7fab03b 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 40f418b..a9f4cbf 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) +void lnet_router_debugfs_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_proc_fini(void) -{ -} - -#endif diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c index 806f974..a19f579 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); -- cgit v0.10.2 From 6e580ab50a3d3344be5d410406967edcc691d8a0 Mon Sep 17 00:00:00 2001 From: Frank Zago Date: Mon, 14 Sep 2015 18:41:18 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index a16c9ea..ea13a82 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 3111982..4f7899f 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); -- cgit v0.10.2 From 44ecac688986e96d6654a1f71ce07032a8f6c278 Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Mon, 14 Sep 2015 18:41:19 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 2de64c2..8a3b03e 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 c60eb46e..725481d 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 05e7dc8..2635678 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, -- cgit v0.10.2 From 2742c75ec6f086dff1102f801fd0bff7a15ec3fd Mon Sep 17 00:00:00 2001 From: Bruno Faccini Date: Mon, 14 Sep 2015 18:41:20 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index e79af19..9416d95 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 e332326..b610032 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)) -- cgit v0.10.2 From 2e4fe2bde9028d4cd8090e08331305e51771c125 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Mon, 14 Sep 2015 18:41:21 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 9416d95..b0c4433 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 3341b5d..5df493e 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 92c746b..22194c0 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 e9f8aa0..f138061 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 d6d9204..b2313af 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); -- cgit v0.10.2 From ced41eba4111e954af6a67ff45e30072a89d6cc5 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 14 Sep 2015 18:41:22 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lmv/lmv_obd.c b/drivers/staging/lustre/lustre/lmv/lmv_obd.c index 0fc0b61..cebbacf 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) -- cgit v0.10.2 From bbaa9c10328aa14615733c407b0c2f6d9c3df330 Mon Sep 17 00:00:00 2001 From: Niu Yawei Date: Mon, 14 Sep 2015 18:41:23 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c index d407fcc..cc6f0f5 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; -- cgit v0.10.2 From 6fa3c577bb8d57a517445af1015035eb43a87a1f Mon Sep 17 00:00:00 2001 From: Liang Zhen Date: Mon, 14 Sep 2015 18:41:24 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index 345ed4d..c0f5682 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 * -- cgit v0.10.2 From 0df83c184effeac5d05394b65ca7baef71f41178 Mon Sep 17 00:00:00 2001 From: Hiroya Nozaki Date: Mon, 14 Sep 2015 18:41:25 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/osc_page.c b/drivers/staging/lustre/lustre/osc/osc_page.c index 856d859..2af3232 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); -- cgit v0.10.2 From 3a956d8c1939e2ad34047fde96d40d39ec2186cf Mon Sep 17 00:00:00 2001 From: Niu Yawei Date: Mon, 14 Sep 2015 18:41:26 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/libcfs/hash.c b/drivers/staging/lustre/lustre/libcfs/hash.c index 286641b..6f4c7d4 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); -- cgit v0.10.2 From 4dcb710986aa3bbcee8172b2ea6387982d5455cc Mon Sep 17 00:00:00 2001 From: Liang Zhen Date: Mon, 14 Sep 2015 18:41:27 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index d8bfcad..22f4cd0 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; - for (i = 0; i < ksocknal_data.ksnd_peer_hash_size; i++) { - for (j = 0; ; j++) { - read_lock(&ksocknal_data.ksnd_global_lock); + 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); + } - index = 0; - peer = NULL; + for (tmp = start; tmp <= end; tmp++) { + int peer_off; /* searching offset in peer hash table */ - list_for_each(tmp, &ksocknal_data.ksnd_peers[i]) { - peer = list_entry(tmp, ksock_peer_t, - ksnp_list); + for (peer_off = 0; ; peer_off++) { + ksock_peer_t *peer; + int i = 0; + read_lock(&ksocknal_data.ksnd_global_lock); + 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; } -- cgit v0.10.2 From 2f3622b90fb551d3672479ad1e4ab649d7fcdbad Mon Sep 17 00:00:00 2001 From: Isaac Huang Date: Mon, 14 Sep 2015 18:41:28 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h index 07e81cb..eb08400 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 c0f5682..8ab73ee 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) { -- cgit v0.10.2 From 7f830d8d54d348783a7c23635fb985b40e5db963 Mon Sep 17 00:00:00 2001 From: Andrew Perepechko Date: Mon, 14 Sep 2015 18:41:29 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 8a3b03e..37bf331 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 8d1c253..400acacc 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; } -- cgit v0.10.2 From a0b8803a36f51e8ade88c64cbb5a768e575b1787 Mon Sep 17 00:00:00 2001 From: Ann Koehler Date: Mon, 14 Sep 2015 18:41:30 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index ea13a82..96e271d 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 4f7899f..c892e82 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); -- cgit v0.10.2 From ae9c46d12284ee339eefb915d7d5da83cad8933d Mon Sep 17 00:00:00 2001 From: Ben Evans Date: Mon, 14 Sep 2015 18:41:31 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index b0c4433..d20e199 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, -- cgit v0.10.2 From aefd9d714d5dc65b748e4f226475537ba6e00e86 Mon Sep 17 00:00:00 2001 From: Li Xi Date: Mon, 14 Sep 2015 18:41:32 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 5a38f3d..c8b89a3 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 5df493e..313a56c 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 87bb2ce..ce6fa55 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 370d5b4..594955d 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 ff6d2e2..c504d15 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 470698b..7d0a3e2 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 114c550..f41f762 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 1800db1..90b24fc 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); -- cgit v0.10.2 From 199a0cc08d8552b9683150ef49ebceb764e436eb Mon Sep 17 00:00:00 2001 From: Liang Zhen Date: Mon, 14 Sep 2015 18:41:33 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c index c29d2ce..faa70f0 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) -- cgit v0.10.2 From 69456a0377555c52bf0b69d9555a2a605b2aa1d3 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Mon, 14 Sep 2015 18:41:34 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h index 978d3e2..62ade08 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 838f5f3..12b6af4 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); -- cgit v0.10.2 From c5c4c6fae0f754aa17180b411ad04c196f9798ee Mon Sep 17 00:00:00 2001 From: Olaf Weber Date: Mon, 14 Sep 2015 18:41:35 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 313a56c..3b6a2d7 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -2191,21 +2191,29 @@ struct ptlrpcd_ctl { */ struct lu_env pc_env; /** - * Index of ptlrpcd thread in the array. + * CPT the thread is bound on. */ - int pc_index; + int pc_cpt; /** - * Number of the ptlrpcd's partners. + * Index of ptlrpcd thread in the array. */ - 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 6245a2c..b5ee9bd 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 e6b3bf9..20da064 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 204d512..d32ae761 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 c72035e..62da061 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 365b278..75bfda6 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 7d0a3e2..448fdf4 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 f41f762..9f53627 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 90b24fc..e1830fe 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 f5b3245..c52ceef 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 f8edb79..d3aea4a 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 6dc3998..1d64ca7 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 17cc81d..00efdbf 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; - - 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: + 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]; + /* 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 (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))); - } + 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); + + /* + * 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,174 +507,97 @@ static int ptlrpcd(void *arg) complete(&pc->pc_finishing); return 0; +failed: + pc->pc_error = rc; + complete(&pc->pc_starting); + return rc; } -/* 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. +static void ptlrpcd_ctl_init(struct ptlrpcd_ctl *pc, int index, int cpt) +{ + 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. * - * 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). + * 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. * - * 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. + * The desired number of partner threads can be tuned by setting + * ptlrpcd_partner_group_size. The default is to create pairs of + * partner threads. */ -# ifdef CFS_CPU_MODE_NUMA -# warning "fix ptlrpcd_bind() to use new CPU partition APIs" -# endif -static int ptlrpcd_bind(int index, int max) +static int ptlrpcd_partners(struct ptlrpcd *pd, int index) { struct ptlrpcd_ctl *pc; + struct ptlrpcd_ctl **ppc; + int first; + int i; int rc = 0; -#if defined(CONFIG_NUMA) - cpumask_t mask; -#endif + 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; - 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: + 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; - 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; + rc = -ENOMEM; + goto out; } - 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; - } - } + 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(int index, int max, const char *name, struct ptlrpcd_ctl *pc) +int ptlrpcd_start(struct ptlrpcd_ctl *pc) { - int rc; + 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, @@ -622,29 +605,21 @@ int ptlrpcd_start(int index, int max, const char *name, struct ptlrpcd_ctl *pc) */ rc = lu_context_init(&pc->pc_env.le_ctx, LCT_CL_THREAD|LCT_REMEMBER); if (rc != 0) - goto out_set; + goto out; - { - 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_set; + } - 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); + rc = pc->pc_error; + if (rc != 0) + goto out_set; - 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; - - 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 */ - - size = offsetof(struct ptlrpcd, pd_threads[nthreads]); - ptlrpcds = kzalloc(size, GFP_NOFS); + 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; + + /* + * 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 = 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; - ptlrpcds->pd_size = size; - ptlrpcds->pd_index = 0; - ptlrpcds->pd_nthreads = nthreads; + /* + * 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; + } -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; + /* 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; + } } +out: + if (rc != 0) + ptlrpcd_fini(); - return 0; + return rc; } int ptlrpcd_addref(void) -- cgit v0.10.2 From 3e36cf44798e0107f7e73edce098d0a5c233a79c Mon Sep 17 00:00:00 2001 From: Sakshi Vaid Date: Mon, 14 Sep 2015 20:59:24 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lov/lov_dev.c b/drivers/staging/lustre/lustre/lov/lov_dev.c index 8c3bbe5..10317e0 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); } -- cgit v0.10.2 From 6de9a2e3d46969044e5fa3c4ca48362f1a3d9435 Mon Sep 17 00:00:00 2001 From: Lucas Georges Date: Mon, 14 Sep 2015 16:52:35 +0200 Subject: staging: ft1000: code style cleanup There was a stray '*' in a comment block. Signed-off-by: Lucas Georges Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c index 9620970..9ea32ce 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); -- cgit v0.10.2 From 6ae9ac0b61a752fc95298820debde88c10bdb53e Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 15 Sep 2015 09:54:33 +0300 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 59a1a9d..621fd18 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]; } -- cgit v0.10.2 From 0e04f3f381c6a3ab3a7ef0ec9ded709e95996527 Mon Sep 17 00:00:00 2001 From: Ronit Halder Date: Mon, 14 Sep 2015 11:03:34 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 544c12d..8164a33 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 63f44f8..d8f17c6 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; -- cgit v0.10.2 From 96d6a318370db07e004bd19bd1c17471b3bf5b52 Mon Sep 17 00:00:00 2001 From: Mike Dupuis Date: Sun, 13 Sep 2015 22:42:44 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 5b6cf0b..45eb416 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); } -- cgit v0.10.2 From e9bcffdc77139e25e6632e774f978c1d3383aa43 Mon Sep 17 00:00:00 2001 From: Mike Dupuis Date: Sun, 13 Sep 2015 22:42:49 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 45eb416..030077f 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); } } -- cgit v0.10.2 From 1dfec545169e98b048e1fde0e7e16b6c29f09712 Mon Sep 17 00:00:00 2001 From: Mike Dupuis Date: Sun, 13 Sep 2015 22:42:53 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 030077f..c4f3e07 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)) -- cgit v0.10.2 From 70b49cd526c5b01679b5794272a160dad5c3205c Mon Sep 17 00:00:00 2001 From: Mike Dupuis Date: Sun, 13 Sep 2015 22:42:58 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index c4f3e07..702671a 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; -- cgit v0.10.2 From adad44d1322c6657a96fa1681ded9bb0c3bd56f0 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sun, 13 Sep 2015 14:15:04 +0200 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/user_sdma.c b/drivers/staging/rdma/hfi1/user_sdma.c index 5552661..6620262 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; } -- cgit v0.10.2 From 978fdc22bae06ea7422d7660ac78ed1c1c9c3e2a Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 15 Sep 2015 13:35:25 +0300 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/diag.c b/drivers/staging/rdma/hfi1/diag.c index 6777d6b..ce01dee 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 */ -- cgit v0.10.2 From 8fec2ee4fa58e57b835ab9bac67f04f091cf976d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 15 Sep 2015 11:53:35 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index 6012ec4..8eb8150 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 -- cgit v0.10.2 From 7d05652c5ce812b4d1addd1a2733d20c912d528d Mon Sep 17 00:00:00 2001 From: Chandra S Gorentla Date: Tue, 15 Sep 2015 18:09:51 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d8f17c6..9436eac 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); -- cgit v0.10.2 From 60eeb4102e9bccb07d4a0d4e79864c8058461847 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Tue, 15 Sep 2015 17:22:28 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 5c527c4..3c1b86c 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; } -- cgit v0.10.2 From 703b0d4bbb28f0d12389a13a49860e66c4f4b03b Mon Sep 17 00:00:00 2001 From: Nicolas Joseph Date: Tue, 15 Sep 2015 11:35:20 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index b143b36..80a6a4f 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); -- cgit v0.10.2 From 23ced60f154122765fbb320a3eb9d16e4ed19ca5 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 9436eac..09070ee 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 -- cgit v0.10.2 From 08241924d489dc8396c0916735941b1e906449e6 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:12 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 068e648..5941696 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_; -- cgit v0.10.2 From 2726887c5647b3799a568092ede0fecc418fce16 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:13 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index d873877..6bee710 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 09070ee..f200d5f 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 5941696..237be2b 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 e1caea9..30ca3e0 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; -- cgit v0.10.2 From 51e825f70b67ee9eb6ebb4ee8a191b31ea18981e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:14 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 621fd18..fdbd7e0 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 6bee710..a38d293 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 f200d5f..4597957 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 3b3ba8a..d0802fd 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 0ecad47..2b52738 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 79aa4a1..fb0b894 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 d9ccca9..d600417 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 237be2b..4126acd 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 3c3571d..eb160d5 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 30ca3e0..6ea5c87f 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 39716ba..c287301 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 99e07de..d7fd07b 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 21ed14d..8223b5f 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 8906611..bcff29c 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 9f9f4a9..a29d486 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 -- cgit v0.10.2 From ec53adfe1ca0951f6e48b76b4e8682edde2feac0 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:15 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index d600417..c31e17a 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 c287301..c76134a 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 d7fd07b..0f26c13 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 8223b5f..f5bbbe8 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 bcff29c..5af0617 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 { -- cgit v0.10.2 From fbc2fe16afa3f3709f29a8f938fc680e30894b8f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:16 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fdbd7e0..2574c48 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 a38d293..01e8be1 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 4597957..6ad8cd5 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 d0802fd..3e24256 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 2b52738..d8eed0f 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 fb0b894..820aac5 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 c31e17a..fd3ef97 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 4126acd..2671cdf 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 eb160d5..51f9413 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 c76134a..7496c1f 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 0f26c13..18bc11c 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 f5bbbe8..473d756 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 5af0617..ef88358 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 a29d486..b64f93a 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 -- cgit v0.10.2 From 766cecaffdcc424868cc136a8f2c139b41bcadfd Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:17 +0900 Subject: staging: wilc1000: remove commented codes This patch removes commented codes. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index a107377..dfc210a 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 820aac5..48834c6 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 fd3ef97..8426641 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); -- cgit v0.10.2 From 77c19f3a9c2e49dbec3b6572a926e411c0ec32af Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:18 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2574c48..563063c 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 -- cgit v0.10.2 From f57fb215442314af2512721c0b7304bad0077214 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:19 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 51f9413..edf5ec0 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 */ -- cgit v0.10.2 From af080e04caee06689a5df23c17a407b95c3b3994 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:20 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index dfc210a..a4321a4 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 -- cgit v0.10.2 From 90c604b2246b8135f27bdd5c0cc98fc881ecd12c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:21 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index a4321a4..f15a878 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 -- cgit v0.10.2 From 568ab197c4d80b344884b32032ca445ea2b1594e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:22 +0900 Subject: staging: wilc1000: fix alignment of defines This patch fix alignment of defines. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index f15a878..64bcd80 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 { -- cgit v0.10.2 From df94ed254bbc12111e038cbc4ad38c085fea47c0 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:23 +0900 Subject: staging: wilc1000: fix alignment of enum This patch fix alignment of enum. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 64bcd80..e3e4b06 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 { -- cgit v0.10.2 From b5c47a409d55f51963365a3e5e1b95c29b2d4a28 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:24 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index edf5ec0..aac9e3f 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 -- cgit v0.10.2 From 9cb8671553bc3ea1fd383ad7ed548d5476241af6 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:25 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 2671cdf..c3e0892 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 aac9e3f..15510f2 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) -- cgit v0.10.2 From f68fd661315383d2efde3addd316c9c63e83f707 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:26 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 15510f2..28858da 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) -- cgit v0.10.2 From 72d9af2a150bb5ed6f269616ba0e07fc5a029599 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:27 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index c3e0892..3ecf5b1 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; } -- cgit v0.10.2 From 1130feca0629678239d400c7ae03e62406c5e2c7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 15 Sep 2015 14:06:28 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index 28858da..5fd0757 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 -- cgit v0.10.2 From 6fd57333deabe3a37f7e57b64841e46e1834a598 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:52 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 30f22d9..b746763 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 003344c..40de622 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; -- cgit v0.10.2 From 8800d8cf7edaa80f17b1a03c39e0d13ffa34565f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:53 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index b746763..f58d142 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. */ -- cgit v0.10.2 From f6173fe0be3257067203a559a2290489a7664101 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:54 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index f58d142..5ae35fa 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); \ -- cgit v0.10.2 From fca5ba8a1d047b4eddc1774d64eccdf9724a9577 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:55 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index 96e271d..7756008 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 */ -- cgit v0.10.2 From af13af52e488ed2d2044924ea73ecb8589fc4d3b Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:56 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 76a2546..145c9be 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 725481d..aa68608 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", -- cgit v0.10.2 From d37c8781c0c1f7d52213b94a32c9b82f402845f0 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:57 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/cl_page.c b/drivers/staging/lustre/lustre/obdclass/cl_page.c index d5fb81f..e27062d 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; -- cgit v0.10.2 From c0a2472fa8e3a00168640542f158cc6ba8f55aaa Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:58 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index 2a4294d..352e524 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 3b6a2d7..c9c21d2 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 b610032..31ed248 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 84eb3da..9a10baf 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. */ -- cgit v0.10.2 From 3dc6f3252296f158764b110310124ec0e5eec6b0 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:26:59 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/fld/fld_cache.c b/drivers/staging/lustre/lustre/fld/fld_cache.c index 1b1066b..5eeb36d 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. */ -- cgit v0.10.2 From 781c848aa3e005415e03381640e2d886d4fd4f31 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:00 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_cfg.h b/drivers/staging/lustre/lustre/include/lustre_cfg.h index 7b385b8..c80d78e 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; } -- cgit v0.10.2 From 1089175c9c99e5cd8378b19a5a90bc0076b9151f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:01 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h b/drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h index 1d64ca7..34c7e28 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 */ -- cgit v0.10.2 From df29ca21143975d6ed11873fdf7e2248a6016ef0 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:02 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index 352e524..b380359 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 145c9be..bafef4e 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; } -- cgit v0.10.2 From 35eaf88724f7cc37c3b2c112d3333b98cddabaf5 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:03 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 5ae35fa..d8feec7 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) -- cgit v0.10.2 From e1708ad71433b01ed38fa5468bc0e8e95fc267fb Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:04 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index d8feec7..8a3323c 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"); \ -- cgit v0.10.2 From 543d5f3d280748558e6f187e1805a16164d59dac Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:05 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 8a3323c..3d92f19 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 b151154..fb4138c 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) { -- cgit v0.10.2 From 9ea9d6652b1e8d8f9299ec4dcfb9e20499923b2f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:06 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 3d92f19..62d76b5 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 fb4138c..32daefb 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 d3aea4a..6cd4cfa 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); -- cgit v0.10.2 From bea5820d7ad868ba4e4096b259fd8d5a359f6feb Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:07 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index 62d76b5..80ab85d 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 32daefb..39bf734 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 1f0004c..6acc4a1 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 08d1f0e..8d2a523 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; -- cgit v0.10.2 From 15b441cd9f7b802b38bf83c8bebabc7a69ec6fc5 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:08 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 131985d..3f404a2 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 019ee2f..f57d435 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 3c66dbd..1db4669 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); -- cgit v0.10.2 From aa2d3e81a47ebbba0738c039dcc9df5045168cd9 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:09 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 3f404a2..859007c 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 f57d435..9e36642 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 1db4669..16009a6 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 -- cgit v0.10.2 From f1c4ad3a2e1fbd0ec0ae3ec16efe788df502adcd Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Wed, 16 Sep 2015 12:27:10 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 859007c..ec33259 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 5332131..c99e658 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); -- cgit v0.10.2 From 59cfb96fcdcc53ead9ca2ef766e6bd91a09615eb Mon Sep 17 00:00:00 2001 From: Anjali Menon Date: Wed, 16 Sep 2015 17:12:21 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c index 4fbae5e..75ff382 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), -- cgit v0.10.2 From 2877f245cf13d4cc6be4dab149d3d2f239ce8cd6 Mon Sep 17 00:00:00 2001 From: Juston Li Date: Wed, 16 Sep 2015 19:51:56 -0700 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_private.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_private.h index 9544860..6af733d 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 4545d54..8689ea7 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"); -- cgit v0.10.2 From efc0cfa1341b9718b8bf295641e2bf909fe215ba Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 15 Sep 2015 14:28:18 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index a1e1bce..cbda189 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; } -- cgit v0.10.2 From 2b4738c0b416b7578a09dde83ac02a1194b4d25f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 16 Sep 2015 10:43:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 6ad8cd5..bd77eb3 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 ea121f9..5d13c15 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 6ea5c87f..904d9c3 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; -- cgit v0.10.2 From d30244a032f2e05e5125b45f20648ebe7dec2798 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 8164a33..c46fe9f 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 */ } /** -- cgit v0.10.2 From d52979b3bbe4622b799c29cf2647b1d1e20d5336 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index c46fe9f..ac3da88 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 */ } /** -- cgit v0.10.2 From 20f44491070376150a9e68860129786869eff4a6 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index ac3da88..a0b0d97 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) -- cgit v0.10.2 From b701da39edeaa6f3f209f76b8f965700090ad60f Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index a0b0d97..b514d09 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 */ /*****************************************************************************/ -- cgit v0.10.2 From dd33a8651e2cd248dfd9e519ebca535c5974be55 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index b514d09..7936b49 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; } -- cgit v0.10.2 From 496a77257c67035fd56bf0faeb1a8251fc0c942a Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 7936b49..87d32ae 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 3af1935..d2a0a0b 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 -- cgit v0.10.2 From be6c212a6fc0ceb942600176258b2cb2ff9cc1d1 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index d2a0a0b..c2aee05 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); -- cgit v0.10.2 From 57c111a472106bf75a4ac8ae525a41356f003861 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index c2aee05..32e5b31 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 -- cgit v0.10.2 From c116299cff0c3bf67d0c3a7880dee95212d22227 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 10:43:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 3ecf5b1..4151aae 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; -- cgit v0.10.2 From 7ae433631eacd0f0aaa749baef4c7f6baa5b3936 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:35:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 563063c..827758d 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 8eb8150..42495d9 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 41244ce..ac23736 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 4151aae..32fd543 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); -- cgit v0.10.2 From 7dc1d0cc1ffa29aa11219ad7e31ae5f4dc443711 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 827758d..8ed1aaf 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 42495d9..769cef0 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 ac23736..53b6f07 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 32fd543..72fc105 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; } -- cgit v0.10.2 From 24db713fe5325917690c2c793a6321aa0b11a0c8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 87d32ae..96358a9 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 8ed1aaf..8c6de42 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); - - WILC_CATCH(s32Error) - { + PRINT_ER("wilc_mq_send fail\n"); - } 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 769cef0..99ded3d 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 53b6f07..01fd94b 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; + /* other non-timeout scenarios */ + if (s32RetStatus) { + PRINT_ER("Non-timeout\n"); + return s32RetStatus; + } - pHandle->pstrMessageList = pstrMessage->pstrNext; + if (pHandle->bExiting) { + PRINT_ER("pHandle fail\n"); + return -EFAULT; + } - kfree(pstrMessage->pvBuffer); - kfree(pstrMessage); + 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; } - - WILC_CATCH(s32RetStatus) - { + /* 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 72fc105..48def8c 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) - { - } } -- cgit v0.10.2 From 559e1a04e2888331dae5f648cc097dd9f30172c7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h index 99ded3d..054ed76 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 -- cgit v0.10.2 From e6e12661d8e123667afc03a58fc2e90cd95c5e5e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 96358a9..aecaa03 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 8c6de42..8d7a639 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 6a27d5c..af5d0f5 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 bd77eb3..3477e09 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 054ed76..b0babbd 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 01fd94b..94a2d3d 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 48def8c..f01260f 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; -- cgit v0.10.2 From 6569738ad547c6562c94254245a12aaaf2e375c4 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Wed, 16 Sep 2015 18:36:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_errorsupport.h b/drivers/staging/wilc1000/wilc_errorsupport.h deleted file mode 100644 index b0babbd..0000000 --- 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 94a2d3d..225bb99 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 fb26463..a3c0bba 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 68f6efe..9b5c23a 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" -- cgit v0.10.2 From 108b3439b7dd51687983d42e66532b9dbd3204d1 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:20 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8d7a639..41e80aa 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 af5d0f5..4c02b98 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 3477e09..bc9aae4 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 f01260f..cc61f26 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 7496c1f..97aac50 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 18bc11c..c6f1556 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 b64f93a..da37cff 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 */ -- cgit v0.10.2 From fcc6ef9230373eeb0c6d897c22fef390378abc3b Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:21 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index aecaa03..b7a4bff 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 32e5b31..8439066 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 41e80aa..6fdf392 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 e3e4b06..fd5fa19 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 bc9aae4..f79aa49 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 cc61f26..468b632 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 5fd0757..dff8265 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 904d9c3..27c9ccf 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 97aac50..54f30b2 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 da37cff..d67718f 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)*/ -- cgit v0.10.2 From 25a84832bb662fb2d9966b7d0f9301d93023a6cf Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:22 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index f79aa49..08d75ab 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 468b632..a2c80db 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 dff8265..4d37c4e 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 54f30b2..1db4cc8 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 d67718f..3f5aa44 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 */ -- cgit v0.10.2 From ce25267907e15c8f69d54ba3fa02ae39aca7667f Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:23 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 08d75ab..de04779 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) -- cgit v0.10.2 From 51f8a39911c3b7bf8466009eba87903d75d6192d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:24 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index de04779..f104a23 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 27c9ccf..c68df360 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; -- cgit v0.10.2 From 85718c2d6b7da8adc589889fae993e1aa4a4a9fa Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:25 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index f104a23..186e42e 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 c68df360..c98eab6 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 1db4cc8..22310cc 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 3f5aa44..bccfcf9 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; -- cgit v0.10.2 From d7ed06a3840c2db50094a7b377642202a6e71da5 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:27 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 186e42e..a4f43d2 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 c98eab6..aa96ef3 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]; -- cgit v0.10.2 From 50b51dac4a4f26b815289d6f879eac9b77e786c1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 16 Sep 2015 20:11:26 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 22310cc..47c743b 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); -- cgit v0.10.2 From 9af382bca5bfab2891199c69447217a6aa3ededc Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 16 Sep 2015 20:11:27 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index b7a4bff..2fa2790 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 47c743b..788e706 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; -- cgit v0.10.2 From 2602b2bf419c3e5a9fad74359bb553cb4f977953 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 16 Sep 2015 18:53:26 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 788e706..4c25179 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 bccfcf9..cc92dc9 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); -- cgit v0.10.2 From 96a98aa1fc59c8fb0cb3bd6445111a35beed6e1f Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:44 -0400 Subject: staging: rtl8723au: Simplify eeprom content checking This eliminates the ugly Hal_EEValueCheck() function Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c index cf2388f..cd014f7 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; } } -- cgit v0.10.2 From 8b9283234e8f8f6195de37d38d4979900681e198 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:45 -0400 Subject: staging: rtl8723au: Eliminate dummy ccxPowerIndexCheck() Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c index 7fa9780..8764538 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); } -- cgit v0.10.2 From e5241dc0198760e945aa94c9080e65aa49149aa4 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:46 -0400 Subject: staging: rtl8723au: Fold getTxPowerIndex() into PHY_SetTxPowerLevel8723A() Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c index 8764538..26d7f40 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); -- cgit v0.10.2 From 36708d00b16d608801c34cf660afafdec1fdea91 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:47 -0400 Subject: staging: rtl8723au: Tidy up SetTxPowerLevel8723A() Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c index 26d7f40..06a6c3e 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); } /*----------------------------------------------------------------------------- -- cgit v0.10.2 From 784e36838af091160b1f4917e8fc076ae0cf468e Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:48 -0400 Subject: staging: rtl8723au: TurboScanOff is always true Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c b/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c index 11d635d..0ae525b 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 -- cgit v0.10.2 From b3083eb8fd7f6f72b67c7d7c99a15bfc37289a71 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 15 Sep 2015 16:32:49 -0400 Subject: staging: rtl8723au: Clean up getPowerBase() Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c b/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c index 0ae525b..ce0d8d8 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; } } -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index b03bc66..387fac1 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 -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 80a6a4f..d243989 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; } -- cgit v0.10.2 From 18f05b529592e65470ff50a887b9387d7d71e724 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:42 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 2fa2790..14e8efc 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 4c25179..47fa0f3 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 /******************************************** * -- cgit v0.10.2 From fed16f2c912fbd1e8e866738e2a8fcd5d9c36c81 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 47fa0f3..1fe1ba5 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; -- cgit v0.10.2 From a0e5facedb4a1c7892a6f6f7a749eaf9b23fbbe1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 3e24256..51bbd96 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)); -- cgit v0.10.2 From 0097ac7b1d5e17c08fd555a3e97eae808a3d0be2 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:46 +0900 Subject: staging: wilc1000: remove unused defines This patch removes unused defines. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h index 1e56973..5c867ec 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 -- cgit v0.10.2 From 62f463a892420f7e275a6e67af1c465b431a3ac1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h index 5c867ec..b763616 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; /******************************************************************* -- cgit v0.10.2 From 5af6b85b9e65b81c1954cbfa18ad41d65f911c93 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6fdf392..c63c5ee 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 fd5fa19..c1a9cce 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 a4f43d2..bb16518 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 5d13c15..9478e82 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 a2c80db..5a95b95 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 aa96ef3..dddf28d 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 1fe1ba5..e12dd01 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 c6f1556..9f05b79 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 cc92dc9..0e2937b 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 */ -- cgit v0.10.2 From 5366012de97bc1f6b53c79bd5f664b7a0ced769b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Thu, 17 Sep 2015 16:48:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c63c5ee..703712e 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; -- cgit v0.10.2 From a87d792b3594454c97c2c9e9693e7dd3bfcbb012 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 17 Sep 2015 17:47:24 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index bb16518..d3d785e 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 9478e82..8ef80c6 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 dddf28d..ca95728 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 e12dd01..82b32a9 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); } -- cgit v0.10.2 From d59177cb70bbfff07408de0ceed8dcdd91208b5e Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 17 Sep 2015 17:47:25 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d3d785e..6791012 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); -- cgit v0.10.2 From 0a0796eb16f387b01e0da968883ebce7faf17972 Mon Sep 17 00:00:00 2001 From: Jakub Sitnicki Date: Fri, 18 Sep 2015 08:13:00 +0200 Subject: 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 diff --git a/drivers/staging/rtl8188eu/Makefile b/drivers/staging/rtl8188eu/Makefile index 31ac159..ed72358 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 44eeb03..cb90ad5 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 5dc0b90..cabb810 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 4433560..7c5086e 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 bcc74dc..0729bd4 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 0000000..f31fa68 --- /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 0000000..3dd3dc0 --- /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 2361bce..d85647c 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 33bfe05..82a7c27 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); -- cgit v0.10.2 From 78affe6522738ccda21c3f4e83bcaf08aab18d6e Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 17 Sep 2015 22:14:32 +0530 Subject: 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 diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index 8585970..b1a8b4b 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) -- cgit v0.10.2 From de4772aef38a4cba6e163913e92b2c874274b863 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 17 Sep 2015 22:14:33 +0530 Subject: 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 diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index b1a8b4b..fb663c8 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; -- cgit v0.10.2 From 4b8645d64375a82971cebb312a6f665dc586686f Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 17 Sep 2015 22:14:34 +0530 Subject: 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 diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index fb663c8..6ff0b83 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; -- cgit v0.10.2 From cbdc251d1153087f98b4e84f7d7d54357752b9d7 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Thu, 17 Sep 2015 22:14:35 +0530 Subject: 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 diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index 6ff0b83..2025b61 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) || -- cgit v0.10.2 From 63107ce85edc9296b518fa29f6fe80cc29cb9c68 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 18 Sep 2015 15:46:23 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 0e8a451..47d1648 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) -- cgit v0.10.2 From 67dd5eb952032b07cf2cc6e04047c990714cb270 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Fri, 18 Sep 2015 18:11:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 703712e..6d119c4 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"); -- cgit v0.10.2 From 3a8c41b50aa2782f3ba926944a2374b957705f33 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Fri, 18 Sep 2015 18:11:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6d119c4..fdb0b9b 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"); -- cgit v0.10.2 From 2e19202501a0362c6f2f73c6625d8fea42d5a2be Mon Sep 17 00:00:00 2001 From: Erik Arfvidson Date: Tue, 25 Aug 2015 17:52:35 -0400 Subject: 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 diff --git a/drivers/staging/unisys/Kconfig b/drivers/staging/unisys/Kconfig index 624abe6..ca850a8 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 a515ebc..d071094 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 0000000..3b83e2c --- /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 0000000..e457bd1 --- /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 0000000..2ed2602 --- /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 0000000..256477a --- /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 0000000..3e6a52f --- /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 0000000..cca426b --- /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); -- cgit v0.10.2 From 96da20a9a31a2acec0f9bd1c6681dce6c2c40096 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 6791012..ed6044e 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 5a95b95..239d0fc 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 4d37c4e..67b8de3 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); -- cgit v0.10.2 From 8459fd54aa3ac145ba16a2b9cbc76ab5b99b4d32 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index ed6044e..4534fb9 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 239d0fc..e51745e 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 67b8de3..579bf2b 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); -- cgit v0.10.2 From 619837aea8fef3e3a08e4158f79b51118e552fec Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index e51745e..af11af3 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; } -- cgit v0.10.2 From 855a771d59a41b37eb6848aeab5ae3c27302ae6e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index af11af3..8107420 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) { -- cgit v0.10.2 From 1058cc32d13b9958f23b6a82271413ad0f11b680 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:12 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 8107420..fbe8643 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); - } -- cgit v0.10.2 From c3ca63728ad87e65386ec53a904a623f85afe443 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:19 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fdb0b9b..0546f7a 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 4c02b98..b1af421 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 4534fb9..7a33543 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 fbe8643..0dc6302 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 ca95728..90fe1e2 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 82b32a9..ba502f1 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 9f05b79..60da18c 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 473d756..ce16775 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 0e2937b..5f68b6a 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, -- cgit v0.10.2 From 967c606a90fc6f0fc6f1368a481fa906ab0aa54f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:20 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 225bb99..869736a 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; } -- cgit v0.10.2 From 244d31b572c6935f30d2e0b52c6316cd5528ba41 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:21 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 0dc6302..7aff04a 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 ba502f1..0a930ec 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 ce16775..73a1508 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); -- cgit v0.10.2 From f1fe9c435d048cba8dcb4f0515f016722e246f73 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:22 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 7aff04a..f0bbd90 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; } -- cgit v0.10.2 From 1a8ccd85854c24963306c23382afb8a7fd3c046b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:23 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index f0bbd90..41dd1c3 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; -- cgit v0.10.2 From a9a1682344107cfefa35cf6c14c1019c67288f88 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:24 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 7a33543..6f0a741 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 41dd1c3..7222359 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 579bf2b..9185673 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); -- cgit v0.10.2 From dd4b6a832e4bef352a6038c07415c4eb4d1d6ee1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:25 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 6f0a741..5b9c48a 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 7222359..7874c9e 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 9185673..a6145fc 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); -- cgit v0.10.2 From 98a52483161d5a117e137b43874fd9182492f0e8 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Sun, 20 Sep 2015 16:55:29 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/mlme_linux.c b/drivers/staging/rtl8712/mlme_linux.c index 8c5a475..6d253bf 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); -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index d243989..28b54ba 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); -- cgit v0.10.2 From 143eb95abb4c4e59772681de749af8d2f71afac6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:32 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0546f7a..e9ac395 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; - - s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(struct host_if_msg)); + 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, &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"); -- cgit v0.10.2 From a9f812a6d845d4511a711c7d5d84776b2f5aec8c Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:33 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e9ac395..26c44ce 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; -- cgit v0.10.2 From dfc7663ba27f38be04095e3d4931f9df58b887fc Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:34 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 26c44ce..25f2ce0 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; }; -- cgit v0.10.2 From 410c248991430d8fbcba0230501c7e3666eb01a3 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:35 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 25f2ce0..6bfb8b1 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.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.u8ScanSource = u8ScanSource; + msg.body.strHostIFscanAttr.u8ScanType = u8ScanType; + msg.body.strHostIFscanAttr.pfScanResult = ScanResult; + msg.body.strHostIFscanAttr.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, 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) -- cgit v0.10.2 From c476feb8d3e51fe1775207b72102f48d6177b963 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:36 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6bfb8b1..7c36924 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]; -- cgit v0.10.2 From 120ae59385cc744c9ae6a2054f2b90cfdfb45f9e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:37 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7c36924..2fb7d3e 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; -- cgit v0.10.2 From 3bbd59f5f5d8681f606ecad3fc6a06305a228b42 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:38 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2fb7d3e..99b9766 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 c1a9cce..537845e 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; -- cgit v0.10.2 From f23a9eabcbb0e1fb8648f9b86b22c6f8540e15dd Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:39 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 99b9766..bc31271 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 */ -- cgit v0.10.2 From c98387a5736e928273fbe306942b447afea964e6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:40 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index bc31271..12fd43d 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; -- cgit v0.10.2 From 361ff841ff1980427fce63ac99cfdec350bc83e9 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:41 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 12fd43d..78f3f76 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]; -- cgit v0.10.2 From 326b323d012b04ec8932b1135290e463bb120fad Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:42 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 78f3f76..5d1b75a 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; -- cgit v0.10.2 From 29f84000740af55dfe3dc705a184cab3b04773c1 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5d1b75a..ead3185 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 */ -- cgit v0.10.2 From 902362b1f7f6e3afa01a3290f77a1ae448c3840f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:44 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ead3185..f7466ac 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"); -- cgit v0.10.2 From d0227fcbcc82fa68c637e70fde1153fa8ab850e6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f7466ac..b2f04a5 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; -- cgit v0.10.2 From 6a89ba9cee532e93098b014ea90d8efdebfc28c6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b2f04a5..93c4d7a 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 537845e..b24eeb6 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: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 93c4d7a..b6d9149 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; -- cgit v0.10.2 From 5a008f1cd3d47b054633a56f8823ce69b4d5ba7a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b6d9149..5710832 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); -- cgit v0.10.2 From 3d1eac048deeefc587c96fb2d950fe11b3b1cba4 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5710832..52141eb 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; -- cgit v0.10.2 From 15191eaf4ef2d705e9b529f24977a29de8ed0d2d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 52141eb..7b9f78a 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; -- cgit v0.10.2 From 127f9d9497aa90b9006323b97f539dcca88df95b Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7b9f78a..64d614a 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 b24eeb6..dc6fe73 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; -- cgit v0.10.2 From 641210ac1b9c74b615e76efa33e01b1975e0849a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 64d614a..05f8db9 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) { -- cgit v0.10.2 From 801bee52a111c1c6957480d14326cd6a579c6f55 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 05f8db9..68df96b 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 dc6fe73..101e51f 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]; -- cgit v0.10.2 From b7611a87a938ffc1aaff54b1d773e5f372ae2150 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 68df96b..c1fc145 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 101e51f..fc7c521 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; -- cgit v0.10.2 From fcd27c5f658b905bbd0abf55c7304a9cc4a3e90e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c1fc145..7c5b49c 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 fc7c521..c8b482f 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]; -- cgit v0.10.2 From 54265472bf3e614252ea829e378977189b56717c Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7c5b49c..4ce981b 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 c8b482f..aba00f1 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; -- cgit v0.10.2 From fb93a1e1be67aa935903687d7d4972751b8adebc Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4ce981b..ae56fb4 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"); -- cgit v0.10.2 From 2f9c03f5216f7cb752103a7cd84ea431c199db48 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ae56fb4..df0077e 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 aba00f1..e0fc27f 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; -- cgit v0.10.2 From bc37c5dfba7d32a41584c97a642dbfcb836f065d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:16:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index df0077e..2cc01dc 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 e0fc27f..c96fff9 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 -- cgit v0.10.2 From b4e644e48c391d3b0316afec6cecf870d83bafd3 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:17:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2cc01dc..7b9de4c 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; -- cgit v0.10.2 From 6ddea59641605a6e494c7ad167111e47d513e741 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:17:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7b9de4c..b92c96b 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)); -- cgit v0.10.2 From 903b4d31c81125cbf493bdd6b5ddaa50b0d3ed67 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:17:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b92c96b..8f92ff0 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) -- cgit v0.10.2 From a5a45ba2738723c62775f51aad4657f1606f3b7d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 21 Sep 2015 12:17:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8f92ff0..62f4a8a 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; -- cgit v0.10.2 From 12ec0bd63eb13d1c33fc02112b7ca91d5ebf070b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:15 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5b9c48a..cf27749 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 a6145fc..c323555 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 -- cgit v0.10.2 From 8e0735c5e0a92d6a8e5b30cd485c2811d701e58b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Sun, 20 Sep 2015 15:51:16 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index cf27749..7857ad2 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 a51560f..de8c83d 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 c323555..b240a79 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 -- cgit v0.10.2 From 40220d8062ce5b333c0124388f7709c84c142074 Mon Sep 17 00:00:00 2001 From: Ting-Chih Hsiao Date: Mon, 21 Sep 2015 14:58:09 +0800 Subject: 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 diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index 9e36642..3e9cca0 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, -- cgit v0.10.2 From 64ffdc383b18e66c3698fff05ea693f4346cfbf9 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 21 Sep 2015 18:57:10 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 8eb5e69..2a2d53c 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 ea013e9..6010e6c 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 8b3ee24..6ff76e5 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 b36f6e1..8552411 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 3a28a36..a381dbc 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 d166ca9..f31b3f4 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 30bed2c..3ed50fe 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 25e5a11..3b3a06d 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 7efd8bc1..e0e2539 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 d07a312..dcee0af 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 85387f0..6368486 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 10068b0..d9dfff6 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 7ba220f..828174a 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 0ae5bc6..da85057 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 9ee8d56..d6ae76b 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 e680452..1162c08 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 4fe899b..7568e94 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 9ac75f6..53cb8e9 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 7e3762d..83867e1 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 e249bbf..a92b0d0 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 04d1e34..caf263d 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 1225ba9..4e16ea7 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 14a8734..5b83661 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 e0d4d36..28b13cf 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 f0011ee..970b843 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 01126a5..c480049 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 293fcbb..b318daf 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, -- cgit v0.10.2 From d53dfb24e5772bd2a0cec16cf7b0edc5b5f2e7b2 Mon Sep 17 00:00:00 2001 From: "Amber N. Adams" Date: Sun, 20 Sep 2015 11:32:06 -0500 Subject: 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 diff --git a/drivers/staging/skein/skein_api.h b/drivers/staging/skein/skein_api.h index 7da8b38..5df7905 100644 --- a/drivers/staging/skein/skein_api.h +++ b/drivers/staging/skein/skein_api.h @@ -1,28 +1,28 @@ -/* -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. -*/ + */ #ifndef SKEINAPI_H #define SKEINAPI_H -- cgit v0.10.2 From 60d6a21b1ec25629e93f11464fae3b2045c3370f Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Mon, 21 Sep 2015 21:59:41 +0530 Subject: 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 diff --git a/drivers/staging/rts5208/rtsx_chip.c b/drivers/staging/rts5208/rtsx_chip.c index 0df3b9d..c0ce659 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); } -- cgit v0.10.2 From 72aa29ce0a59779dcda91e967600a0f8637945a6 Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Fri, 28 Aug 2015 17:27:52 +0300 Subject: 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 diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 42d360f..20312a0 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 0000000..f30b4c4 --- /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 2753118..7868c74 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 fa5723a..99b37a9 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 0000000..c73c6c6 --- /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"); -- cgit v0.10.2 From 7db75fd615a6d77230315c52f9c79b2102ef2bfe Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Fri, 28 Aug 2015 17:28:20 +0300 Subject: 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 diff --git a/Documentation/devicetree/bindings/iio/adc/hi8435.txt b/Documentation/devicetree/bindings/iio/adc/hi8435.txt new file mode 100644 index 0000000..3b0348c --- /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>; +}; -- cgit v0.10.2 From 4839367d99e3b067d3c2e9404ae320c100d090c7 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 6 Sep 2015 13:27:39 -0700 Subject: 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 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 0000000..b72bb62 --- /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 688c0d1..353ee9a 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 86e2d26..3e62c0a 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 0000000..2824578 --- /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"); -- cgit v0.10.2 From 01b721536b4128c1e17c596650198bfc36ad8c6c Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:30 +0530 Subject: 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 diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c index ffc7f0d..3d2e50c 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 f12b2e5..8552c76 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 77141ae..3883808 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 dbceda1..23e7392 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 d620bbd..a838835 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) -- cgit v0.10.2 From afc7da6e486c04244766da9fe2574d972125a602 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 10 Sep 2015 22:00:29 +0530 Subject: 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 diff --git a/drivers/staging/iio/addac/adt7316.c b/drivers/staging/iio/addac/adt7316.c index 5b11b42..a1dd745 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, -- cgit v0.10.2 From c3cdd6e48e35b7a02f28e301ef30a87ff3cd6527 Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:08 +0200 Subject: 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 diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index b921d84..f28428fa 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", -- cgit v0.10.2 From c5ea1b58e8f51d8cd72e46cc398742988a614054 Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:09 +0200 Subject: 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 diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt index af1bc50..e1c07dd 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 0000000..c3bc272 --- /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 cd5cd24..fc53c29 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 f28428fa..7b2ab17 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); -- cgit v0.10.2 From 60f562e74e75716cc121cc7adb2dcb43c17709bf Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:10 +0200 Subject: 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 diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 7b2ab17..6b1a862 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, -- cgit v0.10.2 From 417e008ba9db7ce4b4e48131c6f69829e9886b3e Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:11 +0200 Subject: 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 diff --git a/Documentation/devicetree/bindings/iio/accel/mma8452.txt b/Documentation/devicetree/bindings/iio/accel/mma8452.txt index c3bc272..e3c3746 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 fc53c29..8172ae5 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 6b1a862..59b4455 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); -- cgit v0.10.2 From d6223c3737bd9680f1fb6c058bdfca41ee24e2da Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:12 +0200 Subject: iio: mma8452: add copyright notice comment Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 59b4455..15d50c9 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 -- cgit v0.10.2 From b2a768949c4906d87fd0c65b39752e599b5a1860 Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Tue, 1 Sep 2015 13:45:13 +0200 Subject: 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 diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 15d50c9..1eccc2d 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) { \ -- cgit v0.10.2 From e09f56f3f09638a0f0120be81352378ed1727431 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 17 Sep 2015 19:02:32 +0200 Subject: 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 diff --git a/drivers/iio/dac/max5821.c b/drivers/iio/dac/max5821.c index 28b8748..86e9e11 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 = { -- cgit v0.10.2 From 0df5a5488b6d157eabfdc0747c87c08bd7431a56 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 17 Sep 2015 19:02:00 +0200 Subject: 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 diff --git a/drivers/iio/adc/twl6030-gpadc.c b/drivers/iio/adc/twl6030-gpadc.c index df12c57..becbb0a 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) { -- cgit v0.10.2 From 8ff6b3bc9493089247e012a9fcba7198e194b4a5 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 13 Sep 2015 20:26:11 -0700 Subject: 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 diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 20312a0..08903b9 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 bef690e..ee09a94 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 2f8b117..1e4c4e3 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 { -- cgit v0.10.2 From d38d54692d454e4dded125677e39f53514dc4277 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 13 Sep 2015 20:26:12 -0700 Subject: iio: resistance: add IIO_RESISTANCE channel type Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 08903b9..8ce14c8 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 ee09a94..208358f 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 1e4c4e3..7c63bd6 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 { -- cgit v0.10.2 From 9bff3131cfb30ef761adfad08c4a0a1b7faf1e20 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 13 Sep 2015 20:26:13 -0700 Subject: devicetree: add SGX Sensortech vendor id Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 341695b..d591561 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. -- cgit v0.10.2 From cd8d97774f23c601d0ed66b5035bcc77dd665b10 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 13 Sep 2015 20:26:14 -0700 Subject: 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 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 0000000..c0c1ea9 --- /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 e1c07dd..ed7ef46 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 6fe0d65..119c94d 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 40995f3..e210055 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 0000000..3061b72 --- /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 0000000..7292f2d --- /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 0000000..b454200 --- /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"); -- cgit v0.10.2 From fd2bb310ca3d3621a0f201e018e1292dca95df6e Mon Sep 17 00:00:00 2001 From: Cristina Opriceana Date: Fri, 11 Sep 2015 16:59:30 +0300 Subject: 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 diff --git a/drivers/staging/iio/iio_dummy_evgen.c b/drivers/staging/iio/iio_dummy_evgen.c index 6d38854..86d8447 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 8d00224..5c2f4d0 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 73108ba..bfbf1c5 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", -- cgit v0.10.2 From c14f8abe5304ba46b898cd381a0857fd61f87200 Mon Sep 17 00:00:00 2001 From: Adriana Reus Date: Wed, 16 Sep 2015 11:14:11 +0300 Subject: 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 diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig index 19b9a17..cfd3df8 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 7b22445..b2c3105 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 0000000..49dab3c --- /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"); -- cgit v0.10.2 From 9214185b515ed550fe67c912ca446b4524f01603 Mon Sep 17 00:00:00 2001 From: Adriana Reus Date: Wed, 16 Sep 2015 11:14:12 +0300 Subject: 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 diff --git a/Documentation/devicetree/bindings/iio/light/us5182d.txt b/Documentation/devicetree/bindings/iio/light/us5182d.txt new file mode 100644 index 0000000..6f0a530 --- /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 d591561..f2b1d6f 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. -- cgit v0.10.2 From 36736cc66bcedcd25b65faff43e352491409971f Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Tue, 22 Sep 2015 10:16:48 +0800 Subject: 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 diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c index 635ccd8..599cde3 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 = { -- cgit v0.10.2 From ebe5c543cf8ed3010881a8d863e954b961013fea Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Tue, 22 Sep 2015 10:21:48 +0800 Subject: 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 diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c index 27f4157..8d7ce6a 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, -- cgit v0.10.2 From 1d2f1e084b7386b4082ebc2490ce0ddc8efe5667 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Tue, 22 Sep 2015 10:21:48 +0800 Subject: 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 diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c index 8d7ce6a..bf80ce4 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, -- cgit v0.10.2 From 234837decbffdb28325588f66811796698d68cf2 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 22 Sep 2015 14:34:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 62f4a8a..158d8b8 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]); -- cgit v0.10.2 From 12dc9e4ea69df9cce45e90810b574990d2d90eba Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 22 Sep 2015 14:34:44 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 5f68b6a..e56014d 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 -- cgit v0.10.2 From d4cebe4d886f23a5666871f9980bbcc9cf769ea7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 22 Sep 2015 14:34:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index e56014d..0863592 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, -- cgit v0.10.2 From 531c7ceb934f709ce2b8847b1ace499727e11de1 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 22 Sep 2015 14:34:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h index 0863592..7a1b943 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_IP_ADDRESS = 0x3999, + 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, /* 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); -- cgit v0.10.2 From 4653067955726266b25123b86921af09ad275a5a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index de8c83d..eaec88c 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, }; -- cgit v0.10.2 From cdc9cba5fff5c67cd6093eb0578062e0f62d8482 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:47 +0900 Subject: staging: wilc1000: remove useless comment This patch removes useless comment. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index eaec88c..58b1481 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*/ -- cgit v0.10.2 From a8047e26c799c8c426588677cd22ac657e970d04 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 58b1481..40fd3ca 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, }; -- cgit v0.10.2 From 956d7211970693ad211d22a8c17600d9482a883c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 40fd3ca..da04e50 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; -- cgit v0.10.2 From 85c587a5483814b5a8ca19e0ee473fc0afa232e2 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index da04e50..0c72c5e 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; -- cgit v0.10.2 From c156032daf431d46a4520c42de7858747929eea4 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 0c72c5e..0becefb 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; -- cgit v0.10.2 From 37316e81677fe2765d7711f856898863ec7a73b5 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 0becefb..7d26ccd 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; -- cgit v0.10.2 From 109c4831279d4bb3f1fff885c5dc31132b03296e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 14e8efc..e563c9b 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 8439066..88a697b 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 158d8b8..96d7f72 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); -- cgit v0.10.2 From 67ec31b8c268bc912f1d5a437b75194692816d3f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 96d7f72..e7b3af3 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; -- cgit v0.10.2 From 27a82ebf920123978d74d51fe7ce94579e372f94 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e7b3af3..3f92216 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) { -- cgit v0.10.2 From 1604296d20a7d278f525a8134e2db1a727b2fdd1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3f92216..6b744a2 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; -- cgit v0.10.2 From 9dfcff4a42ef694c09adf8f2d7b6ceff8cbe21ec Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6b744a2..2687e81 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 -- cgit v0.10.2 From 3f4e0ce2b67fc556fcbfb615381e5441938256c7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2687e81..c22d57a 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*/ -- cgit v0.10.2 From 5b09bd32a723f41fba91be8c83e0c9909646464e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:34:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c22d57a..80e6eba 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; } /** -- cgit v0.10.2 From 1d53eec391e988aea0a81618f35950a682e2daeb Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:35:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 80e6eba..98fbd5c 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 -- cgit v0.10.2 From dddaba1a3b1b17a6945a973a1ac57358bab269ee Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 18:35:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 98fbd5c..f7f4c8d 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); -- cgit v0.10.2 From 6a27224f964d045cc8358f7c23dce3ab401f702d Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 22 Sep 2015 15:24:50 +0200 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 0a930ec..ddb03a8 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); -- cgit v0.10.2 From c22dbd4bb8fd15faa800ef5daf1a81aa31896bf8 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:37 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index e563c9b..9676044 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 88a697b..a255e45 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 f7f4c8d..e2ae9ab 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; -- cgit v0.10.2 From cf32c3c4230a8f1f513e77266d5e02bdc0e1f27d Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:38 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 9676044..3813767 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 a255e45..7227c0f 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 e2ae9ab..4cbe726 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"); -- cgit v0.10.2 From ef154414b2e7ba2e20db932fc96262cc692e8621 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:39 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 3813767..d8b8c3d 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; -- cgit v0.10.2 From 02cf299d0e281efc930bf1bd01479897d9ec483e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:40 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index d8b8c3d..875b769 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; } -- cgit v0.10.2 From d0a7fcc7e6978051fc38ae885ab5fd8bc9d6b281 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:41 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 875b769..8b56b92 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++) { -- cgit v0.10.2 From 36cca3ba725c87c322dbef983d47a3fe72c6d9b4 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:42 +0900 Subject: staging: wilc1000: remove useless comment This patch removes useless comment in coreconfigurator.c Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 8b56b92..47a37fa 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 7227c0f..e2b7b09 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; -- cgit v0.10.2 From dd322576bdd4c3e529f5f6933dffe743ce78fadc Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 47a37fa..bdf775a 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 7a1b943..ff25b3a 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 -- cgit v0.10.2 From a1f7f64244aa15e76f794d1bd4f346c852882248 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:44 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index bdf775a..3c71b9f 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 e2b7b09..c2bd6fc 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 4cbe726..abfceff 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"); -- cgit v0.10.2 From 74a443e0940a57ee8f360692dc3bfbc551dee6c0 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Tue, 22 Sep 2015 22:47:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 3c71b9f..68e3c7f 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; } /** -- cgit v0.10.2 From f446ebbeee224cc50c6e8a04916585b8ac5dd566 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 23 Sep 2015 16:10:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index ddb03a8..a3dd421 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 -- cgit v0.10.2 From 70f52debbed3d0c99d8b9b6ce32d8cf7f0cfe638 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 23 Sep 2015 16:10:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index bdeffea..afae7d6 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 abfceff..5993f3a5 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 7857ad2..1f1b34b 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 7d26ccd..755a817 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"); -- cgit v0.10.2 From 6e8c37df4cf101c7f4c051868c4dc2c33dbabf0d Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 23 Sep 2015 18:03:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h b/drivers/staging/wilc1000/wilc_msgqueue.h index a3c0bba..982628e 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 b763616..6ec1aa3 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; -- cgit v0.10.2 From 947239070af5ce30c09de1f384cb605b9e6a3401 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 23 Sep 2015 18:03:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index 869736a..d5ebd6d 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 982628e..d231c33 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 { -- cgit v0.10.2 From f23eb98b9429082644c2a08af12fbdbff646c406 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 23 Sep 2015 18:03:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5993f3a5..99de804 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 9b5c23a..4f7bd89 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 -- cgit v0.10.2 From 498767e336d0a0a3521ae9426177d82453555ab3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 23 Sep 2015 18:03:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h index 4f7bd89..5456c96 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" -- cgit v0.10.2 From 6361167037a65d4a7a93873b2ff20548107ba6f3 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 1f1b34b..8119c40 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 90fe1e2..72220df 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 a3dd421..fe87c2b 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 ff25b3a..d921f1c 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; -- cgit v0.10.2 From 4417d3daf8e45150b9121ee838f215431dc411dd Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 8119c40..9e099c3 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 72220df..5efbaf4 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 fe87c2b..a4d6120 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 d921f1c..5b7d732 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 { -- cgit v0.10.2 From c0cadaa4ab48839459cfe6a31211453dcfd31eee Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 9e099c3..7b76b22 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 5efbaf4..bda9244 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 a4d6120..1ad3d23 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 5b7d732..ef0e0e8 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 { -- cgit v0.10.2 From ef2b784c3006575fb6ffd6faed41c0f2d09abfb4 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 7b76b22..d2678a3 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 bda9244..47e04c2 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 1ad3d23..5d93c7f 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 ef0e0e8..b6fdb8a 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; -- cgit v0.10.2 From 85e57567f2ae6ff89648f7073d1b74dcc5620dc9 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d2678a3..d953ffe 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 47e04c2..b24b9a9 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 5d93c7f..d908fc8 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 b6fdb8a..db87811 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; -- cgit v0.10.2 From 645db60e47bbc26aef84e0110544ff34b7ecf454 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d953ffe..71f996c 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 d908fc8..911c922 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 db87811..6094305 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; -- cgit v0.10.2 From 5cd6363385d0fe1669b4bf0906939b08e77b031e Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 71f996c..5bec7f2 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 911c922..de36057 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 6094305..e3b112c 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 -- cgit v0.10.2 From 6a3b94f71829bee2c2467870470e6d528f9ea46d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:14:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5bec7f2..2893776 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 de36057..fe7382e 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 e3b112c..b1de65b 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 { -- cgit v0.10.2 From d5a63a868b264ef7cf8b39394f9ab09391633a50 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 2893776..61161b9 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 fe7382e..bfeb976 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 b1de65b..93e9fbd 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 -- cgit v0.10.2 From 187f1ef192e1d070843fbf9cc2693e66ca3d72b4 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 61161b9..5bb5588 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 bfeb976..bd7c59d 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 93e9fbd..74bfa6d 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) -- cgit v0.10.2 From 7015b5db076a08f90e0e3015ba7708202fb2a916 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5bb5588..62ca83f 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 bd7c59d..9217b18 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 74bfa6d..1dfc673 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; -- cgit v0.10.2 From 03eb7266306659080776907498cbfe96f7771d12 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 62ca83f..519fb16 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 9217b18..46f96c3 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 1dfc673..e87d7cc 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 { -- cgit v0.10.2 From d2bfac009ca2ea75befe5adde9ba8fd46e409c91 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 519fb16..3547750 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 b24b9a9..e844306 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 46f96c3..aa20f43 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 e87d7cc..0a377e1 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 { -- cgit v0.10.2 From b002e20d53c80b4071b267e1be776bfccf9676de Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 3547750..701d317 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 48834c6..c22b35e 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 e844306..af49c91 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 aa20f43..963973b 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 0a377e1..2d6e0ce 100644 --- a/drivers/staging/wilc1000/wilc_wlan_if.h +++ b/drivers/staging/wilc1000/wilc_wlan_if.h @@ -75,10 +75,6 @@ typedef struct { } sdio_cmd53_t; typedef struct { - int (*os_wait)(void *, u32); -} wilc_wlan_os_func_t; - -typedef struct { int io_type; int (*io_init)(void *); void (*io_deinit)(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; -- cgit v0.10.2 From 1fea593f645c6375e24a74bef5f36f268679f8d2 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 24 Sep 2015 18:15:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 963973b..54d0d71 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 -- cgit v0.10.2 From 5cfe8c144524f7e1688b41c5dab46722be4a912b Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Fri, 25 Sep 2015 00:45:15 -0700 Subject: wilc1000 : Remove unused macro definitions Remove all unused TCP_*_MASK macro definitions Signed-off-by: Anish Bhatt Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 54d0d71..be5e6f9 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 -- cgit v0.10.2 From ec5c00afc2cab1c0e6692541302bc620437c8441 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:30 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index cbda189..dd36872 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 8333245..377bb10 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); } -- cgit v0.10.2 From bf358040c448af3fc6446bcf0d998d2fd420a7fc Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:31 +0200 Subject: 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 diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index eb4e159..5d99628 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); -- cgit v0.10.2 From 25ef42f3084df7b7511f1a9f72678a95d444f579 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:32 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index dd36872..761c4cb 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; } -- cgit v0.10.2 From 3032ab931bc81d56f6bd9a2a319afc66e4b03923 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:33 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 029ded3..7e0c461 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, " -- cgit v0.10.2 From 9161e9311c29e905c8b1cf9f10f5010239d49975 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:34 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 9bbefaa..9006793 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; } -- cgit v0.10.2 From f13f6981bca3c79ba97c4092ab5ed6aed8b2ce99 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:35 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 1a17e2a..a8a7689 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 761c4cb..c13bd89 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 27449d2..2d4732c 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 377bb10..345a824 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 5d99628..0053b8c 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 299c7d5..e23ad7c 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_ */ -- cgit v0.10.2 From d6f7737d5a576f0625ebb2a5896d1b13e3c1c95c Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:36 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 9006793..61974dd 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; } -- cgit v0.10.2 From a2cfae06acf9b7f142fbde4a5cc94c1423136390 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:37 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 61974dd..54c8c1e 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"); -- cgit v0.10.2 From d747e8ec1c9ce0cc6c4813ca1fce993db4001a38 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:38 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 54c8c1e..3c731da 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 @@ -137,36 +139,6 @@ 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 * @reg: register address @@ -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; -- cgit v0.10.2 From f1b9a84382045b693b28d7dce1b2af45b435bbe9 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:39 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 3c731da..a9da92f 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); -- cgit v0.10.2 From c31d9d12ef5b6937d8399fa9ede2bb11dc225363 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:40 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index e334206..0e54830 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, -- cgit v0.10.2 From 1ea7e502c425605a7ae5417085f21e8a2b09297c Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:41 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index a9da92f..315abec 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); } -- cgit v0.10.2 From cc8d9935134c0473ae536383586ec7b7becdd82d Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:42 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 315abec..01ea91b 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); -- cgit v0.10.2 From 26370228875b823b9a90562619c509461f9b91ae Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:43 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 01ea91b..7722212 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; } /** -- cgit v0.10.2 From c81c9c3e0fd5170e7bede7d06202062338644e93 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:44 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 7722212..fcd7559 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, -- cgit v0.10.2 From 71457d482751a38e78da32fde80e87b6f670c389 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:45 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index a8a7689..23c3f6e 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 c13bd89..f0d9a43 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 2d4732c..0d7425b 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 4481a0b..1bb70b7 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 0053b8c..4dfa001 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 e23ad7c..3c6fb19 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 *); -- cgit v0.10.2 From ccfbaee033abff6f4467c9874eb7b1b48aced739 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:46 +0200 Subject: 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 diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 4dfa001..ee6deb8 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); -- cgit v0.10.2 From 8e4a0ef17fc8bf4503fb77f059d580a03e67b5f1 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:47 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 0d7425b..88221f0 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; -- cgit v0.10.2 From 9801345cd8edc2082eefed71cbd07ce2c4c51ea1 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:48 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 88221f0..c9b62c3 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); -- cgit v0.10.2 From d801887248312f4279913963f501fd94670256ad Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:49 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index c9b62c3..30a2894 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", -- cgit v0.10.2 From 19a1143fa4f0a144ee9891f2d2badef2ee74a123 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:50 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 30a2894..73a133d 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", -- cgit v0.10.2 From b981abbb56ed57b2eda394955de99cbe7ca21fef Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:51 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 73a133d..a579c5b 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; } /** -- cgit v0.10.2 From 31e91e0f40547816f9256d5865d39d504706ad06 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:52 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index a579c5b..59e1294 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) -- cgit v0.10.2 From fb0056a8aef0561727602c08951e9b4fd79a0e5f Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:53 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 59e1294..ee02273 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); -- cgit v0.10.2 From e569da2662505961499a4caf3dce07fe6492ceea Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:54 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index ee02273..dff8f74 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; -- cgit v0.10.2 From 35c33721387afe2adda91936f163bb31ba3f0adf Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:55 +0200 Subject: staging: most: fix style problems This patch simply corrects style violations. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index dff8f74..18c346a 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; -- cgit v0.10.2 From 48ab5a339de2b1cd006b7783d1555e4711bf77e5 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:56 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index 18c346a..df14ce5 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)); -- cgit v0.10.2 From aac997dfdd58eec1add02dae09030caeddc1abe6 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:57 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 23c3f6e..930ada0 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 ee6deb8..0045c10 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 3c6fb19..9bd4c77 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, -- cgit v0.10.2 From 5e8aa94e97790b4092f6694ab7f381e6791d3245 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 28 Sep 2015 17:18:58 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index df14ce5..f08545c 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; -- cgit v0.10.2 From db0700a18d7d8832e3f5f5c3a55f197258e257e5 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Thu, 17 Sep 2015 17:19:15 +0100 Subject: 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 diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 387fac1..e3b9957 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 -- cgit v0.10.2 From d35d893965a6d7efe995d7f8d66b2427c14bbc36 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Thu, 17 Sep 2015 17:19:16 +0100 Subject: 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 diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index e3b9957..7118117 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include -- cgit v0.10.2 From 9b34845ee3620ddf1329932edde00bd5b4b9d466 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Thu, 17 Sep 2015 17:19:17 +0100 Subject: 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 diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 7118117..aae9481 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; -- cgit v0.10.2 From 2750914363bff601fc812f8cb0ef56ffc8b0b27b Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:46 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 28a5d3a..097c3d5 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 -- cgit v0.10.2 From 251a16ab67906c29cbc0b7aebc85fc0209f6770f Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:47 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 097c3d5..76a1b93 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; -- cgit v0.10.2 From a871773f23fb18f455e0a44717a8d091874aa1ba Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:48 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 76a1b93..66081ff 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 * -- cgit v0.10.2 From a3ed91f8757a6d2e6f8c6f61aa08761831e33feb Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:49 +0100 Subject: staging: comedi: comedidev.h: document struct comedi_driver Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 66081ff..782d1c5 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; }; -- cgit v0.10.2 From 9ac5b44fbed08758d4d09bf309700a46cef28035 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:50 +0100 Subject: staging: comedi: comedidev.h: document struct comedi_device Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 782d1c5..6a30af2 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; -- cgit v0.10.2 From 0f952fa843397f9a08b937caf8fcc8126813d492 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:51 +0100 Subject: staging: comedi: comedidev.h: document struct comedi_subdevice Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 6a30af2..ccd761b 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; -- cgit v0.10.2 From 11a10830b6e1ed001e0d71594beb5eedc714e202 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:52 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index ccd761b..cfb7d52 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; -- cgit v0.10.2 From 5459bc1281e628e6f57ee16c69eaf8a9622912e8 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:53 +0100 Subject: staging: comedi: comedidev.h: document struct comedi_lrange Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index cfb7d52..195fa57 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]; -- cgit v0.10.2 From 9f2f5d34e136741fb36fd33c3a6ffbf6c2f190da Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:54 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 195fa57..9bec639 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: * -- cgit v0.10.2 From 8f78264cdd6caf0073f5fb09dce49f4c598927b9 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:55 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 9bec639..600df74 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) -- cgit v0.10.2 From 42e55839943a8303d6dd86814b8989d5add42cca Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 21 Sep 2015 18:52:56 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 600df74..6062493 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; -- cgit v0.10.2 From 67ecc3ddd3acb9095b171211b5516478c8b57764 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Tue, 22 Sep 2015 18:02:38 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index 19e7b22..63553d9 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) -- cgit v0.10.2 From c240e20c73b2d3d4f27b9155bf4897db40af9b1e Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Tue, 22 Sep 2015 18:02:39 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index 63553d9..d45a4b6 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) { -- cgit v0.10.2 From a3e399422f8c92b38ed2f95e56f0fa4c2eaecf5f Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 23 Sep 2015 16:33:27 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 47d1648..ef4b58b 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) { -- cgit v0.10.2 From 77d010ee4eda11ec21828d834ac190b127ede9b8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 23 Sep 2015 10:43:36 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rti800.c b/drivers/staging/comedi/drivers/rti800.c index 340ac77..528e069 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 -- cgit v0.10.2 From 5e2ec8f9f311caf006a077aea5e20f6608540b8b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 23 Sep 2015 10:43:37 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rti800.c b/drivers/staging/comedi/drivers/rti800.c index 528e069..cd61d26 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); -- cgit v0.10.2 From 7a064fd13f44eb1acf2d525765fab55c7a3c3bf1 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 23 Sep 2015 19:35:56 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_pci.c b/drivers/staging/comedi/comedi_pci.c index 027f0f4..0601049 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. 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. * - * Typically called from the pci_driver (*remove) function. + * 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 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. * - * 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. + * 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) -- cgit v0.10.2 From 267d2e0741f3e90d94dd1b69faa6a195d64484bf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:01 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 4c13f5e..9485e84 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) */ -- cgit v0.10.2 From c3aea01259655b6dcf0e9665416d254177fe222b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 9485e84..ea594e6 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 */ -- cgit v0.10.2 From 120bdac7376a36418eb1d55e0161dc0e660a45c3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:03 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index ea594e6..49cbf48 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); -- cgit v0.10.2 From fd62ef005839d8f82e46014cec6074aab2733abf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:04 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 49cbf48..f93a6e3 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; -- cgit v0.10.2 From e7211492e36145b2a39e20354bb615b6b196d25c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:05 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index f93a6e3..b4d8f59 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) { -- cgit v0.10.2 From 4ddf02bfd89e43dec940fa3f10c309f69888eda2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:06 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index b4d8f59..02dcb22 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; } -- cgit v0.10.2 From 78c1652c7eeac2dff6961678e60c3d792cbe83b5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:07 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 02dcb22..5fe92c4 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); -- cgit v0.10.2 From 8e0768b184f361a30c640b7571d602f408744c13 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:08 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 5fe92c4..e02ec51 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; - - /* VERIFY: comedi range and offset conversions */ + unsigned int val = data[i]; - 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) -- cgit v0.10.2 From 152eb6cc37c32aa1717e72a687979d8ed8e8b5fa Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:09 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index e02ec51..9d978b9 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; -- cgit v0.10.2 From 640da603179c425c23f1df95f346ae132f52ea98 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:10 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index 9d978b9..e23a7b9 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); -- cgit v0.10.2 From da6877732d4d6f7264a6e719ddf50852bd33137a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:11 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index e23a7b9..96c4193 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) -- cgit v0.10.2 From bc86e82d346320d036961da5a2f35a2cbc7e00cf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 24 Sep 2015 17:52:12 -0700 Subject: 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 diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index 682987e..a5f2a3e 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 96c4193..68ac02b 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); -- cgit v0.10.2 From 6bd5e8e0a2cc6bda6ed968a1a9385bc795c96e53 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:22 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 52e1e27..63bb467 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; } -- cgit v0.10.2 From 6b2aaeaed490172390314ab41860c2911a711c51 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:23 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 63bb467..fe01a90 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); -- cgit v0.10.2 From b8d0dc3c272a051e4892e10a8a8158d5aaf65850 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:24 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index fe01a90..b4bc44c 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); -- cgit v0.10.2 From 529c66c1f11805117498dffd2cad758a8c2b5ace Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:25 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index b4bc44c..c5c9f2c 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); -- cgit v0.10.2 From 4ab2a8feae0ac4a473805881c75f9b99ef907c08 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:26 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index c5c9f2c..02609a4 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); -- cgit v0.10.2 From 414f401f60e0b11f2fd81884125d5ca7e63a04ff Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:27 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 02609a4..b755881 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); -- cgit v0.10.2 From 87e01f225000cd7a8a23d2d2132300123e304b5c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:28 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index b755881..4fb280c 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); -- cgit v0.10.2 From 2940405b2bc47adcf8d4490f2ab7747d51014b09 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:29 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 4fb280c..7138f32 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); -- cgit v0.10.2 From a2743b2cd662ff4f621ef2ab6693b90aa19b905d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:09:30 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 7138f32..8a51d5f 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); } -- cgit v0.10.2 From 09c26de711311ed80c829f8e2c9b06f05b7657c3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:48 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 8a51d5f..df21045 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, -- cgit v0.10.2 From 27d673b0bc5bcd4c8e26ab81434af805e7650e02 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:49 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index df21045..7d9a233 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, -- cgit v0.10.2 From 27cbba60e045d3e71e726d6f0781ed3ec2b2ce5c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:50 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 7d9a233..3862ebf 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, -- cgit v0.10.2 From 33bec9bd9bd68c8c3fd99bbf0fadbe844e173762 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:51 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 3862ebf..4d6cf52 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); -- cgit v0.10.2 From 78e67df3f3d58ae5fced1cee24024d2c337e111b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:52 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 4d6cf52..d625d89 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); -- cgit v0.10.2 From b1665a67be1d39a32c2a023f32c9f74279bd1508 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:53 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index d625d89..20f4daa 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); -- cgit v0.10.2 From 81524bbc17ca25f5865f0e6d615d85ff29b8dfb0 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:54 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 20f4daa..14a3434 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) -- cgit v0.10.2 From 4a85182159f315753ac2cc418bca2530454b1add Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:55 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 14a3434..e9f0e83 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; -- cgit v0.10.2 From 197917a89083acb45144bd6c203dbd2e645dc288 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:56 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index e9f0e83..ae0d00f 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; -- cgit v0.10.2 From d96bde71d87651bd1ad243b50e5c9e6857d611e5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:57 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index ae0d00f..f5dbb49 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); -- cgit v0.10.2 From e482fb542c3bf9059bcc75090b591997701fa1a2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:58 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index f5dbb49..521a911 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"); -- cgit v0.10.2 From 93cc57b5d492559c93674ec713b1f55186728a38 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:12:59 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 521a911..19ba55a 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; -- cgit v0.10.2 From 9d148965ebe43feb7f70f60cadbc80cbc55d17f5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:00 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 19ba55a..122373a 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; -- cgit v0.10.2 From bf1ddf24d8a86c827fd079b164cba4694dcc47fc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:01 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 122373a..e456e18 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; } -- cgit v0.10.2 From 694f9d30f7ec55e3b1f0b3418b4c472e4b7e38f8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:02 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index e456e18..7690577 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); -- cgit v0.10.2 From ebc36ecde07835b2455b4cf7af4139bcad3c4815 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:03 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 7690577..e6680c7 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); -- cgit v0.10.2 From 374a3c5a5d68cd88dd757e815c59edcb3baa56f3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:04 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index e6680c7..3adb406 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; -- cgit v0.10.2 From 98208f968c56e0918babab40f5f7a01645f1d7b6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:05 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 3adb406..7be85fa 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; -- cgit v0.10.2 From 7effc87bcb52d0b72a2763a247568b44025466d4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:06 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 7be85fa..b90bfb8 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); -- cgit v0.10.2 From ac3926553248f23a46147f76d886c9e4a8b34c04 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:07 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index b90bfb8..b3ebd1c 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, -- cgit v0.10.2 From a67c79040e1000250b1389388be8f0b687e0e283 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:08 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index b3ebd1c..cbc93b6 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) -- cgit v0.10.2 From 6f8d4a7db6fecab916e6d81ae84b8a873a3f9047 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:09 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index cbc93b6..99aba40 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); } -- cgit v0.10.2 From c8d841917655f9ac978575b3c0357f1271e93e8c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:10 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 99aba40..91cfbaa 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) && -- cgit v0.10.2 From 0ba8f7c0d4aeabf2c206b2fdfd01cef28265127a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:11 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 91cfbaa..8678f95 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); -- cgit v0.10.2 From ea2d7059f40139b39d87db2ec8a967a2fc410900 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:12 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 8678f95..0e7a768 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) { -- cgit v0.10.2 From 01d5f56691774b08aa04156ec2c57cfb5c34bbae Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:13 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 353e3fe..a853052 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); -- cgit v0.10.2 From 615c8d8d534d58b3f0c35c28b9e6665c8227a54a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:14 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index a853052..d0a740c 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) ? -- cgit v0.10.2 From d4ad6ef1ffecc1bca2d2530703b628b795993ebc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:15 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 3c1b86c..12a791d 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; -- cgit v0.10.2 From 5f3cd6e50399f7709b2c05e02be8fd2087e34531 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:16 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 12a791d..4881f89 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; -- cgit v0.10.2 From a86fc527bf6ef0b7f824f78f48f2a6b96463a45c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:17 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 4881f89..41fc0e2 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; -- cgit v0.10.2 From 5269f55ddf5b9436cac76edc328346a6496a6789 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:18 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 3a15a0f..d227c0d 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; -- cgit v0.10.2 From f957076035ca986a6082f0ee5f45dba69dc99eab Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:19 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index d227c0d..b8b2088 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; -- cgit v0.10.2 From a059e47206d7f7ec62b5eaf82b411faeb8c51d8b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:20 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index b8b2088..0dae2c8 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) -- cgit v0.10.2 From 626687964adaa9c11b1954f79f7908a2aa8621e3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:21 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 0dae2c8..eed3c0b 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"); } -- cgit v0.10.2 From 6edb1763ca7a97148fb8c7ccb8311c442d941f6f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:22 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index eed3c0b..59d5f2a 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; -- cgit v0.10.2 From 6c2d5aebe945d2104885210a834f8eb58cf6371b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:23 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 59d5f2a..9a0a26d 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); } } -- cgit v0.10.2 From 5b9484016734d6f635849e1a90e87038c2d73764 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:24 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 9a0a26d..d06131a 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: -- cgit v0.10.2 From 1d53a5efc83b4459e3bd41164a8d6442fe06c648 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:25 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index d06131a..5681b2c 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) -- cgit v0.10.2 From 87602255efc10e410fb7336388491b132bc6daf5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:26 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 5681b2c..e2f833d9 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; } -- cgit v0.10.2 From e009a8496ef4e24d16f9c978e923f7ad2ea305b9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:27 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 0e7a768..1994d56 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); } -- cgit v0.10.2 From ae1fe0db83e257a4709e36b6d1beeda06c506b56 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:28 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 1994d56..e05264e 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, -- cgit v0.10.2 From 24bee78a3b4ca06891a7873fa4594c377f7beed8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:29 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index e05264e..369344a 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; } -- cgit v0.10.2 From c5d0d6f5dba847478aeaaa059b13f9a5877b41da Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:30 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 369344a..2aadb62 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; -- cgit v0.10.2 From 422c8bef062497377edef137531993776e2f4d52 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:31 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 2aadb62..35ccf4b 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) -- cgit v0.10.2 From 5da06ad85740a3f3f300857da95c6a6de5762449 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:32 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 35ccf4b..fac7c1f 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; -- cgit v0.10.2 From 2b19e2221464100647009144278ce60bb800ab51 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:33 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index fac7c1f..15078bb 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; -- cgit v0.10.2 From dba0e06f823033f8e67d32d945df0e81a8590019 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:34 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 15078bb..1aff44d 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; } -- cgit v0.10.2 From f2f08fc58f18978c88a064089e0f2aba72da06c4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:35 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 1aff44d..225118f 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; -- cgit v0.10.2 From dc888405510dbaf4019cda7a6625f6e0721d113e Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:36 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 225118f..17ec45b 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); -- cgit v0.10.2 From 9a99c563d16314cf9814ca174e1da430c5491fc2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:37 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 17ec45b..54148e8 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) -- cgit v0.10.2 From 79fbe932318e87ca2a51983bbfcca101e260b2c3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:38 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 54148e8..55f8706 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); -- cgit v0.10.2 From 5e177a9f4e3bf5416699dc1231e04599b773713b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:39 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 55f8706..a4fad3f 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; -- cgit v0.10.2 From cfe245bbb8c55b704a3faf7fc01921feb598faf3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:40 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index a4fad3f..fea0dff 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); -- cgit v0.10.2 From c3b481652f60249a847c10c8ce966189d9d71c98 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:41 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index fea0dff..9846f9a 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++; -- cgit v0.10.2 From 7e2d598ac3db434d812956d9d1aca51c51a04e02 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:42 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 9846f9a..08a99e9 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); -- cgit v0.10.2 From 2cfc37586a80abc79ebd0461151eb0209e5ef0c2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:43 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 08a99e9..f7cfd5a 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); -- cgit v0.10.2 From 66a5c29b33bee95f855ce76db23748caca9e63fb Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:44 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index f7cfd5a..51bae3e 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); -- cgit v0.10.2 From ee394a7f86cf3bacb76ebd18fbadd9eedb7672b8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:45 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 51bae3e..a4ca32d 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)) { -- cgit v0.10.2 From 8b5a80317d99e7cff3a8a557e72a6f7b34027fef Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:46 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index a4ca32d..c3ef493 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; -- cgit v0.10.2 From 5341f07018bd124b987bf6eecb77f1a23e7db477 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:47 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index c3ef493..51747a3 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; -- cgit v0.10.2 From 52a740454f0e417d5637b45ecbc46fe3edbf4d51 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:48 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 51747a3..cf6e964 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; -- cgit v0.10.2 From 3e49f3eca24734c064a86575838bd89b3fd7a3a8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:49 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index cf6e964..ec9d2c2 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; -- cgit v0.10.2 From 6ded689376a2a53c6a2a6b7d3f3d584e0e391ef4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:50 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index d0a740c..5e7a551 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; -- cgit v0.10.2 From f588a2254fd4cd9c9ec8cb37712b1a12415f7e6a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:51 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 5e7a551..61e8d17 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: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 61e8d17..67b2f9f 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; -- cgit v0.10.2 From 479e2b8ca88d6a7d2ed4945a2fbe50b061c713dd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:53 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 67b2f9f..2100e43 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)) -- cgit v0.10.2 From 1325ba089c4337ef54970d4252c9c197a2a8f20c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:54 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 2100e43..982101d 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); -- cgit v0.10.2 From 45de428315f590d6a7ec7c7bd9b6a0d2adcaff67 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:55 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 982101d..01e8509 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__); -- cgit v0.10.2 From 410bfd1d8f1c16dafca2182f7391099a077806f5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:56 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 01e8509..e4c3e29 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); -- cgit v0.10.2 From 676b8bae806ebf7e36d640ea64ac06116143fc5b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:57 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index e4c3e29..ff0f99b 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) -- cgit v0.10.2 From af82349ab36835649dcb83287ee155879eb8a3d0 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:58 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index ff0f99b..db3126b 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))); } } -- cgit v0.10.2 From 9d70ed838e28ef42bb2ba03447205335fb22a0c9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:13:59 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index db3126b..2df986e 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, -- cgit v0.10.2 From 77055c56a71bccc57f64444e9b99296588bee0fd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:00 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index 2df986e..dc8419d 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) && -- cgit v0.10.2 From 81f5847da9ce10e656e02bc41341330600a75ec7 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:01 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index e2f833d9..2756ee3 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, -- cgit v0.10.2 From fca7024a047a7e413741d14fc25df6771f873bac Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:02 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 2756ee3..4458613 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) -- cgit v0.10.2 From 6a2c58a2acd529340d2c9ed39720bb6c8024f9cd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:03 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 4458613..0de7eb6 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); } -- cgit v0.10.2 From 43af9f4a4e313f50ef69e1149d99ea84f2d1a8da Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:04 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 0de7eb6..6238ded 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) -- cgit v0.10.2 From e8411ff1d6be1b9400ac737535f77b6e026bbd4c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:05 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 6238ded..436f421 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; -- cgit v0.10.2 From 003486fd3c910f381edd178db05ef925031265a3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:06 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 436f421..6b61f32 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); } -- cgit v0.10.2 From 7b54d76d1c4772ae0e311b98fc535eb71c55e760 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:07 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 6b61f32..0cc4e75 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); } -- cgit v0.10.2 From 0e54431c65c598d33a9762c9464412b877ee8d65 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:08 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index 0cc4e75..d4756d0 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, -- cgit v0.10.2 From 64c6ee9e515b54da7e65ff104c4ec26479c1a050 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:09 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index d4756d0..a9e6fbb 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", -- cgit v0.10.2 From 3ef7f1ee57c3f59f5a004551d1b4974ebaf572fe Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:10 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index ec9d2c2..2a264b7 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, -- cgit v0.10.2 From 2002978d5454b89b1d3c1b533b06d0a18907c8ad Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:11 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 2a264b7..2faa53a 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, -- cgit v0.10.2 From 4dba03a28742cc3b290eb6579fa07d2b0a859f40 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:12 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 2faa53a..0fcaf1b 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); -- cgit v0.10.2 From 288adaf5a6d5b81e2d2f169f94a6c3b5d9e80296 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:13 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 0fcaf1b..887ba04 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; -- cgit v0.10.2 From f4b27f60dc26db5ee34240fd5ecc7f66a93171a6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:14 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c index 529ea54..55ff519 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, }; -- cgit v0.10.2 From 1153037d40327a7bfff655b94122d079d3140c6b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:15 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c index 55ff519..1b83e9b 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, }; -- cgit v0.10.2 From ac9e5e733bbbbe5210ec60647ed09f3575f2d2f3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:16 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 7e56137..e25b089 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, -- cgit v0.10.2 From 042f05ebd5df26be499c970dba4d7a74cad87283 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:14:17 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index e25b089..d53e885 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, -- cgit v0.10.2 From 00496b54d60e996e9c9de6b204ca0830d09c7933 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:42 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index d53e885..c95570b 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, -- cgit v0.10.2 From c630d42a14c7f6f8201fc49c7fb2f43aa25a1cfa Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:43 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index c95570b..4ce772b 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, -- cgit v0.10.2 From bd2213daa0faa238cc1ba2457d49cd33f03d059c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:44 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 4ce772b..82f71f2 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, -- cgit v0.10.2 From d1bae81aff1a555b9931b7a25598905b08446495 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:45 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 82f71f2..30a40a0 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, -- cgit v0.10.2 From d343ed7fa1845843be27d663bacb25a5345a6864 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:46 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 30a40a0..8e3c442 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, -- cgit v0.10.2 From 062cd9b4018c556e847631e98108e1e3af61ec57 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:47 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 8e3c442..76ea367 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, -- cgit v0.10.2 From 17bbe9866d3b96d943ebc98613d1563d8b26032d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:48 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 76ea367..5a9f6b3 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, -- cgit v0.10.2 From 1341a077a24d270b3957538a16ff682497776811 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:49 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 5a9f6b3..2312d01 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, -- cgit v0.10.2 From b821768a77d5b43f05ad7a9316906a1c5a22cad6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:50 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 2312d01..671664c 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, -- cgit v0.10.2 From e792cf88de1942852b3c4de2451f6eadb5d7a99f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:51 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 671664c..c8cbc81 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) -- cgit v0.10.2 From 5be1e1ff7cf649c538c85fd5dbbdce04220dde8b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:52 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index c8cbc81..e5d27ed 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, -- cgit v0.10.2 From e0c2194574d8d174a1122d5daefb5b1ee0de3ffc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:53 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index e5d27ed..09e4a4d 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, -- cgit v0.10.2 From e19794b1ffb9817716d386e59cb565c96ee25c68 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:54 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 09e4a4d..ecd024c 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, -- cgit v0.10.2 From 4d7b35c724c00354a8991daac951c4cfaebc8562 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:55 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index ecd024c..389299c 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, -- cgit v0.10.2 From fbeb359403c4664ab1fefd7a9d0aa2462a4d14e8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:56 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 389299c..e7b270d 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, -- cgit v0.10.2 From 7cd40ae4fe3f2fdc2b74fc760eda3f826087ab98 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:57 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index e7b270d..8cca98a 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, -- cgit v0.10.2 From 99f1859f8da099add02a89a03d37af11dd37c6a5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:58 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 8cca98a..3db1efa 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, }; -- cgit v0.10.2 From d373a0cebb211031899913ce85d31e8c77b2eeb6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:18:59 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 3db1efa..b0766b7 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, -- cgit v0.10.2 From e197821fb587155ccf2b1d4a573486b2605aadd9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:00 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index b0766b7..43de413 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, -- cgit v0.10.2 From 03550af0c4f2660a90ca680f05a4137c262aa1f9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:01 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 43de413..26d5cdc 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, -- cgit v0.10.2 From c9128ca2d67982a4c6b6738fd70b842360600b1b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:02 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 26d5cdc..040b329 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, -- cgit v0.10.2 From a1f1c8b0774f1c0d52c1857272708bf6525ae7a7 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:03 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 040b329..f09e522 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, -- cgit v0.10.2 From 49d650e7ab29252b1bd7f175176ec85e553bdc02 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:04 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index f09e522..1af6b28 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, -- cgit v0.10.2 From cdd105f8bea1a2cf44494b9579919b4680c4c5bd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:05 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 1af6b28..d5c93aa 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, }; -- cgit v0.10.2 From 89528d6c2cdfd5a2b12eebad043cac077d1cc502 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:06 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index d5c93aa..6273928 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, -- cgit v0.10.2 From 06a0b5c234ae11947fee804358ea050fdce057fd Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:07 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 6273928..970e4f6 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, -- cgit v0.10.2 From f2e901857a970abd84ff26f7cc0e5d0f0c54efce Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:08 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 970e4f6..6b6968b 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, -- cgit v0.10.2 From d987a158223554347b545f869c90a06c4f1b1532 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:09 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 6b6968b..4866712 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, }; -- cgit v0.10.2 From ad6a5412b06df81185503cf9184e684a761d4993 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:10 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 4866712..b8f0d4a 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, -- cgit v0.10.2 From 3118323435881185f11df71197e14bd9d486488c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:11 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index b8f0d4a..fa3bee3 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, -- cgit v0.10.2 From f761ee68c90184b600f59d58697a95dac7654f8d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:12 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index fa3bee3..a2d6297 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, -- cgit v0.10.2 From c90ee2fcbe132c449c94278edc450145f998972a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:13 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index a2d6297..0aa9a79 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, -- cgit v0.10.2 From fe13d0105df026e0a954ffcd65aeaa6ec46a5e1f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:14 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 0aa9a79..e9166ed 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, -- cgit v0.10.2 From 11f24fd159fc0d1ce5895116942a496f9212321f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:15 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index e9166ed..763b0db 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, -- cgit v0.10.2 From e7c821650f95afd857017f9bfcfd0f197f48d148 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:16 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 763b0db..8e73aa5 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, -- cgit v0.10.2 From 291bf50d2348c13b7352f87ef5d0e8c866683941 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:17 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 8e73aa5..f11bcc2 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, -- cgit v0.10.2 From a1252b09e9e191d1596a3a9c0dd0d4378dd7d8b6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:18 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index f11bcc2..6bcc636 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, -- cgit v0.10.2 From 440379c54b537021d519ccf3f5aab47d48fe07c6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:19 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c b/drivers/staging/rtl8192e/rtl8192e/rtl_pci.c index 9fcb099..974c1ff 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; } -- cgit v0.10.2 From fcc3df4f44d637f43ec4e04b2f3b8b692e0b3937 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:20 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c index f09560d..e1e4ab6 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); } } } -- cgit v0.10.2 From 79f387e710bcf19974345f26f13d253804684364 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:21 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c index e1e4ab6..137b940 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) -- cgit v0.10.2 From 3831d405e43380bf11920958e9dc44f28cd53ef1 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:22 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c b/drivers/staging/rtl8192e/rtl8192e/rtl_ps.c index 137b940..6fb590d 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) -- cgit v0.10.2 From e830e0dc455625353844154f7d53f391467c16fc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:23 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 6bcc636..4bbb594 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, }; -- cgit v0.10.2 From 84e4dc10939419b967355cbc8630983d0b93bbf0 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:24 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 4bbb594..dd273e6 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, -- cgit v0.10.2 From 0a263fcf0a23b826bd24dd0c500ba3f52728570e Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:25 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index dd273e6..641b069 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, -- cgit v0.10.2 From d4244a0305d7b0ee37d18897204b03453650a7b9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:26 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 1a0c690..f3ac822 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); -- cgit v0.10.2 From 24a29bf819e397969385b6944daba636a06e0d3d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:27 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index f3ac822..6c1061e 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; -- cgit v0.10.2 From 90cc1250046ef2d36947e3be9368db557ad998b3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:28 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 6c1061e..785eff6 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; -- cgit v0.10.2 From a50bc3f6cd47bb42c6cfd66b99050d6a719a7999 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:29 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 785eff6..175b886 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) -- cgit v0.10.2 From 52645a01225f3a8c459d4536da204af3f5a805da Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:30 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 175b886..c71515b 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); } -- cgit v0.10.2 From babb55f9db82896675275f1748f2d684fac13024 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:31 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c71515b..9c69dfa 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"; -- cgit v0.10.2 From f778eca7b98d4c48ce340c98d9193d599c8a0cd5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:32 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 9c69dfa..9ff5887 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; -- cgit v0.10.2 From e63b75613994511e3fd0657de421e1a62b0ca918 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:33 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 9ff5887..aa4f180 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 -- cgit v0.10.2 From 59c997ef14c9246847b0595b7e3742e08f3fb898 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:34 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index aa4f180..3d97b5a 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) { } -- cgit v0.10.2 From 6e2721f9c20dac367ff486ddf3f481268cf54376 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:35 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 3d97b5a..f80c01d 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; } -- cgit v0.10.2 From 0a1161264d20d3c9ed0c54aebfa097107467d3f9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:36 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index f80c01d..160c53f 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); -- cgit v0.10.2 From 6ff542578c0ff760a36f815a6b18e0673da3ab80 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:37 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 160c53f..82ac542 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); -- cgit v0.10.2 From 3f3173c23f4234d5c0c272fad73e0b6c81c541fa Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:38 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 82ac542..a902482 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); -- cgit v0.10.2 From 2c40c66a79d6bbe7151c49983400e1f51c3a9c4e Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:39 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index a902482..dd155a9 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, -- cgit v0.10.2 From 7dfb646871e41206d7cf6083ec8fa84348203346 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:40 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index dd155a9..078b285 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); } -- cgit v0.10.2 From 0b230f92ba93076d7bdcf2ddc1b3b492c28e62f1 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:41 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 078b285..c1b1e0c 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; -- cgit v0.10.2 From 552944e3e4e228c17954a5bfab56c9ea06babc10 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:42 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c1b1e0c..11ca882 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; -- cgit v0.10.2 From 24ec800e8076eb73dde509cc15cb5787a85b3fa8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:43 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 11ca882..26a61f3 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; -- cgit v0.10.2 From 7249a4b5118ab693d6e871fcea8edbdaeddfa3c5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:44 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 26a61f3..2df6344 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; -- cgit v0.10.2 From 2c696148c69bfc220d1debe9cd451d87f45526fa Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:45 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 2df6344..37374d1 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; -- cgit v0.10.2 From dab9eef4f2896a8bac28be9aa5c4344c4ec894a6 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:46 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 37374d1..88c1efc 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; -- cgit v0.10.2 From b6bc343a522a733f7139acdec69648a2f1559f73 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:47 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 88c1efc..5de409b 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); -- cgit v0.10.2 From 832734bf7cee8751faa1be4b76bdcb56240a602f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:48 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 5de409b..380c787 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); -- cgit v0.10.2 From b09dea2f279e131c5790339d24bb7bc34bb846d3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:49 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 380c787..43fcdf7 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; -- cgit v0.10.2 From 8a420d8f55a0146cd9c5767a817bca5ab3d33f31 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:50 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 43fcdf7..f8a6820 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: -- cgit v0.10.2 From f00afec854d473f74ea6d306a83ef7ef1438bdf3 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:51 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index f8a6820..c9b28df 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: -- cgit v0.10.2 From c70d11cdcead2578b55d6c7bbf59b2b2e333edb1 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:52 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c9b28df..4c3b251 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); -- cgit v0.10.2 From 26210305ab8ecc1233d09b01d3491d347d0763a2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:53 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 4c3b251..0343109 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); -- cgit v0.10.2 From 7dd6581129d281a7e5e3d04c57a0c189a4099c90 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:54 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 0343109..5a1cf17 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); -- cgit v0.10.2 From 53f1c5b19c0316fdaac1142bd81d993ad0bd7113 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:55 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 5a1cf17..efd86da 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); -- cgit v0.10.2 From e1f59c71b48581e9b584e2078279d1cecb4ce8ba Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:56 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index efd86da..6f59eb7 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); -- cgit v0.10.2 From 5578a5660ba805e9be482855b8f48b02f6f9a290 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:57 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 6f59eb7..c321bf3 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; -- cgit v0.10.2 From 09de06c9e9d4370a39b5f1a177b2d32a9fd74f92 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:58 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c321bf3..0ab2d2b 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) -- cgit v0.10.2 From 7b3625cde60f762abbfa22cf8c655389ba00356b Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:19:59 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 0ab2d2b..278357c 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); -- cgit v0.10.2 From 1078599cbf68219d8e893644dff4d7fd67ab9de5 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:00 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 278357c..35ff1ab 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); } -- cgit v0.10.2 From 199ab04fb1b0e0aaa9c4ba9cd90d5d4ef672df39 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:01 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 35ff1ab..2962639 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; -- cgit v0.10.2 From 88a4b242ed1760c957e43a3f22a95398e304d0e4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:02 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 2962639..33ee1a2 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; -- cgit v0.10.2 From 8c0510e7399ac6b07e6b82f789d68233c20cc9bc Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:03 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 33ee1a2..8dc73f1 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; -- cgit v0.10.2 From 500344fdc257b8563bb35e4d7db170b0a8c30895 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:04 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 8dc73f1..eeb8594 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); -- cgit v0.10.2 From 22b5e8cd712b08a9ce9e9b1839c8bd0de593cae9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:05 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index eeb8594..92f3f70 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: -- cgit v0.10.2 From 07aec67071dcb1f835419ed6f1af4c1a4ed985a8 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:06 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 92f3f70..3576ae1 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: -- cgit v0.10.2 From 1b97c2206474ca5dd7dad7cf40ea259d3d7489c2 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:07 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 3576ae1..cac70c2 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); -- cgit v0.10.2 From 721d2f8dfeebf07803bd3e7cb299967b7dabee1c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:08 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index cac70c2..5f46626 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) -- cgit v0.10.2 From a19b5d7207f7baa09560d01a16c5790ad70c6d76 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:20:09 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 5f46626..ec5c12d 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); } -- cgit v0.10.2 From 264045986f689af5abd08be6a0a124affc40fc90 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:10 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index ec5c12d..77a2360 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 -- cgit v0.10.2 From ea3ab341a205097c88ca0327e6b506f2f508c18c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:11 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 77a2360..d0e59ee 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); -- cgit v0.10.2 From 57aac1ce29bcc37ed8eece017272bfd2bb321f45 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:12 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 641b069..240d765 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, -- cgit v0.10.2 From 3270b5074fd23101d6983cd52dd661e5e916e470 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:13 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 41fc0e2..78fb9e9 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; } -- cgit v0.10.2 From 713519c710749d72bfad844579e10017af77bf84 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 10:24:14 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index d0e59ee..727c565 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) -- cgit v0.10.2 From 49c3203707c9feebee26fec02f67b0431ac0a72a Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Sun, 20 Sep 2015 16:07:15 +0200 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/rc.c b/drivers/staging/rdma/hfi1/rc.c index 632dd5b..1e9caeb 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 */ -- cgit v0.10.2 From 60f57ec2da398a7c1f56dc2ac690ef75b17d2399 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Mon, 21 Sep 2015 04:43:05 -0700 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/sdma.c b/drivers/staging/rdma/hfi1/sdma.c index aecd1a7..9c02a3d 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); -- cgit v0.10.2 From 96a660d70699fc5decb381b15fd0a62a27001fe4 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Mon, 21 Sep 2015 22:18:14 +0800 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/device.c b/drivers/staging/rdma/hfi1/device.c index bc26a53..58472e5 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; } -- cgit v0.10.2 From b91cc5738f89ee0d551a1cd90d794c537b8f1dea Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Mon, 21 Sep 2015 23:39:08 +0800 Subject: 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 diff --git a/drivers/staging/rdma/amso1100/c2_mq.c b/drivers/staging/rdma/amso1100/c2_mq.c index 0cddc49..7827fb8 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 72d3850..9a77221 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 9c02a3d..63ab721 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 41bb59e..a43fccd 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 -- cgit v0.10.2 From b2d023af6995b949c3661abed48c5e8266b1170b Mon Sep 17 00:00:00 2001 From: Ira Weiny Date: Mon, 28 Sep 2015 14:05:48 -0400 Subject: 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 diff --git a/drivers/staging/rdma/Kconfig b/drivers/staging/rdma/Kconfig index d7f6235..ba87650 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 -- cgit v0.10.2 From 4346f9a01fe0846d1399292b53b24f6fde5bd2d9 Mon Sep 17 00:00:00 2001 From: Andrzej Hajda Date: Mon, 21 Sep 2015 15:33:58 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index c504d15..f3eb39f 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; -- cgit v0.10.2 From 92bb833e39feea79827946e1ecbaa7e6dee73fbf Mon Sep 17 00:00:00 2001 From: Andrzej Hajda Date: Mon, 21 Sep 2015 15:33:37 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/xattr.c b/drivers/staging/lustre/lustre/llite/xattr.c index 362a87d..dddc1ff 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 -- cgit v0.10.2 From 40396eb900aae70a79e966ff91b0783662250d07 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 07:44:03 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h b/drivers/staging/lustre/lustre/include/lustre_dlm_flags.h index d27bdae0..0d3ed87 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) -- cgit v0.10.2 From 9dc3840b4efb6ad47357c3088a91d0088e306514 Mon Sep 17 00:00:00 2001 From: Anton Gerasimov Date: Thu, 24 Sep 2015 00:02:28 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 9a10baf..2b88aef 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 d37cdd5..40696f3 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 34c7e28..4e35b14 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 9985fb6..d12e95b 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) { -- cgit v0.10.2 From 4e58248728ded9d2d088b355cf74f33eb6a4746c Mon Sep 17 00:00:00 2001 From: Anton Gerasimov Date: Thu, 24 Sep 2015 00:04:04 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_null.c b/drivers/staging/lustre/lustre/ptlrpc/sec_null.c index ce1c563d..0f3c693 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 b2313af..40f720c 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' -- cgit v0.10.2 From 2adf5e8775374288ed5b5b4966dc92418d3868f8 Mon Sep 17 00:00:00 2001 From: Anton Gerasimov Date: Thu, 24 Sep 2015 00:08:17 +0300 Subject: staging: lustre: make non-exported functions static Declare non-exported functions as static. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index f138061..dd31215 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); -- cgit v0.10.2 From 7fb7027c44647338962d7aa35ddeedaaa6a9f7d6 Mon Sep 17 00:00:00 2001 From: Jayavant Kenjalkar Date: Sun, 27 Sep 2015 11:15:21 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/niobuf.c b/drivers/staging/lustre/lustre/ptlrpc/niobuf.c index 22194c0..bfc56cd 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; -- cgit v0.10.2 From 9f088dba3cc267ea11ec0da318cd0175575b5f9b Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:01 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h index 22d54b2..b61d504 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); } -- cgit v0.10.2 From 46c360f9d38e0b26247a3b723545790853c6747b Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:02 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index 04dcb51..90fbaa2 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 37bf331..fdd0a58 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 75a8ea2..cf264de 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 b6f6d4c..cb2811b 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 fa24e9e..be058c2 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); -- cgit v0.10.2 From 45efd655b1ed8286e9fe03e63e674cfb4f5b671e Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:03 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index bafef4e..0dbac3f 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 ce6fa55..7308cda 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 31ed248..5627c0f 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 aa68608..8dc3de1 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 906503b..d51311c 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 32b40ea..b86a47c 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 27bd170..81304e456 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 be058c2..67bf0bd 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)) -- cgit v0.10.2 From 65f28840e4c653b7d78feabcb65280c09d3d0d23 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:04 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h index a3aa644..a1787bb 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 87d8449..64a136c 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; -- cgit v0.10.2 From 86655400c6e74751a73be82ea40d5ae6979c3225 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:05 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index f3eb39f..2a16046 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", -- cgit v0.10.2 From bf6d21539d58f64812d71c956ecec3d67650b2ee Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:06 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 92b24be..796a997 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 cd340fc..12eb5ac 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 b5ee9bd..f6d61e5 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), -- cgit v0.10.2 From 98f2d643e3597bf42fa6c2c2fa12b99fe4afb3bc Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:07 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index b86a47c..3bbc806 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; } -- cgit v0.10.2 From c8ff18106cf12af944c0c33ada5aa9a0a0e54048 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:08 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index c9c21d2..44adee1 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 */ -- cgit v0.10.2 From a11ef8ca94cccca98e0d7f23d5145cad71dd62f0 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:09 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/lib-eq.c b/drivers/staging/lustre/lnet/lnet/lib-eq.c index f19ce9a..8b843c5 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; } -- cgit v0.10.2 From 5e50efea6a4fe6c92dce3022878f91cf17bdceb8 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:10 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c index 7fab03b..c368cf5 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 */ -- cgit v0.10.2 From e8453c24d7f610ec67cc1bbbcf5c8b6880645672 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:11 -0400 Subject: 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 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 0fc490b..b0af909 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; } -- cgit v0.10.2 From 70513c5d17b9812cc218e8b4c7826ebb5f375d9a Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:12 -0400 Subject: 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 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 b0af909..f193f8b 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 a1a4e08..bf29683 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 257de35..c448037 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); -- cgit v0.10.2 From 473c4e01029f6692be7ddc0e7f9b75dc933c7057 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:13 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c index faa70f0..c2cc4e4 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; -- cgit v0.10.2 From 1f4fc343c008981d3a91351c030e2c29f5cd1b1c Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:14 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/router.c b/drivers/staging/lustre/lnet/lnet/router.c index 75ff382..2cdda3f 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 4cf7af2..a0de99f 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 35a94a8..97d79da 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); -- cgit v0.10.2 From 23d9a0467c6ce436e4f40e44e81005df6bdd9d2d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:15 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 213666b..1b87a6a 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; -- cgit v0.10.2 From 1f8c37a4e29bb4794950228d2d9571029f277d7b Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:16 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/selftest/ping_test.c b/drivers/staging/lustre/lnet/selftest/ping_test.c index 1dab998..d426536 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; } -- cgit v0.10.2 From 8f83409cf2382c968f96877368cd5b542b92af1d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:17 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 796a997..1ac08e1 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 c234acb..1c9d67f 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); -- cgit v0.10.2 From 74e489aa9cce1ec8f8a44ecc1651cf06b61db204 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:18 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index c8b89a3..9960638 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 8d2a523..21da17d 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 c8ef9e5..53f6b62 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 c52ceef..b6f38cb 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; } -- cgit v0.10.2 From 0ac0478b65de1e5b8b62f608bdf1d8ba631acc4d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:19 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 9960638..cd6244e 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 b6f38cb..3fc49ee 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 2b88aef..3b2745f 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); } -- cgit v0.10.2 From 05406826aafb658d51ba7ac2fc6870992776ef6d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:20 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c index 427a34b..08d3202 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"); -- cgit v0.10.2 From 74ad578f19959fc7af219752760c1dc0b2f78ced Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:21 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index 22f4cd0..904d158 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 a0fcbc3..b349847 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 6d87731..354c810 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; -- cgit v0.10.2 From ec0067d1beeee2ca45e865d608101148b5e739d4 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:22 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/lnet/lib-types.h b/drivers/staging/lustre/include/linux/lnet/lib-types.h index 81a63db..d792c4a 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 9c576ce..b09a438 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 433faae..6badfec 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 2cdda3f..0357b05 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 a9f4cbf..396c7c4 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; -- cgit v0.10.2 From d9f79e6bf02c109f117132163239bfffa6475ccb Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:23 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c index de11f1b..0605c65 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 1a7870e..8173966 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 bf29683..b70680b 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 5c624e1..024aaee 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 cdce2dd..acd1312 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 c448037..177beaf 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 6ae1331..9fc3ce3 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 160d68c..4832253 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 6133b54..ebd5f79 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 2a8803d..03e2ee2 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; -- cgit v0.10.2 From 80018a9edbc3180ae31a7197f9dacab975a7f5e2 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:24 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c index 2ee3e8b..56dab9d 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; -- cgit v0.10.2 From 589bfa37692c61e6f07ed0d65fbfbd478694bc22 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:25 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/libcfs/debug.c b/drivers/staging/lustre/lustre/libcfs/debug.c index e93f556..ae325f7 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); -- cgit v0.10.2 From 8d7eed54a2391db16f184b18cde5c1824775ebdc Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:26 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index 8dc3de1..524fcc9 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) { -- cgit v0.10.2 From 14e3f92a4c46eedfe745b0dec42a4dcb1b16a989 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:27 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index 524fcc9..a0ae892 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 d32ae761..fd6fc10 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 78d9226..8cad470 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)); -- cgit v0.10.2 From 986ef135c2afce959971b0086fc04e0f9f654120 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:28 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index 5189fad..e02a39a 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 cd6244e..3ae97e2 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 b9821db..5ee6641 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 e7f2f33..7769ab2 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); } -- cgit v0.10.2 From 8cc980713ec9e6847896891c54562ad815c33424 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:29 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 707ff69..871185c 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 cdad608..c3ad1da 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 68fcac1..a74e2f0 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: -- cgit v0.10.2 From 219e6de627243c8dbc701eaafe1c30c481d1f82c Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:30 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 3ae97e2..079db52 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 44adee1..0db7810 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 20da064..ebd9f76 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 5e9c629..47051c0 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 9f53627..5491a39 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 e1830fe..d013d4b 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 53f6b62..afd869b 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 3fc49ee..9ff1a22 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 3b2745f..6c41104 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 bfc56cd..8db62d0 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 dd31215..9402fb9 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 40de622..28f57d7 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)); - } - - do_gettimeofday(&work_end); - timediff = cfs_timeval_sub(&work_end, &work_start, NULL); + "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); + } + + 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; } -- cgit v0.10.2 From 380f01a18cb9ee12908583b2b30382c6d2e142d2 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:31 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 0db7810..e929c93 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 0dbac3f..874d1ad 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 6cd4cfa..16dfa8e 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 4e35b14..059ad96b 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 28f57d7..27d1030 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; - } - } } /** -- cgit v0.10.2 From 806d6514e9ed68ba7e47975feb9deb1f31348a12 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:32 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 874d1ad..c12edc5 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); -- cgit v0.10.2 From 922da0c58e4107fb70364e1032c8243ac8646107 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:33 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/libcfs.h index 259a336..385ced1 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 62ade08..082fe6d 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 12b6af4..8908446 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 a19f579..5e4262a 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 27d1030..6483642 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); -- cgit v0.10.2 From 117e2ce8cf35ce7b16ef39138bbba81a7cc38277 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:34 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_time.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_time.h index 5de6da0..2c7ec2d 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 f193f8b..09c59f0 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; -- cgit v0.10.2 From fb209cbddd5fdd8e0916f5c2650cc778a5ce09e0 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:35 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 7308cda..0bbe9f9 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 594955d..da01ea5 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 3bbc806..a96d2f3 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) -- cgit v0.10.2 From 3aabf997441891a9f4962f3ffa0c22c16aed2da0 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:36 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index e02a39a..c29bfdb 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 c12edc5..24fc5fd 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 da01ea5..8a58b78 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 a96d2f3..d19cbf6 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 81304e456..4feca2c 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 6483642..326f89e 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -1029,51 +1029,6 @@ static void ptlrpc_server_finish_active_request( } /** - * 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. -- cgit v0.10.2 From 93d3a405a168fba4450bdda793149e3cd4174736 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:37 -0400 Subject: 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 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 09c59f0..ed8764b 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 47051c0..79e4fd4 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 16dfa8e..4706174 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 56dab9d..c18b71c 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, -- cgit v0.10.2 From c860a3bd565702e45690060d047e841a7f167771 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:38 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 1b87a6a..742cb59 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 6c41104..d66a7b8 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, -- cgit v0.10.2 From fdeccfdc37eff2125e926d4c78b02165711393ce Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:39 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 0bbe9f9..08ec2d0 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 8a58b78..44cb5bc 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); -- cgit v0.10.2 From 8c85bd76d3faad3ed6a3abefb636bc88287765d5 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:40 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_log.h b/drivers/staging/lustre/lustre/include/lustre_log.h index 2187fb6..958d012 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 8cad470..a941518 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 48dbbcf..3984445 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 c99e658..5339986 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 81ab27e..2b4a70b 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 1c701e0..fbb9ce8 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); -- cgit v0.10.2 From 9184bd51c9a981410533f31a2516a8452eb0da69 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:41 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/fid/lproc_fid.c b/drivers/staging/lustre/lustre/fid/lproc_fid.c index cc2201c..bf12723 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 5eeb36d..4469174 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 844576b..fbb232d 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 1e450bf..3fd91bc 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 da82210..603f56e 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 abae31b..0000000 --- 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 c7c8fe4..abc9345 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 c1f08de..ff7230e 100644 --- a/drivers/staging/lustre/lustre/include/lustre_fld.h +++ b/drivers/staging/lustre/lustre/include/lustre_fld.h @@ -71,10 +71,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. */ struct obd_export *lsf_control_exp; diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 24fc5fd..31cb97c 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 badd227..584c4e6 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 d0f70b4..16174ae 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 6b645a1..0000000 --- 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); -- cgit v0.10.2 From 9a6198c74d224c3ebcc4fb3d45c18d6310bc86e3 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:42 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 742cb59..fdb0f4e 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 21da17d..ee53d86 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); \ -- cgit v0.10.2 From cf16e3718c3648c8ce8912e27b6c7893346ad49f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:43 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index fdb0f4e..825b83f 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 ee53d86..3fa5ff3 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, -- cgit v0.10.2 From dcaf8882218eb01c3bfdc048a1b98097a111ebf1 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:44 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 825b83f..4332c12 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 3fa5ff3..02dcc93 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; -- cgit v0.10.2 From e3598094361898873d469c6f25fe9365ca9a8fc3 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:45 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 4332c12..5262b4f 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 02dcc93..da4afe0 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) { -- cgit v0.10.2 From ef2e0f55ec2e893748f024e0873a58db9d1d10de Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sun, 27 Sep 2015 16:45:46 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index 90fbaa2..b2366ca 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 c5c3a8d..67d41bb 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 d20e199..057fa19 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 11bcdb9..0000000 --- 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 f0cce41..a16eb8b 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 31cb97c..e8317b8 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 08ec2d0..8bfdc97 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 9053f81..f049d55 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 2cbc468..9ac29e7 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 5627c0f..51b6bc5 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 24590ae..0000000 --- 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 fdd0a58..dcf7c6b 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 a0ae892..b6234b2 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 2635678..2e663ea 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 39022ea..dc33055 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 3e28255..8c1bfd2 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 8f4cca1..c860281 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 a0de99f..b35e02a 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 dddc1ff..e051dcc 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 cebbacf..8f0ffa4 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); - 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); + rc = md_get_remote_perm(tgt->ltd_exp, fid, suppgid, request); 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 b5b2580..489227ae 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 d51311c..5c69ce9 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 416e42e..104c92a 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 4d14943..29b46f7 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 1a850ea..ce0bcdf 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 ebd9f76..5c34130 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 79e4fd4..c87c7d8 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 fd6fc10..8726176 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 16174ae..acc6857 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 99af017..0000000 --- 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 39bf734..058b859d 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 44cb5bc..059611b 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 4feca2c..ec9ccff 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 67bf0bd..8d7eab0 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 5491a39..225e5ed 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); } -- cgit v0.10.2 From a6c8746d54047640e71572d3f48f0bf5708bc92f Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sun, 27 Sep 2015 16:45:47 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 057fa19..3ac1de3 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)); -- cgit v0.10.2 From d2c3506be646a495a4e3f1d1ce9540916703c244 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Thu, 24 Sep 2015 11:00:40 -0400 Subject: 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 diff --git a/drivers/staging/unisys/Kconfig b/drivers/staging/unisys/Kconfig index ca850a8..5cbb791 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 d071094..79c9036 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 a559812..14e656f 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 0000000..241d803 --- /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 0000000..a8a8e0e --- /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 0000000..41a7bca --- /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"); -- cgit v0.10.2 From 3f937918b73b2a56ef238a2dcc0bbd97d48490b9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 22 Sep 2015 16:24:58 +0200 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h index b240a79..39cd8e1 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) -- cgit v0.10.2 From e98631d83c84adfee9d33f04808a6e0eb2fa0345 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 22 Sep 2015 02:39:36 +0200 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 303d9702..e17bde7 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; -- cgit v0.10.2 From 27254ec26c6395ca0cfabde8e67b352a4ad7a3bf Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 10:52:16 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750_help.h b/drivers/staging/sm750fb/sm750_help.h index 8dc6bd2..e7d74e6 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 */ -- cgit v0.10.2 From 67088d49a1c952c71448e75b6105ad5ce9c04719 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 12:01:16 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 07f8afd..81fe3c3 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 1dd06a2..b623fbf 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 a94a4bb..93dd6c1 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 de30429..48b4944 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" -- cgit v0.10.2 From 4cf26d859aba42f15a372d9f26b51f4a36f03575 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 12:01:17 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 5e6798e..c9adc38 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 48b4944..cdb7161 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); -- cgit v0.10.2 From e967d336ee1a01ced24907ead6cd93dc4f097bed Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 22 Sep 2015 12:01:18 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index 5bc4455..793c092 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 e7d74e6..08dcc69 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) -- cgit v0.10.2 From 174f2642349da542eb27c011e67a147773d8721f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sun, 27 Sep 2015 16:25:43 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index c9adc38..28733db 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) -- cgit v0.10.2 From 4ccb726c728cb414d9abc65a11a6453e75204503 Mon Sep 17 00:00:00 2001 From: Tillmann Heidsieck Date: Wed, 23 Sep 2015 22:07:53 +0200 Subject: 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 diff --git a/drivers/staging/wlan-ng/prism2fw.c b/drivers/staging/wlan-ng/prism2fw.c index fe36613..d357b7e 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; -- cgit v0.10.2 From c739c987c1e19b924b252ebb12ffeac3ef9b1d5c Mon Sep 17 00:00:00 2001 From: Tillmann Heidsieck Date: Wed, 23 Sep 2015 22:07:54 +0200 Subject: 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 diff --git a/drivers/staging/wlan-ng/prism2fw.c b/drivers/staging/wlan-ng/prism2fw.c index d357b7e..f5b9727 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; } -- cgit v0.10.2 From 3ac8480ad61a45c2a9e3ee003d2cf4ce37ef4795 Mon Sep 17 00:00:00 2001 From: Tillmann Heidsieck Date: Wed, 23 Sep 2015 22:07:55 +0200 Subject: 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 diff --git a/drivers/staging/wlan-ng/prism2fw.c b/drivers/staging/wlan-ng/prism2fw.c index f5b9727..8fc80df 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; } /*---------------------------------------------------------------- -- cgit v0.10.2 From 113d6dc18e5e9334493a0f500c01a9e97796cd9b Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:39 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 326bce3..07ebdea 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) -- cgit v0.10.2 From c15158797df6c36780bd07252eb079ff4c9d1706 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:40 +0100 Subject: 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 diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c index af572d7..7246c76 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, -- cgit v0.10.2 From 43c93d9bf5e2b195c38de99024d8d9e545a5aae5 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:41 +0100 Subject: 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 diff --git a/drivers/staging/vt6656/device.h b/drivers/staging/vt6656/device.h index 635d931..dec36f2 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 2ef70e4..14b8ebc 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 0ffbaed..d5912d2 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; -- cgit v0.10.2 From 49a315bf072e7ebe8bdc4a2e11f405c821835e88 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:42 +0100 Subject: 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 diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c index 7246c76..3fc6862 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; -- cgit v0.10.2 From b914b4944902d489226a5b465908403505723b9a Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:43 +0100 Subject: 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 diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c index 3fc6862..01e642d 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 da075f4..efb54f5 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; } -- cgit v0.10.2 From 56b4c049273f3d4ad6d5c71a1569d3fbb4028840 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sun, 27 Sep 2015 09:17:44 +0100 Subject: 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 diff --git a/drivers/staging/vt6656/usbpipe.c b/drivers/staging/vt6656/usbpipe.c index a5912dd..c975c3b 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)) { -- cgit v0.10.2 From 7e4161747bc6e1e40d0a45dc9ad742d66f2a9fb1 Mon Sep 17 00:00:00 2001 From: Sriram Raghunathan Date: Tue, 22 Sep 2015 22:35:51 +0530 Subject: 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 diff --git a/drivers/staging/android/ion/compat_ion.h b/drivers/staging/android/ion/compat_ion.h index c2ad589..9da8f91 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 6e8d839..df35398 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 443db84..b860c5f 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 0b2448c..a3446da 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 52f1cd1..0239883 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 7a7a9a0..ada724a 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 68a14b4..0a8e40f 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 -- cgit v0.10.2 From e8604669069ea8816205fac23037c21452aa328c Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:10:58 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/include/mc-cmd.h b/drivers/staging/fsl-mc/include/mc-cmd.h index 32501e0..af7de6e 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); -- cgit v0.10.2 From 405774356453ac955a9c221690a61cbb2d262c15 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:10:59 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/dpmng.c b/drivers/staging/fsl-mc/bus/dpmng.c index 58328e8..1aeca05 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 b3a60a0..f3718a3 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 1b052b8..4a0996c 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 */ -- cgit v0.10.2 From c4d887219cba8ce78dcc854b1a3afd0b48ade760 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:11:00 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/dpbp.c b/drivers/staging/fsl-mc/bus/dpbp.c index d99ab6d..bdc1aca 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 1fd70a21..efa9bf3 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 5f3c8e7..4a4b575 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); -- cgit v0.10.2 From 7a9a56be67b2ae4c9af943a5696c4fff309cc14f Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:11:01 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/dpmcp-cmd.h b/drivers/staging/fsl-mc/bus/dpmcp-cmd.h index 57f326b..6cc0fed 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 6b9da5b..ce5fd31 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 5e7c219..19dadd8 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 e36235d..376ce80 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; -- cgit v0.10.2 From e1135cb669fabc5c22286faec9d3ca1f2d9594ec Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:11:02 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/include/dpcon-cmd.h b/drivers/staging/fsl-mc/include/dpcon-cmd.h index c878d33..2617024 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 -- cgit v0.10.2 From 1ee695fab32e25ff188c98a145cc93674f594923 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Wed, 23 Sep 2015 16:11:03 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/dprc-cmd.h b/drivers/staging/fsl-mc/bus/dprc-cmd.h index 0920248..6552c20 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 35c06cf..7faf23b4 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 19b26e6..db1b6bf 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 f3718a3..9812af4 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 f1862a7..b0c081f 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 @@ -225,49 +247,56 @@ int dprc_reset_container(struct fsl_mc_io *mc_io, #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,6 +871,7 @@ 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, @@ -741,57 +879,102 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io, 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 c045f49..8aef55c 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; }; -- cgit v0.10.2 From e9bf3f206bd5e61e7908a1e81f0c254bf6c99064 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Thu, 24 Sep 2015 14:26:54 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/dpbp.c b/drivers/staging/fsl-mc/bus/dpbp.c index bdc1aca..f5a2028 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 ce5fd31..4da1648 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 19dadd8..6df351f 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 1aeca05..4a939b4 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 db1b6bf..94181b3 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 4a4b575..507720e 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 4a0996c..81e0f9f 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 b0c081f..adeb8b4 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, -- cgit v0.10.2 From ba72f25b2588e1ac5980c9e1bb343630d6b5b03d Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Fri, 25 Sep 2015 11:21:01 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/dpbp.c b/drivers/staging/fsl-mc/bus/dpbp.c index f5a2028..2d97173 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 4da1648..b0248f5 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 4a939b4..f633fcd 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 7faf23b4..a9ead0d 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 94181b3..381b9a9 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 376ce80..d087b4c 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 9812af4..92e0702 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 5737f59..b58b53f 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 507720e..37ed951 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 81e0f9f..e5cfd01 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 adeb8b4..c3152f6 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 af7de6e..65277e3 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 8aef55c..2c4cc79 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 cb3b5a2..939b7d3 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 fa02ef0..860bf26 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); -- cgit v0.10.2 From a2e681faa50baa078c8d129e929f0e51b7c07877 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:25 +0200 Subject: staging: rtl8192e: rtl_wx: Fix BRACES warning Fix checkpatch BRACES warning. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 240d765..18dc3da 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: -- cgit v0.10.2 From fc00af0cd0313f1446cf4ff9d536a2db216f8fb7 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:26 +0200 Subject: staging: rtl8192e: Fix SUSPECT_CODE_INDENT warnings Fix SUSPECT_CODE_INDENT warnings (indentation). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c b/drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c index c8f25ad..0987365 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 a9e6fbb..00e60b5 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 727c565..2d20af6 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 09f0820..2d56a2e 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 1503cbb..4fcd0b6 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 b992e46..6d5e29e 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; -- cgit v0.10.2 From 4c29207a96885b82175979c723a63de05d5fb2f9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:27 +0200 Subject: staging: rtl8192e: Fix CONSTANT_COMPARISON warnings Remove yoda conditions where pointed by checkpatch. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index dc8419d..e8a890c 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 29dd93a..574129a 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 18dc3da..606dbbe 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 78ede4a..f30d4a6 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 2d56a2e..37343ec 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 4fcd0b6..3bc4223 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 6d5e29e..0755524 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; -- cgit v0.10.2 From ae6d07a5d11a6ee2153521077c4760e22bef886f Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:28 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/dot11d.c b/drivers/staging/rtl8192e/dot11d.c index fcf9b3b..4d8fb41 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 129ebed..2c19054 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 dba4584..34453e3 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 0987365..81b3cf6 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 3e4363f..7873a73 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 9ddabf5..6f5839f 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 2a8b165c..31303a1 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 e8a890c..dad63c2 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 6bd6b3a..6bb5819 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 78fb9e9..dab67c1 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 fa760f7..10aac8c 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 c81832d..d298023 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 6767b59..29cefb5 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 5bd3b35..d96b87d 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 00e60b5..b3a10f9 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 96015d3..9ddfd4e 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 8a1d91e..50c79d3 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 574129a..803c8b0 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 9ef8b36..aa12941 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 887ba04..d4cef20 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 cd948bb..1ddf42a 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 2d20af6..a2aba40 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 097f0dc..756a0dd 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 039ccfd..162e06c 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 8d23aea..d63e8b0 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 1b83e9b..f172f77 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 974c1ff..2ff52e7 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 6246841..73d357d 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 b0268fd..b2b5ada 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 cdc45f7..7625e3f 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 6fb590d..9a4d1bc 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 35fc9e2..a46f4cf 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 606dbbe..984cb9a 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 7712840..7ecf6c5 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 8946664..5002b4d 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 f30d4a6..c04a020 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 51711dc..6eb018f 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 555745b..dd9c0c8 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 fcc8fab..463122d 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 a93348c..2cabf40 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 70879594..2c8a526 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 17c276d..f1c39c3 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 224dc99..a0d5546 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 0755524..58fc70e 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 967ba8b..80f7a09 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. -- cgit v0.10.2 From 68a707e41f624777a5f24ae85de8b2f7a4e74f2e Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:29 +0200 Subject: staging: rtl8192e: Remove _rtl92e_silent_reset_mesh Function is empty. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index d4cef20..2e3c25c 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); -- cgit v0.10.2 From e7ebb316b3dc777175fd53aff7952c3097eb14ff Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:30 +0200 Subject: staging: rtl8192e: Remove _rtl92e_dm_check_pbc_gpio Function is empty. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index a2aba40..716a8c9 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, -- cgit v0.10.2 From fcf481dbbd80e1206804a0fae3fd5c1debebe11c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:31 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index 716a8c9..c5068dd 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; } -- cgit v0.10.2 From 77b6c42e0278decff0c98999fb835f36048415ab Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:32 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c index b3a10f9..0b407fe 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) -- cgit v0.10.2 From 0588da57c4b3afe99a70f5452d5e017e3d5e0d16 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 20 Sep 2015 21:04:33 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index c5068dd..efa57d8 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) -- cgit v0.10.2 From f22c2468b6ff8542453b5d9e7f3b8ddbbb4bcef4 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 22 Sep 2015 23:50:35 +0200 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index dd82018..4258a5e 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: -- cgit v0.10.2 From 3441d08ca20a390ab0484c11bd69f2a75e702774 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 22 Sep 2015 23:50:36 +0200 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c index c3c5828..39325a3 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 6400f75..f8f5eb6 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 { -- cgit v0.10.2 From 3e4e8e025c374959538d37a812a7c20f7aa8a5c1 Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 22 Sep 2015 23:50:37 +0200 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index 4258a5e..e31eae9 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; -- cgit v0.10.2 From f62cd2cd95ef05f125c57d4905deff81a504682e Mon Sep 17 00:00:00 2001 From: Luca Ceresoli Date: Tue, 22 Sep 2015 23:50:38 +0200 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index e31eae9..0270755 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); -- cgit v0.10.2 From 9da4aa48d04bbdbae3c959809e14da2bf0c53f61 Mon Sep 17 00:00:00 2001 From: Jakub Sitnicki Date: Wed, 23 Sep 2015 23:42:26 +0200 Subject: 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 diff --git a/drivers/staging/rtl8188eu/Kconfig b/drivers/staging/rtl8188eu/Kconfig index 5a38b41..94f3879 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--- -- cgit v0.10.2 From 7d76173d40bef0516068dbf38195470abf979c8a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Sun, 27 Sep 2015 21:48:19 +0200 Subject: 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 diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c b/drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c index cd014f7..ecf54ee 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; -- cgit v0.10.2 From dc9db95017d24fd1e2f324b3977077c030d8e830 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:24 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 702671a..5964863 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; -- cgit v0.10.2 From dbb192d151a9ec2d98629b4b42c6b074bdbb4e0c Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:29 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 5964863..c0f6d7c 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) { -- cgit v0.10.2 From b117d1a0da3f1b090dcd354eaafd5a5dfb8378c7 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:34 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index c0f6d7c..a1548d0 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); -- cgit v0.10.2 From 0bde11cb4541e50a44392b0f0eccc679093343a7 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:38 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index a1548d0..a5ca2e3 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; } -- cgit v0.10.2 From 7b85e56bebab9297d96c167531ebba974f383117 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:43 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index a5ca2e3..94beffe 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; } -- cgit v0.10.2 From c3a5536a7da427283c4709d0bbe5665fe8d3c810 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Wed, 23 Sep 2015 22:15:48 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c index 94beffe..aad288a 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; -- cgit v0.10.2 From 96a384a7ed53b38fc2ba35fa5ef828a2c7368a3a Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Mon, 28 Sep 2015 22:52:33 +0100 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index fc5dbea..fbcb248 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); } -- cgit v0.10.2 From 1282bade3b8e34cb4a26b8444577d70c7f15e0d8 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 29 Sep 2015 10:47:49 +0300 Subject: staging: sm750fb: remove dead code Remove the code enclosed in '#if 0' Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 28733db..b2654ec 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 abccf84..39bdfad 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 3b06aed..9b2d2d2 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 2995625..16a01c2 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 37cdd5b..8d644a7 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 b623fbf..43e5972 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 93dd6c1..3b7ce92 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) { -- cgit v0.10.2 From 02ab79c80bc4ba5288e84d717ec4f6dc0030c90f Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Tue, 29 Sep 2015 12:22:03 +0100 Subject: 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 diff --git a/drivers/staging/comedi/drivers/ni_tiocmd.c b/drivers/staging/comedi/drivers/ni_tiocmd.c index 9b124b0..437f723 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) -- cgit v0.10.2 From 5bd28f0701ca989629bfeae86e5167b54804bb60 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 29 Sep 2015 11:14:42 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 7e0c461..cffea40 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 "); -- cgit v0.10.2 From f24f47a4778df876acc2f3204465e4710f575bcf Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:44 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 5262b4f..22f3777 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 d66a7b8..3a212b4 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; -- cgit v0.10.2 From 600362f9170af4b3370c8e43cddb81a8182a7998 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:45 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_eacl.h b/drivers/staging/lustre/lustre/include/lustre_eacl.h index 0f8f76c..499f9c8 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 933456c..1dace14 100644 --- a/drivers/staging/lustre/lustre/obdclass/acl.c +++ b/drivers/staging/lustre/lustre/obdclass/acl.c @@ -287,125 +287,6 @@ again: } /* - * 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. */ ext_acl_xattr_header * -- cgit v0.10.2 From e64674d093ed58e507cf93647e690c2a11541181 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:46 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index e929c93..a928631 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 059ad96b..a3608a9 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 326f89e..cdc7e62 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); -- cgit v0.10.2 From a0744613b234a59a53cad6302e6925ee0874bb51 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:47 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_req_layout.h b/drivers/staging/lustre/lustre/include/lustre_req_layout.h index c6457b2..04c0076 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 5d19cfc..4ddbe0d 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 -- cgit v0.10.2 From dab49b4062f51346a88a7426132e76c1b4d23ad4 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:48 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index a928631..e7faf0e 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 cdc7e62..506fc36 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,32 +219,10 @@ 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. */ static struct ptlrpc_hr_thread * @@ -297,76 +248,6 @@ ptlrpc_hr_select(struct ptlrpc_service_part *svcpt) } /** - * 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) { -- cgit v0.10.2 From 942f38903c6c00db24d6bfc42af79dba6bd895ba Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:49 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index e7faf0e..090484b 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 506fc36..353ac22 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) { -- cgit v0.10.2 From 2d075f05f40a8b5349b54a822a26fd0777d99918 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:50 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_lib.h b/drivers/staging/lustre/lustre/include/lustre_lib.h index b380359..35175fd 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 cc785ab..fb4e3ae 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)); -- cgit v0.10.2 From d5febc9916156226f519be65a32648c0c4a699ac Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:51 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 090484b..6df3e70 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 00efdbf..ce036a1 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c +++ b/drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c @@ -196,48 +196,6 @@ ptlrpcd_select_pc(struct ptlrpc_request *req) } /** - * 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. */ static int ptlrpcd_steal_rqset(struct ptlrpc_request_set *des, -- cgit v0.10.2 From a83a765d14df24c8fa0fc500d24b0334638ee828 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:52 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index b2366ca..b073313 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 da0066a..a822a0b 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_io.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_io.c @@ -1181,32 +1181,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. */ void cl_page_list_assume(const struct lu_env *env, @@ -1236,26 +1210,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. */ void cl_2queue_init(struct cl_2queue *queue) @@ -1297,17 +1251,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. */ void cl_2queue_fini(const struct lu_env *env, struct cl_2queue *queue) @@ -1341,14 +1284,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. * * This is called by cl_device_operations::cdo_req_init() methods to add a diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index 7c6583a..4294ca6 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c @@ -1276,32 +1276,6 @@ static int cl_enqueue_locked(const struct lu_env *env, struct cl_lock *lock, } /** - * 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. * * This function is called to release underlying resource: diff --git a/drivers/staging/lustre/lustre/obdclass/cl_object.c b/drivers/staging/lustre/lustre/obdclass/cl_object.c index 05e29f8..89ff7f1 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_object.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_object.c @@ -98,16 +98,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. * * Returns either cached or newly created object. Additional reference on the @@ -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; @@ -929,21 +903,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. * * \see cl_attr2lvb -- cgit v0.10.2 From 709e280afae54722421cc43e8b8436d058aae03f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:53 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index 7756008..e2199c2 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 c892e82..01d70f0 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -157,17 +157,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); -- cgit v0.10.2 From b30c78e216e5ce37b28c665b22ff9ec2882d7c2c Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:54 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c index ac79db9..a78c4a4 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 -- cgit v0.10.2 From f27355ba2f7b3f6916e9dd8e46a7a540a88eb564 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:55 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h b/drivers/staging/lustre/lustre/include/lustre_import.h index 079db52..660d290 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 8bfdc97..b323403 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 059611b..4467baa 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); -- cgit v0.10.2 From 3a459a79cea24cf0f6def24a16ce7b308d93d8a2 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:56 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_handles.h b/drivers/staging/lustre/lustre/include/lustre_handles.h index 726bbd3..4d51c8a 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 97d79da..d19ec15 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; -- cgit v0.10.2 From 2a6c5cb5f65596776f0fdc8593fe0d33a72a44ea Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:57 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index ec33259..4178c85 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 16009a6..bc15e15 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 -- cgit v0.10.2 From e461e18fabdcbb2f16d2d094c6d5512c0cd2a51b Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:58 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/obdo.c b/drivers/staging/lustre/lustre/obdclass/obdo.c index 307ffe3..1a950fb 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); -- cgit v0.10.2 From 11109260080f2840e3563cbede8bec73c0699f5a Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:43:59 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 6df3e70..a486c1d 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 d013d4b..6aaa5dd 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/client.c +++ b/drivers/staging/lustre/lustre/ptlrpc/client.c @@ -802,48 +802,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. */ @@ -959,28 +917,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 9ff1a22..1ac265d 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; -- cgit v0.10.2 From d97cc6442a44ecbd5e7c6c00be4a863de3ee3158 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:00 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 871185c..1d2c572 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 5ee6641..67604b5 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 c18b71c..c89973c 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 7769ab2..0d29b87 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 c3ad1da..520329f 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; -- cgit v0.10.2 From 2e57708b2071cdff36d8b8815dad30b345ac5d2d Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:01 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/linux/linux-obdo.c b/drivers/staging/lustre/lustre/obdclass/linux/linux-obdo.c index 62ed706..9496c09 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); -- cgit v0.10.2 From db2162d17565ff1f90fe24464cc14974ce9fbff6 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Mon, 28 Sep 2015 23:44:02 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 3ac1de3..9cc92bb 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 e9925ef..1a41366 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 6c92d0b..8a08941 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 c29bfdb..7634dea 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 a486c1d..af3bf21 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 ed65468..de49b41 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 04c0076..cfcc995 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 b323403..73fb29f 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 c61add4..43a7f7a 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 1515163..518288d 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 d19cbf6..a8a1cb7 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 4ddbe0d..991fb74 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/layout.c +++ b/drivers/staging/lustre/lustre/ptlrpc/layout.c @@ -1996,55 +1996,6 @@ static void *__req_capsule_get(struct req_capsule *pill, } /** - * 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. */ @@ -2136,21 +2087,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 40696f3..2476cf2 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) @@ -1251,70 +1250,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. * @@ -1553,22 +1488,6 @@ ptlrpc_nrs_req_get_nolock0(struct ptlrpc_service_part *svcpt, bool hp, } /** - * 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 * be called while holding ptlrpc_service_part::scp_req_lock to get a reliable @@ -1589,48 +1508,6 @@ bool ptlrpc_nrs_req_pending_nolock(struct ptlrpc_service_part *svcpt, bool hp) }; /** - * 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 * partition of service \a svc. diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index 9402fb9..3241b1f 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 4706174..74fab7e 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 a3608a9..ab6c458 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); -- cgit v0.10.2 From db65e92727017ccba61e998bd26f87ca34283d17 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:03 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index abc9345..1b50e66 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, -- cgit v0.10.2 From 065749efe4b27333338d7d7db68adf82afdef1fb Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:04 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/fid/fid_request.c b/drivers/staging/lustre/lustre/fid/fid_request.c index a16d577..16264bc 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 1b50e66..f60c20a 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, -- cgit v0.10.2 From 997f0eed26eb14c14e01810a097f7f69e7adbf48 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:05 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/fid/fid_request.c b/drivers/staging/lustre/lustre/fid/fid_request.c index 16264bc..ce55340 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 f60c20a..22fc96e 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); -- cgit v0.10.2 From f4f8407fb1ef35b8fd2475e15eba6f2c928b78ae Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:06 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/fid/fid_request.c b/drivers/staging/lustre/lustre/fid/fid_request.c index ce55340..7c45e74 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 bf12723..ce90c1c 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 22fc96e..bbe3ff8 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; -- cgit v0.10.2 From 072b36e13e766e715944ead0ee35d131ecee0071 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:07 -0400 Subject: staging/lustre/fid: Remove unused struct lu_server_seq Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/include/lustre_fid.h b/drivers/staging/lustre/lustre/include/lustre_fid.h index bbe3ff8..19d9175 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); -- cgit v0.10.2 From 706d263ffaad264f72a3b4dbbc4b904aec87352d Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:08 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index 7634dea..5b8f4e8 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 e8317b8..3fb72dc 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 4467baa..681312e 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 a8a1cb7..48c712e 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, -}; -- cgit v0.10.2 From af3ec53b7b6723d89f25f223ca293b3361071272 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:09 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_export.h b/drivers/staging/lustre/lustre/include/lustre_export.h index 5b8f4e8..1daf4c5 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 3fb72dc..314f5c7 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 73fb29f..6fb67a6 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 681312e..c1bffcd 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 48c712e..66fafd3 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 8db62d0..13632cd 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 353ac22..44fde0b 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); - - /* 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; - } + /* 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; } newdl = ktime_get_real_seconds() + at_get(&svcpt->scp_at_estimate); -- cgit v0.10.2 From 8c74cb0125fc80c2179c0a321ad698a882676fbc Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:10 -0400 Subject: staging/lustre: Remove ccc_attr/conf_set() These seem to be unused. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/include/lclient.h b/drivers/staging/lustre/lustre/include/lclient.h index 67d41bb..d09d005 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 f049d55..98a2e0e 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); -- cgit v0.10.2 From a6f4b8554f9b0bd5ac86f495c137de0696856f6c Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:11 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lclient.h b/drivers/staging/lustre/lustre/include/lclient.h index d09d005..823be81 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 98a2e0e..eb43174 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) -- cgit v0.10.2 From 99207b80bbf602f1674485c3f9653b7c527785d9 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Mon, 28 Sep 2015 23:44:12 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lclient.h b/drivers/staging/lustre/lustre/include/lclient.h index 823be81..be5499c 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 eb43174..8764df9 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) -- cgit v0.10.2 From d0a76bbfe920e056e761bfcb77f3b95bd3bce98f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 30 Sep 2015 03:46:43 +0200 Subject: 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 diff --git a/drivers/staging/iio/iio_dummy_evgen.c b/drivers/staging/iio/iio_dummy_evgen.c index 86d8447..9e83f34 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) -- cgit v0.10.2 From b3ce2076c70087c31a03d87900a7b868d0ead1bb Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 30 Sep 2015 00:51:28 +0530 Subject: 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 diff --git a/drivers/staging/media/lirc/lirc_sasem.c b/drivers/staging/media/lirc/lirc_sasem.c index b247649a..d3dedb8 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; -- cgit v0.10.2 From 2866914ce1f84ffbd8fae66552058e586c84d851 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 29 Sep 2015 14:47:25 -0700 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 597b78d..f626364 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; } -- cgit v0.10.2 From 65ead4ecb2d22a78592263ecba3decbc9df548dd Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Tue, 29 Sep 2015 12:15:48 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index be5e6f9..93af5d4 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); -- cgit v0.10.2 From ffda203c0cf3b5b4648ba24c7d1ca34b9dcd4a3e Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Tue, 29 Sep 2015 12:15:49 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 99de804..358bd2d 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 c96fff9..0261b36 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 8ef80c6..2b76e41 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 c22b35e..6da65e8 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 8426641..f762770 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 af49c91..d3a03c6 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 93af5d4..428e94f 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 60da18c..1ed4e2c 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 -- cgit v0.10.2 From e215a871255f9256de77e1b9c32b84d3a80122c1 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 30 Sep 2015 08:15:41 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 68e3c7f..34a6c10 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 358bd2d..79f4158 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 5456c96..10d16e9 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 2d6e0ce..e4807ae 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" -- cgit v0.10.2 From 9fc42225f23e0b29583b92499806264dbfba0f4b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 30 Sep 2015 08:15:42 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h deleted file mode 100644 index 10d16e9..0000000 --- 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 1ed4e2c..7b1a872 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 e4807ae..c0b5df9 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" /******************************************** -- cgit v0.10.2 From 438b293ebded4c89fe0a2c4f68e065a79e752511 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 30 Sep 2015 11:59:23 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index afae7d6..ac15e5a 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 79f4158..7fa2cf2 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 c0b5df9..7aa317d 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, -- cgit v0.10.2 From 7477929566b65f692b79974b784ee59e8b2b9f18 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Wed, 30 Sep 2015 11:59:24 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index ac15e5a..e965df9 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 34a6c10..b6b19fe 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 c2bd6fc..253c7f0 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 7fa2cf2..be01de5 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) { @@ -5151,69 +4981,6 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv, } /** - * @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 * @param[in,out] handle to the wifi driver, diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 0261b36..56ba042 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 */ @@ -659,41 +654,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 * @param[in,out] handle to the wifi driver, -- cgit v0.10.2 From 0c9fc33cec319d8df632ac107bdba77a9b44bb37 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Wed, 30 Sep 2015 17:52:14 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index 6da65e8..6e28ca0 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 f762770..0e06fc2 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 73a1508..d761a37 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" -- cgit v0.10.2 From fb6f37a8c842542093a2409792e8ef0f13411684 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:54 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index b2654ec..d135749 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 6ff0436..d130bb8 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 -- cgit v0.10.2 From 55a6cf5d4b211a8d1c13264ab1ed5fc7e09fdfdd Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:55 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index d135749..e987971 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 d130bb8..6e87a17 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); -- cgit v0.10.2 From 86b5f4ed3525645dac9fa8a5eedcd5af7118c591 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:56 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 8348113..24c1c82 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 39bdfad..3d2e8b4 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 -- cgit v0.10.2 From 6af70030431d5d58b34c294ddb371baf7f6c9d4b Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:57 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index 793c092..b2f05f4 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 08dcc69..c070cf2 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) { -- cgit v0.10.2 From 228a4cf8e7e5553d9da06916dd01dd0b17cc1a8f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:58 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_power.c b/drivers/staging/sm750fb/ddk750_power.c index e580dab..864bbd6 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 b7cf6b2..ed08cdb 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 */ -- cgit v0.10.2 From 4221c5958796174a5ea13043075816b199a60d09 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Wed, 30 Sep 2015 08:24:59 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_power.c b/drivers/staging/sm750fb/ddk750_power.c index 864bbd6..198ff81 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; @@ -198,23 +154,6 @@ void enableGPIO(unsigned int enable) } /* - * 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 */ void enableI2C(unsigned int enable) diff --git a/drivers/staging/sm750fb/ddk750_power.h b/drivers/staging/sm750fb/ddk750_power.h index ed08cdb..6e804d9 100644 --- a/drivers/staging/sm750fb/ddk750_power.h +++ b/drivers/staging/sm750fb/ddk750_power.h @@ -35,11 +35,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 */ void enableDMA(unsigned int enable); @@ -50,19 +45,9 @@ 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 -- cgit v0.10.2 From 5b62408ffe42ffce28e94bc5e7a6dec45e6456ee Mon Sep 17 00:00:00 2001 From: Ronit Halder Date: Wed, 30 Sep 2015 11:39:45 +0530 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index e17bde7..64f6149 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; } -- cgit v0.10.2 From 46d4503bc8c95010e83b03a48fa59344bf78daa3 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 25 Sep 2015 22:53:01 +0530 Subject: 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 diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 10fa372..55cc8bb 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) */ -- cgit v0.10.2 From e38f898320b4a91d382036d1a34e8ae64cade1f6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 25 Sep 2015 22:53:02 +0530 Subject: 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 diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 55cc8bb..ca7d33f 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; } -- cgit v0.10.2 From 443f33e9581c3c98ef5e7ec2236b655a9afe1c1d Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Fri, 25 Sep 2015 11:54:01 +0200 Subject: 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 diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c index b99de00..01d7158 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 = { -- cgit v0.10.2 From d2654817ea6502660d805cd999efea625c10823f Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Fri, 25 Sep 2015 11:52:11 +0200 Subject: 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 diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c index 1b3b74b..929508e 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, -- cgit v0.10.2 From 83234554ef3a9549d83d08c9aafbe041c75d3a89 Mon Sep 17 00:00:00 2001 From: Martin Kepplinger Date: Fri, 25 Sep 2015 11:45:10 +0200 Subject: 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 diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c index 581ec14..e6e9756 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) -- cgit v0.10.2 From bf23cee62d5953927758ff6287d300dc945afc84 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 22 Sep 2015 21:25:09 -0700 Subject: 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 diff --git a/drivers/iio/chemical/vz89x.c b/drivers/iio/chemical/vz89x.c index b454200..11e59a5 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, -- cgit v0.10.2 From 80cf2b5ca4e4c43222d7ac9ba606d21f3d3f4a2c Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 22 Sep 2015 23:22:03 -0700 Subject: 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 diff --git a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c index 185a7ab..961f9f99 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 = { -- cgit v0.10.2 From b15aef8d5b8e9edd325c86ba5c78deca66c5ccb6 Mon Sep 17 00:00:00 2001 From: Peter Rosin Date: Wed, 23 Sep 2015 16:26:22 +0200 Subject: iio: resistance: Document that resistance can be output Signed-off-by: Peter Rosin Signed-off-by: Jonathan Cameron diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 8ce14c8..3786863 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: -- cgit v0.10.2 From c05dc2cce7422a5c05db470572b22fcd855f8cd7 Mon Sep 17 00:00:00 2001 From: Peter Rosin Date: Wed, 23 Sep 2015 16:26:23 +0200 Subject: 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 diff --git a/MAINTAINERS b/MAINTAINERS index 6d7af82..cb28faa 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 119c94d..66792e7 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 e210055..aeca726 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 0000000..fd75db7 --- /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 0000000..8afe492 --- /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 0000000..a3f6687 --- /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"); -- cgit v0.10.2 From db459e48f5c6273f104113a043a698605dde73f8 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:11 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index dcf7c6b..59fdbed 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 b6234b2..e1d8fb0 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); -- cgit v0.10.2 From b27f9d185f8ed05229b867a30de1d4254039deb8 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:12 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h index 314f5c7..5de9776 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 8f0ffa4..7e6a060 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 8726176..dc234a7 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; -- cgit v0.10.2 From 17556af2b4268f3504cefeb907d27a5c40dff230 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:13 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 59fdbed..d6bdfed 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 8c1bfd2..71be194 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) -- cgit v0.10.2 From 4d00df54e0c93bc65127bdef09bf4e56ca3ab13c Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:14 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index d6bdfed..4c20b1e 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 2e663ea..a22e252 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; -- cgit v0.10.2 From 88bc797cc3c531ea86e84b7724371ebbde213fa8 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:15 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lov/lov_internal.h b/drivers/staging/lustre/lustre/lov/lov_internal.h index dde9656..0de39cc 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 6b1c135..05651ac 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 c59b140..f996348 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) { -- cgit v0.10.2 From 3ddca06fb384b1ff7cf2badf80d085487ce40868 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:16 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lov/lov_cl_internal.h b/drivers/staging/lustre/lustre/lov/lov_cl_internal.h index 314ce85..9a9156e 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 4d7cd92..e67df64 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; -- cgit v0.10.2 From 3dd5a6ba55d62a9c9c04194bbf8e285ef9e0f5ad Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:17 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/interval_tree.h b/drivers/staging/lustre/lustre/include/interval_tree.h index bf9027d..f6df3f3 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 eab2bd6..3d2d85b 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); -- cgit v0.10.2 From 8a7c086d8cb17978f2fdf6768ff0233f9a9507ea Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:18 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index fa4b7c7..e870b3e 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 12eb5ac..b257b89 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -2012,56 +2012,6 @@ struct export_cl_data { }; /** - * 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. * * A fast variant of ldlm_lock_convert for conversion of exclusive -- cgit v0.10.2 From 004a4b38a7a0522c0edfd29c01855f92bec516a1 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:19 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 1ac08e1..03eea32 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 a78c4a4..57f6128 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, -- cgit v0.10.2 From 97ea097b456185f3d653d1a623998086c35d4c66 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:20 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 03eea32..bea526b 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 b257b89..0597fec 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c @@ -2012,125 +2012,6 @@ struct export_cl_data { }; /** - * 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. * * Used when printing all locks on a resource for debug purposes. diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c index f6d61e5..5bd66c3 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: -- cgit v0.10.2 From 0c279f4d93c7be90a0163ef0bb5a71b11edf7395 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:21 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index bea526b..40377b2 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 0597fec..7f9d3c1 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 5bd66c3..760c745 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 cc212b9..dac2ec2 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) -- cgit v0.10.2 From ab47eb1b937783fba5363c43dc8da5ccd2fca77f Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:22 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 40377b2..ce91ccc 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 760c745..9856133 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) { -- cgit v0.10.2 From d7dbe11ef0700829ef133e332673e5921346f80e Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:23 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index ab670fc..bb8ecc8 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 e870b3e..1293f13 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); -- cgit v0.10.2 From bf2a033360f7e4173c42a7e9b7dfd9d6757904bd Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:24 -0400 Subject: staging/lustre/ldlm: Remove unused ldlm_enqueue_pack() Not used anywhere Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index ce91ccc..72c52ef 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 9856133..c73661c 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. * -- cgit v0.10.2 From 38c3f17fcac1c5de10db7306e585b62577e55bcb Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:25 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 72c52ef..432222b 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 584c4e6..b840200 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) { -- cgit v0.10.2 From e306fc791709e979634075a01c902c11d5b20b02 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:26 -0400 Subject: staging/lustre/ldlm: Remove ldlm_glimpse_ast() Only used on the server. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 432222b..8b2b092 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 c73661c..a9159fd 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) { -- cgit v0.10.2 From 996cbc63df2538b36ae7ce192d333dcd2454789e Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:27 -0400 Subject: staging/lustre/ldlm: Remove ldlm_lock_fail_match() It's not used anywhere. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 8b2b092..cc5ad4c1 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 7f9d3c1..536f97c 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. * -- cgit v0.10.2 From 4889fd37f50f361716764c26121e3b7cbf741bc3 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:28 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index cc5ad4c1..4d81e73 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 dac2ec2..cd65efe 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); -- cgit v0.10.2 From 865cc738e6f7b720284cc3a1c9f323d9772c3d4e Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:29 -0400 Subject: staging/lustre/ldlm: Remove unused ldlm_pool_get_clv() Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 4d81e73..1b5f298 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 1c9d67f..cbe4b7b 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -1023,22 +1023,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. * * \pre ->pl_lock is not locked. -- cgit v0.10.2 From a5613d7545519e9896d08a8061a6bbd546c1c10b Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:30 -0400 Subject: staging/lustre/ldlm: Remove unused ldlm_pool_set_slv() Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 1b5f298..ec717eb 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 cbe4b7b..94cdf5f 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -1010,19 +1010,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. * * \pre ->pl_lock is not locked. -- cgit v0.10.2 From 8868dc0d90e0ed3f9d276c849a65284fad25109c Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:31 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index ec717eb..5a72f22 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 536f97c..133936e 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 57f6128..045e3c6 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. * -- cgit v0.10.2 From 02176031cd6db041a8b3916364df82b8708da3fc Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:32 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 5a72f22..c0b2c61 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 133936e..5a07669 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; } -- cgit v0.10.2 From 71d1c4d5cb6c578c191db042dc7f025d328b5f73 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:33 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index c0b2c61..9608373 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 bb8ecc8..14e6782 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 5a07669..e586d33 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 a9159fd..15e1980 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; -- cgit v0.10.2 From b8d84a762faaf7dd6dacfcd981dcc8ecec68e5d3 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:34 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index 1293f13..56805d0 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 cd65efe..9906372 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; -- cgit v0.10.2 From f954e778dce59036dae0ebf9cf304621a71aa85b Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:35 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 9608373..360c7f7 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 15e1980..2d28fc2 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) { -- cgit v0.10.2 From cf739f84a326d009670ba5c2d8d7b63216722ffc Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:36 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 360c7f7..1e40203 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -465,19 +465,6 @@ struct ldlm_namespace { }; /** - * 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. */ static inline int ns_is_server(struct ldlm_namespace *ns) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index 14e6782..7241c34 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 e586d33..6d5e7af 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 2d28fc2..04f4144 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 9906372..402fe60 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; -- cgit v0.10.2 From 71570b98e35d9f00a5ee9936204e5d7c380491d6 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:37 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 1e40203..49b5a07 100644 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h @@ -465,19 +465,6 @@ struct ldlm_namespace { }; /** - * 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). */ static inline int ns_connect_cancelset(struct ldlm_namespace *ns) diff --git a/drivers/staging/lustre/lustre/ldlm/l_lock.c b/drivers/staging/lustre/lustre/ldlm/l_lock.c index cd8ab40..e5d1344 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 6d5e7af..827e5df 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 94cdf5f..dac1b6f 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); -- cgit v0.10.2 From 00f9d12b6b334208e8d5e1097db67793492d25a7 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:38 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 49b5a07..3cca07e 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 dac1b6f..78d1baf 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -214,70 +214,6 @@ static inline int ldlm_pool_t2gsp(unsigned int t) } /** - * 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. * * \pre ->pl_lock is locked. @@ -303,147 +239,6 @@ static void ldlm_pool_recalc_stats(struct ldlm_pool *pl) } /** - * 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. */ static void ldlm_cli_pool_pop_slv(struct ldlm_pool *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,82 +932,14 @@ 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. */ for (nr = ldlm_namespace_nr_read(client); nr > 0; nr--) { @@ -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); -- cgit v0.10.2 From 58c6d1337761b8adc69a422f40f8701db6807f24 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:39 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h index 3cca07e..dfc49e1 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 fd9b059..05bc4f3 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 7241c34..57b4edb 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 56805d0..e63a1c9 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 827e5df..0ba1ac3 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 045e3c6..152bdaa 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 78d1baf..a4ee591 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_pool.c @@ -214,6 +214,22 @@ static inline int ldlm_pool_t2gsp(unsigned int t) } /** + * 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. * * \pre ->pl_lock is locked. @@ -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 04f4144..250cc37 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 402fe60..de1b443 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) { -- cgit v0.10.2 From 58ba1c313fa04f86f00e0aa5df9e7ee31a25dd33 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:40 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index e63a1c9..6cf3f9f 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 de1b443..9152423 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. */ -- cgit v0.10.2 From bb10512e76b8db31c0f99115ee6216d648cf9816 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:41 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c index 57b4edb..0c46a06 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) { @@ -149,79 +115,6 @@ ldlm_flock_destroy(struct ldlm_lock *lock, ldlm_mode_t mode, __u64 flags) } /** - * 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); -- cgit v0.10.2 From e3fde1b870dff88d2655b4fa60d6d25366c6ee09 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Thu, 1 Oct 2015 00:12:42 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index 6cf3f9f..db3c9b7 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 0ba1ac3..f39375c 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) -- cgit v0.10.2 From 053118935e7a0f62e96471220acd659b83d04ef7 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 1 Oct 2015 15:07:58 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 01d70f0..814e56a 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, -- cgit v0.10.2 From 60ec47f23e70baf920f73026095de57edb14731a Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 30 Sep 2015 22:28:32 +0300 Subject: 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 diff --git a/drivers/staging/wlan-ng/prism2sta.c b/drivers/staging/wlan-ng/prism2sta.c index 0329c52..bd97986 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; -- cgit v0.10.2 From 2bcaa1e955fe9126ef627d5f1d81bd1be7946299 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 30 Sep 2015 18:28:53 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 2a2d53c..88718f6 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 828174a..8b52523 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 7568e94..568b433 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 4e16ea7..d609f87 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 c9bbba1..a72f920 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 28b13cf..28aa100 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 14beefe..3142a12 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; -- cgit v0.10.2 From 6f6347ef496dbeeacb9937aedb50ed9aa1a20cd1 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 30 Sep 2015 18:28:54 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index 83867e1..eb45b27 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 3142a12..be99a9d 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 4691bcc..bfbf15c 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__); -- cgit v0.10.2 From ec2c398eff3e928ad3932d6b041168bd85b45ff0 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Thu, 1 Oct 2015 16:42:16 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet-defines.h b/drivers/staging/octeon/ethernet-defines.h index f92e0c4..7164005 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 d1a33a9..f600247 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 9e2116f..3a5d8f5 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 7274fda..c9183e0 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 a242c70..67f640f 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; -- cgit v0.10.2 From c76d294f324856240ee45569c7f783e86082434c Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Thu, 1 Oct 2015 21:43:57 +0300 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index a629a78..76fe4b2 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; -- cgit v0.10.2 From 1657183fcc4e044b2e96bcb9150265027ad2b44b Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Thu, 1 Oct 2015 22:10:52 +0300 Subject: 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 diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c index b892f2c..1a0651c 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); -- cgit v0.10.2 From d1e9aef604da38a4963998922ed0ffff675e3ede Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 2 Oct 2015 02:57:03 +0530 Subject: 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 diff --git a/drivers/staging/xgifb/vb_util.h b/drivers/staging/xgifb/vb_util.h index 7bd395f..f613f54 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); } -- cgit v0.10.2 From 6fce180320ba1fb9710f5f25577da84af12447e8 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Thu, 1 Oct 2015 11:52:27 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 9d3c1e2..be142eb 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); } -- cgit v0.10.2 From f5c9598b735c55e56998fbd0c2df61d12a418167 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Thu, 1 Oct 2015 11:52:28 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index be142eb..b41dbd4 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); -- cgit v0.10.2 From 07f8260bb65676910d4a16e81a319b33095dccb6 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Thu, 1 Oct 2015 11:52:29 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index b41dbd4..85c9fec 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); -- cgit v0.10.2 From f84bd6267d623b49f196d54ba9edc41ff1c4d5e3 Mon Sep 17 00:00:00 2001 From: Benjamin Romer Date: Thu, 1 Oct 2015 11:52:30 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorbus/periodic_work.c b/drivers/staging/unisys/visorbus/periodic_work.c index a3631c3..115b7aa 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; } -- cgit v0.10.2 From 0fbc149c9426f2ca18745bf94eb854b6d41332bb Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Thu, 1 Oct 2015 12:41:58 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorhid/visorhid.c b/drivers/staging/unisys/visorhid/visorhid.c index cca426b..119b72d 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; -- cgit v0.10.2 From bc719854d2c0f338fb784560e80e216dcfbe5332 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Thu, 1 Oct 2015 12:41:59 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorhid/visorhid.c b/drivers/staging/unisys/visorhid/visorhid.c index 119b72d..c24aaf5 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" -- cgit v0.10.2 From a56d092aa94ebcc9452ddaa47423b9a478aa6aa5 Mon Sep 17 00:00:00 2001 From: Rohit kumar Date: Wed, 30 Sep 2015 11:07:35 +0530 Subject: 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 diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index df35398..91b9b75 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); -- cgit v0.10.2 From ea1ea695133a47302c639d9e836f513d7473562a Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 30 Sep 2015 16:43:55 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_pci.c b/drivers/staging/comedi/comedi_pci.c index 0601049..51e023a 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) -- cgit v0.10.2 From 127a0cf9b091fe85b6624a4ac8164d6b2cf76143 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 30 Sep 2015 17:10:57 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_pcmcia.c b/drivers/staging/comedi/comedi_pcmcia.c index 7e78439..d7072a5 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. + * + * 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. * - * 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. + * 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. 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. * - * Typically called from the pcmcia_driver (*probe) function. + * 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 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. * - * 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. + * 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) -- cgit v0.10.2 From ddf837ea95017a658d2a4bac6b89fc0989f2e5e6 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 30 Sep 2015 17:37:13 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_usb.c b/drivers/staging/comedi/comedi_usb.c index 68b75e8..9c946d4 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 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. * - * 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. + * 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) -- cgit v0.10.2 From 5f7a9424951b9d415aa61bcbd126ba5a3e09c1bc Mon Sep 17 00:00:00 2001 From: Arjun Krishna Babu Date: Wed, 30 Sep 2015 18:24:22 +0530 Subject: 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 diff --git a/drivers/staging/vt6655/baseband.c b/drivers/staging/vt6655/baseband.c index 9e61f2d..1e6c0c4 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); -- cgit v0.10.2 From b890d00e849384ed2529071ce4a8e51160de6055 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Wed, 30 Sep 2015 10:20:47 -0500 Subject: 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 diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c b/drivers/staging/rtl8188eu/os_dep/mon.c index 3dd3dc0..63bb875 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 -- cgit v0.10.2 From 86dc65b36cb55b81d1bd90b7483bea06375f5078 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Wed, 30 Sep 2015 13:12:11 +0100 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c b/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c index 984cb9a..70df6a1 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; } -- cgit v0.10.2 From a57ace12815d2e913f6b81e2e9e3c00e24d64594 Mon Sep 17 00:00:00 2001 From: Bryan Paul Date: Wed, 30 Sep 2015 11:05:09 -0600 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index 89b5e48..9b7026e 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); -- cgit v0.10.2 From 3fe1be87abfb4fab62a03ca6e1440cd4fc63dc74 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Thu, 1 Oct 2015 16:18:07 +0300 Subject: staging: rtl8712: re-use mac_pton() ...instead of custom approach Cc: Joshua Clayton Signed-off-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 143be0f..8591d93 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), -- cgit v0.10.2 From 2d893537569948120332184bbea29c743f9951d9 Mon Sep 17 00:00:00 2001 From: Iban Rodriguez Date: Thu, 1 Oct 2015 22:21:40 +0200 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c index 497fb06..1beeac4 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 */ -- cgit v0.10.2 From 104f456ce1301fa49f7dffc129c0bce420da07df Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 1 Oct 2015 12:14:02 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 81fe3c3..4d261d5 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -539,18 +539,6 @@ static int lynxfb_ops_check_var(struct fb_var_screeninfo *var, 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; var->red.offset = 0; var->red.length = 8; @@ -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; } -- cgit v0.10.2 From efca4885b2b86d9c1a2eb579f6e9d573d44896f8 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 1 Oct 2015 12:14:03 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 4d261d5..646d281 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 b2f05f4..1f365ae 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 52f5b0e..9c2c28a 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 3781a1a..a4d66bf 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*); -- cgit v0.10.2 From 4dc4d225550e12bb0526a2dc05c0073f44121714 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 1 Oct 2015 12:14:04 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 646d281..494017f 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 1f365ae..52fe945 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 9c2c28a..92e194d 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 a4d66bf..cc8c76d 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); -- cgit v0.10.2 From 2043397283c4e1e318932bc7db285cf1c6a073fa Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:37 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index a661416..71e8ad5 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, -- cgit v0.10.2 From 28b70100dab2f58f61ac34e55b7ebe4d0e36e6f5 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:43 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index 71e8ad5..0404654 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, -- cgit v0.10.2 From 27a98a28e09c309f3fab3ea5af6af866b8f5b1bd Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:47 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index 0404654..ca5139a 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); -- cgit v0.10.2 From d9098c551a5d96df61cd4703866e727d7b1a2af8 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:52 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index ca5139a..c8aaab3 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; -- cgit v0.10.2 From 0c9fc85c0eca22fff369fed0d27b814b9989c035 Mon Sep 17 00:00:00 2001 From: mike dupuis Date: Thu, 1 Oct 2015 21:52:56 -0800 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c index c8aaab3..27ce481 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; -- cgit v0.10.2 From 50f415203085311aee004fdbcbf845d49faa8dd9 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:18 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index e965df9..d226ebe 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 -- cgit v0.10.2 From 6011b7796e8f98ace407dd06b554a8d195c0d4bc Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:19 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index d226ebe..f495061 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 253c7f0..58aa13c 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; -- cgit v0.10.2 From 4528bdb5d26f699175e1e199a72e349a3992b08c Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:20 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index be01de5..a039f04 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.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.u8ScanSource = u8ScanSource; + msg.body.scan_info.u8ScanType = u8ScanType; + msg.body.scan_info.pfScanResult = ScanResult; + 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 */ + 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 */ -- cgit v0.10.2 From 3f501971b72bb82437b7a3566b00648e1b007a3d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:21 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a039f04..96f0b69 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) -- cgit v0.10.2 From 02d1946002a35ff9e82d0520570466aac8d58689 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:22 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 96f0b69..8a93112 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 */ -- cgit v0.10.2 From 66add622128e183e6cbe54fd653d1154af7c31c6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:23 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8a93112..b24c022 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 */ -- cgit v0.10.2 From 18990bfe4c82261e9bddfb972d8ef23220468992 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:24 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b24c022..d4e8122 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); } -- cgit v0.10.2 From a2340c36ffb0285bd80943cfd6cb06e8191f27ea Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:25 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d4e8122..76e82e6 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)); -- cgit v0.10.2 From 3962e1c4567bfff4d61fca8e021fde78b61f1108 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:26 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 76e82e6..e715f54 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -232,20 +232,6 @@ struct set_channel { }; /*! - * @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 * @details @@ -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; -- cgit v0.10.2 From 94bdfe4243dfc230c41acdcc02bb9b4db4346e97 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:27 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e715f54..e66118a 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; -- cgit v0.10.2 From ffd6dbc8694029de6939c715c5b2bc235cd124b8 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:28 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e66118a..4559ed5 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)); -- cgit v0.10.2 From 80bf8836bf7657000f6e49786f82207b8b5cc02f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:29 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4559ed5..686402a9 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: -- cgit v0.10.2 From 7f33fecde162d8694fd3072aa70b59d459330d35 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:30 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 686402a9..2f211f9 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"); -- cgit v0.10.2 From a98491e50d9abaf46b4e27c353c73d08f98f64bb Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:31 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2f211f9..7e53aa9 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"); -- cgit v0.10.2 From ca8f47f8d50b5b34cba5a8dbe871c01a6a3719b6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:32 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7e53aa9..d9d0b2d 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"); -- cgit v0.10.2 From 889c25bee9f59dca815f48fbd5ce02e9e29cb9f5 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:33 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d9d0b2d..94559bd 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"); -- cgit v0.10.2 From 4a930962b03b6f5f491be3d4bce7bed741846d1e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:34 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 94559bd..da8e589 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: -- cgit v0.10.2 From df0e7839ab7ef00f238bcfb39935a76e1e8ab059 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:35 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index da8e589..7d51122 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -315,20 +315,6 @@ struct del_sta { }; /*! - * @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 * @details @@ -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; -- cgit v0.10.2 From 49e1f81b1e49e1458fb9e942e50bc9a2eb4c45c5 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:36 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7d51122..de64bd2 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); -- cgit v0.10.2 From 66bac7f20c5e2b9794ac7f273e398de810965f2e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:37 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index de64bd2..5a54608 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; -- cgit v0.10.2 From 5e4377e6ecd9ddba2eabbfb44af7a5dd1ff1154b Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:38 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5a54608..b8ef165 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)); -- cgit v0.10.2 From fb2d65ed73df8a1779aa16827d001e90b583e98b Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:44:39 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b8ef165..596d68f 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) -- cgit v0.10.2 From a079cf4d5e3fcfb4a01eeae911eaadf0098d16dd Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 596d68f..034e3d9 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) { -- cgit v0.10.2 From 00c4630e3dda50112128c789e94bedfed0bf72c9 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 034e3d9..a66f78d 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)); -- cgit v0.10.2 From 15326e281cf0484f22bd1d223bcdee5c41ff3ca1 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:07 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a66f78d..2fa1158 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)); -- cgit v0.10.2 From a584869521512432cd105f71d5bcf6949d0e798d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2fa1158..a6702dd 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)); -- cgit v0.10.2 From c833b4748a04ab13e88bbe847bb4c2c91b370266 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a6702dd..b7797a5 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"); -- cgit v0.10.2 From 070d365c3d54df8be8a87bce0b5c437bab6b8ab3 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 30 Sep 2015 18:55:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b7797a5..9dac906 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) -- cgit v0.10.2 From 63d7ab8efd4da800848a2862624bd5ebb482354f Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:32 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 701d317..d7909d3 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 428e94f..5e9a4c2 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 7b1a872..72d2ebf 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 7aa317d..e481446 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); -- cgit v0.10.2 From e42563bbb223190575918c1706309ff99deef331 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:33 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index d7909d3..f515fca 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 5e9a4c2..6e2bf4c 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 72d2ebf..15ae9ae 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 e481446..e752092 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 *); -- cgit v0.10.2 From 8cec741e4aee21b324a4c2a7e142114271dfe572 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:34 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index f515fca..245357e 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 6e2bf4c..745953c 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 15ae9ae..b32ba4f 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 e752092..9e749c7 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); -- cgit v0.10.2 From 8fc84a6f6496e8079fed1b9c43606b82bf195c06 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:35 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 245357e..e40ee8c 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 745953c..fcc4155 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 b32ba4f..2af027c 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 9e749c7..25d9d90 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); -- cgit v0.10.2 From f590c4ce170386e8aea7745ac5d92c7cbe2ab892 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:36 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index e40ee8c..c2c9f3a 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 fcc4155..32045a9 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 2af027c..7a395cf 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 25d9d90..d41a1d4 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); -- cgit v0.10.2 From 46ca80cd16f650c480cde3cdf3c68c6eb1a12f58 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:37 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c2c9f3a..e278d94 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 32045a9..e9af745 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 7a395cf..2054ad5 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 d41a1d4..91bf68a 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); -- cgit v0.10.2 From a17e2ec1ef681ccbc8eab4d435a227445a539488 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:38 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index e278d94..9e22247 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 e9af745..d352f24 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 2054ad5..198ddb7 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 91bf68a..624b99f 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); -- cgit v0.10.2 From 1d4469c945bcc243b9edd2e19d5b2333bb52215c Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:39 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h index 198ddb7..bf0c7c7 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 /******************************************** * -- cgit v0.10.2 From 1028e5a4045f541662909d148d024505c01fafb7 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:40 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index b6b19fe..4e9feca 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 9e22247..ad4d64e 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 d352f24..3687a06 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 bf0c7c7..be589f0 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 624b99f..8897910 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, -- cgit v0.10.2 From 07056a85078ad4d8114c9898799f7ded626a4023 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:41 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 4e9feca..74ff763 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 ad4d64e..a1e6f68 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 3687a06..ce0f054 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 be589f0..eb61db0 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 8897910..31d8983 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); -- cgit v0.10.2 From 894de36b1ae8cf78514a686c381dd5c3c4812a04 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:42 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 74ff763..246abb5 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 a1e6f68..e91192c 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 ce0f054..f4e57d8 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 eb61db0..3ffd558 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 31d8983..baa13e2 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; -- cgit v0.10.2 From c9d4834d94c5126e79984769da8c36844ae6db5d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Thu, 1 Oct 2015 16:03:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 246abb5..136d207 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 b1af421..a943b23 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 e91192c..c2e528f 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 755a817..45d1974 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 d3a03c6..0403bc7 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 f4e57d8..9475ec7 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 3ffd558..1ba433c 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 baa13e2..38d2206 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 -- cgit v0.10.2 From 9dd2f7719d265fd01b9f08f6a61c97b900dd1a4e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Fri, 2 Oct 2015 14:22:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 136d207..63fde5b 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); -- cgit v0.10.2 From fdf33a76972c487511962eab9ed5f0c1fa439f4e Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Fri, 2 Oct 2015 14:22:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 63fde5b..65a130d 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) -- cgit v0.10.2 From 28dedb8070398561243ad3708dd4f77ca920c6dd Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 0403bc7..e553b0c 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; -- cgit v0.10.2 From 66482a56425036e605e60bf56c573b30d0596a7b Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c2e528f..c4915d3 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); -- cgit v0.10.2 From 17e8f16554f22e8e5e0146e1236c2ec64a047e92 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:07 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 9475ec7..442fe5f 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 1ba433c..90417d9 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 d761a37..e5296c1 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 ef88358..326c716 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 -- cgit v0.10.2 From ec1b86bf6a47d6099cd502e6dc1a1217e2c6c23d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 442fe5f..fbc0829 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 90417d9..bbf3e02 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 e5296c1..7007381 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 326c716..2edd749 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 -- cgit v0.10.2 From 355cca2ab21b06b7222e7cd8bebede9aced75374 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index fbc0829..a9a8d24 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 bbf3e02..9386939 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 7007381..55d2083 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 2edd749..0efa2c5 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 -- cgit v0.10.2 From 30f535a673d043d21be5d40cced45387bd51b3b9 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index a9a8d24..cd4598a 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 9386939..5099cf0 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 55d2083..2916d45 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 0efa2c5..fe2c0382 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 -- cgit v0.10.2 From 814bc36807e26ffbee40dd81de3ae398b608c266 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index cd4598a..4ca8721 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 5099cf0..bd89689 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 2916d45..d148d6e 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 fe2c0382..30e60ec 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 -- cgit v0.10.2 From 9cdf6e7bd3f87485a5d1fddcbc7e9969cbb9be4b Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 2 Oct 2015 14:22:12 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index e553b0c..81c1ad3 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 -- cgit v0.10.2 From d3ad7f5788efc03e41a31756a01c0718324d366c Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h deleted file mode 100644 index 6ec1aa3..0000000 --- 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 -- cgit v0.10.2 From 331d80c53b2d2d11d526da5bed117119e7bd57bc Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index c4915d3..50631c5 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 81c1ad3..f2943b2 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 4ca8721..da52910 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 38d2206..327ea03 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" -- cgit v0.10.2 From afcd8c514698d96842d76db649e0237bd384d81a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:12 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index 0e06fc2..8acf648 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; } -- cgit v0.10.2 From c2eda352d046b3bd48d7916da9b2bfefbddffacf Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:13 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 50631c5..f6a6287 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 +#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 (g_linux_wlan != NULL) { + kfree(g_linux_wlan); + g_linux_wlan = NULL; + } + printk("Module_exit Done.\n"); #if defined(WILC_DEBUGFS) - wilc_debugfs_remove(); + wilc_debugfs_remove(); #endif - linux_wlan_device_detection(0); - linux_wlan_device_power(0); - } + linux_wlan_device_detection(0); + linux_wlan_device_power(0); } module_exit(exit_wilc_driver); -- cgit v0.10.2 From 0981ce2bba6dd76c9fb2edf459a7e6e207a0cef3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:14 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 45d1974..25643b0 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; } -- cgit v0.10.2 From 30b2ba099c799a72fa68c35e1e10016c515cac06 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:15 +0900 Subject: staging: wilc1000: remove unnecessary comment This patch removes unnecessary comment. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9dac906..2cf82b2 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 56ba042..fb5cb8a 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 f2943b2..d25092d 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 da52910..e11d3d3 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 { -- cgit v0.10.2 From 5cc59d299f0690c5ce3b32cdf8e07ac535c2288a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:16 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c index 8acf648..599508b 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; } -- cgit v0.10.2 From a74cc6b8d8ee405cfef4a26f6c8259f1c1882c66 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:17 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 25643b0..ea24f50 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; -- cgit v0.10.2 From 9a4598316e20a30a8926a81e2032f592ebe7e42a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:18 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index ea24f50..d71034f 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; -- cgit v0.10.2 From 7584019e575286d35b2a1151a8f7f3038bf3d377 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:19 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index d71034f..ebfcad4 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); -- cgit v0.10.2 From dd739ea517c43cb902d5116923c182d3f72dc9a7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:20 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index ebfcad4..8545c51 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; } /** -- cgit v0.10.2 From 866a2c247fb9eebe91a11cafd38fd4dd8b25efed Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 16:41:21 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 8545c51..04838f1 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: -- cgit v0.10.2 From 1de953e77b8c8b8cb6f734733cf20e95a1b0fbb8 Mon Sep 17 00:00:00 2001 From: Crt Mori Date: Fri, 2 Oct 2015 14:24:21 +0200 Subject: 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 diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c index 3fd3ba4..a570c2e 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; } -- cgit v0.10.2 From 6839c1b0700a79375639528985a0ec0fbd58cf9a Mon Sep 17 00:00:00 2001 From: Octavian Purdila Date: Wed, 23 Sep 2015 12:02:00 +0300 Subject: 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 diff --git a/drivers/iio/accel/stk8312.c b/drivers/iio/accel/stk8312.c index c764af2..a578694 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 80f77d8..a59f5d8 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 013b217..f45b06b 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, -- cgit v0.10.2 From 0f0796509c07c1c7b77671c05b2955beb245e367 Mon Sep 17 00:00:00 2001 From: Octavian Purdila Date: Wed, 23 Sep 2015 12:02:01 +0300 Subject: 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 diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c index 0104cde..6d19d46 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 3292bc0..18c1b06 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 771858c..9408ef3 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 a578694..85fe7f7 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 a59f5d8..5709d9e 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 82cdf50..dbf5e99 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 f45b06b..42d334b 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 d8e614c..1615b23 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 3d756bd..66cd09a 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)) { -- cgit v0.10.2 From 4011eda6139b315af3483c6de7dbdded3b07aedf Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 21 Sep 2015 12:55:13 +0200 Subject: 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 diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index 8172ae5..dd3e293 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 6d19d46..689b1e6 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); - 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); + 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 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; - - 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, - } - }; + int ret; + int total_length = samples * sample_length; + int i; + size_t step = regmap_get_raw_read_max(data->regmap); - 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; - } + if (!step || step > total_length) + step = total_length; + else if (step < total_length) + step = sample_length; - 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; -- cgit v0.10.2 From 19c95d63e7768fe8909775188f5ef948f7ce324a Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 21 Sep 2015 12:55:14 +0200 Subject: 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 diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c index 689b1e6..85b8196 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) -- cgit v0.10.2 From 55637c38377a301cd0768cee73021e43d05de543 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 21 Sep 2015 12:55:15 +0200 Subject: iio: bmc150: Split the driver into core and i2c Signed-off-by: Markus Pargmann Tested-by: Irina Tirdea Signed-off-by: Jonathan Cameron diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index dd3e293..bb00770 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 020dda0..8076436 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-core.c b/drivers/iio/accel/bmc150-accel-core.c new file mode 100644 index 0000000..2d33f1e --- /dev/null +++ b/drivers/iio/accel/bmc150-accel-core.c @@ -0,0 +1,1754 @@ +/* + * 3-axis accelerometer driver supporting following 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "bmc150-accel.h" + +#define BMC150_ACCEL_DRV_NAME "bmc150_accel" +#define BMC150_ACCEL_IRQ_NAME "bmc150_accel_event" + +#define BMC150_ACCEL_REG_CHIP_ID 0x00 + +#define BMC150_ACCEL_REG_INT_STATUS_2 0x0B +#define BMC150_ACCEL_ANY_MOTION_MASK 0x07 +#define BMC150_ACCEL_ANY_MOTION_BIT_X BIT(0) +#define BMC150_ACCEL_ANY_MOTION_BIT_Y BIT(1) +#define BMC150_ACCEL_ANY_MOTION_BIT_Z BIT(2) +#define BMC150_ACCEL_ANY_MOTION_BIT_SIGN BIT(3) + +#define BMC150_ACCEL_REG_PMU_LPW 0x11 +#define BMC150_ACCEL_PMU_MODE_MASK 0xE0 +#define BMC150_ACCEL_PMU_MODE_SHIFT 5 +#define BMC150_ACCEL_PMU_BIT_SLEEP_DUR_MASK 0x17 +#define BMC150_ACCEL_PMU_BIT_SLEEP_DUR_SHIFT 1 + +#define BMC150_ACCEL_REG_PMU_RANGE 0x0F + +#define BMC150_ACCEL_DEF_RANGE_2G 0x03 +#define BMC150_ACCEL_DEF_RANGE_4G 0x05 +#define BMC150_ACCEL_DEF_RANGE_8G 0x08 +#define BMC150_ACCEL_DEF_RANGE_16G 0x0C + +/* Default BW: 125Hz */ +#define BMC150_ACCEL_REG_PMU_BW 0x10 +#define BMC150_ACCEL_DEF_BW 125 + +#define BMC150_ACCEL_REG_INT_MAP_0 0x19 +#define BMC150_ACCEL_INT_MAP_0_BIT_SLOPE BIT(2) + +#define BMC150_ACCEL_REG_INT_MAP_1 0x1A +#define BMC150_ACCEL_INT_MAP_1_BIT_DATA BIT(0) +#define BMC150_ACCEL_INT_MAP_1_BIT_FWM BIT(1) +#define BMC150_ACCEL_INT_MAP_1_BIT_FFULL BIT(2) + +#define BMC150_ACCEL_REG_INT_RST_LATCH 0x21 +#define BMC150_ACCEL_INT_MODE_LATCH_RESET 0x80 +#define BMC150_ACCEL_INT_MODE_LATCH_INT 0x0F +#define BMC150_ACCEL_INT_MODE_NON_LATCH_INT 0x00 + +#define BMC150_ACCEL_REG_INT_EN_0 0x16 +#define BMC150_ACCEL_INT_EN_BIT_SLP_X BIT(0) +#define BMC150_ACCEL_INT_EN_BIT_SLP_Y BIT(1) +#define BMC150_ACCEL_INT_EN_BIT_SLP_Z BIT(2) + +#define BMC150_ACCEL_REG_INT_EN_1 0x17 +#define BMC150_ACCEL_INT_EN_BIT_DATA_EN BIT(4) +#define BMC150_ACCEL_INT_EN_BIT_FFULL_EN BIT(5) +#define BMC150_ACCEL_INT_EN_BIT_FWM_EN BIT(6) + +#define BMC150_ACCEL_REG_INT_OUT_CTRL 0x20 +#define BMC150_ACCEL_INT_OUT_CTRL_INT1_LVL BIT(0) + +#define BMC150_ACCEL_REG_INT_5 0x27 +#define BMC150_ACCEL_SLOPE_DUR_MASK 0x03 + +#define BMC150_ACCEL_REG_INT_6 0x28 +#define BMC150_ACCEL_SLOPE_THRES_MASK 0xFF + +/* Slope duration in terms of number of samples */ +#define BMC150_ACCEL_DEF_SLOPE_DURATION 1 +/* in terms of multiples of g's/LSB, based on range */ +#define BMC150_ACCEL_DEF_SLOPE_THRESHOLD 1 + +#define BMC150_ACCEL_REG_XOUT_L 0x02 + +#define BMC150_ACCEL_MAX_STARTUP_TIME_MS 100 + +/* Sleep Duration values */ +#define BMC150_ACCEL_SLEEP_500_MICRO 0x05 +#define BMC150_ACCEL_SLEEP_1_MS 0x06 +#define BMC150_ACCEL_SLEEP_2_MS 0x07 +#define BMC150_ACCEL_SLEEP_4_MS 0x08 +#define BMC150_ACCEL_SLEEP_6_MS 0x09 +#define BMC150_ACCEL_SLEEP_10_MS 0x0A +#define BMC150_ACCEL_SLEEP_25_MS 0x0B +#define BMC150_ACCEL_SLEEP_50_MS 0x0C +#define BMC150_ACCEL_SLEEP_100_MS 0x0D +#define BMC150_ACCEL_SLEEP_500_MS 0x0E +#define BMC150_ACCEL_SLEEP_1_SEC 0x0F + +#define BMC150_ACCEL_REG_TEMP 0x08 +#define BMC150_ACCEL_TEMP_CENTER_VAL 24 + +#define BMC150_ACCEL_AXIS_TO_REG(axis) (BMC150_ACCEL_REG_XOUT_L + (axis * 2)) +#define BMC150_AUTO_SUSPEND_DELAY_MS 2000 + +#define BMC150_ACCEL_REG_FIFO_STATUS 0x0E +#define BMC150_ACCEL_REG_FIFO_CONFIG0 0x30 +#define BMC150_ACCEL_REG_FIFO_CONFIG1 0x3E +#define BMC150_ACCEL_REG_FIFO_DATA 0x3F +#define BMC150_ACCEL_FIFO_LENGTH 32 + +enum bmc150_accel_axis { + AXIS_X, + AXIS_Y, + AXIS_Z, +}; + +enum bmc150_power_modes { + BMC150_ACCEL_SLEEP_MODE_NORMAL, + BMC150_ACCEL_SLEEP_MODE_DEEP_SUSPEND, + BMC150_ACCEL_SLEEP_MODE_LPM, + BMC150_ACCEL_SLEEP_MODE_SUSPEND = 0x04, +}; + +struct bmc150_scale_info { + int scale; + u8 reg_range; +}; + +struct bmc150_accel_chip_info { + const char *name; + u8 chip_id; + const struct iio_chan_spec *channels; + int num_channels; + const struct bmc150_scale_info scale_table[4]; +}; + +struct bmc150_accel_interrupt { + const struct bmc150_accel_interrupt_info *info; + atomic_t users; +}; + +struct bmc150_accel_trigger { + struct bmc150_accel_data *data; + struct iio_trigger *indio_trig; + int (*setup)(struct bmc150_accel_trigger *t, bool state); + int intr; + bool enabled; +}; + +enum bmc150_accel_interrupt_id { + BMC150_ACCEL_INT_DATA_READY, + BMC150_ACCEL_INT_ANY_MOTION, + BMC150_ACCEL_INT_WATERMARK, + BMC150_ACCEL_INTERRUPTS, +}; + +enum bmc150_accel_trigger_id { + BMC150_ACCEL_TRIGGER_DATA_READY, + BMC150_ACCEL_TRIGGER_ANY_MOTION, + BMC150_ACCEL_TRIGGERS, +}; + +struct bmc150_accel_data { + 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]; + struct mutex mutex; + u8 fifo_mode, watermark; + s16 buffer[8]; + u8 bw_bits; + u32 slope_dur; + u32 slope_thres; + u32 range; + int ev_enable_state; + int64_t timestamp, old_timestamp; /* Only used in hw fifo mode. */ + const struct bmc150_accel_chip_info *chip_info; +}; + +static const struct { + int val; + int val2; + u8 bw_bits; +} bmc150_accel_samp_freq_table[] = { {15, 620000, 0x08}, + {31, 260000, 0x09}, + {62, 500000, 0x0A}, + {125, 0, 0x0B}, + {250, 0, 0x0C}, + {500, 0, 0x0D}, + {1000, 0, 0x0E}, + {2000, 0, 0x0F} }; + +static const struct { + int bw_bits; + int msec; +} bmc150_accel_sample_upd_time[] = { {0x08, 64}, + {0x09, 32}, + {0x0A, 16}, + {0x0B, 8}, + {0x0C, 4}, + {0x0D, 2}, + {0x0E, 1}, + {0x0F, 1} }; + +static const struct { + int sleep_dur; + u8 reg_value; +} bmc150_accel_sleep_value_table[] = { {0, 0}, + {500, BMC150_ACCEL_SLEEP_500_MICRO}, + {1000, BMC150_ACCEL_SLEEP_1_MS}, + {2000, BMC150_ACCEL_SLEEP_2_MS}, + {4000, BMC150_ACCEL_SLEEP_4_MS}, + {6000, BMC150_ACCEL_SLEEP_6_MS}, + {10000, BMC150_ACCEL_SLEEP_10_MS}, + {25000, BMC150_ACCEL_SLEEP_25_MS}, + {50000, BMC150_ACCEL_SLEEP_50_MS}, + {100000, BMC150_ACCEL_SLEEP_100_MS}, + {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) +{ + int i; + int ret; + u8 lpw_bits; + int dur_val = -1; + + if (dur_us > 0) { + for (i = 0; i < ARRAY_SIZE(bmc150_accel_sleep_value_table); + ++i) { + if (bmc150_accel_sleep_value_table[i].sleep_dur == + dur_us) + dur_val = + bmc150_accel_sleep_value_table[i].reg_value; + } + } else { + dur_val = 0; + } + + if (dur_val < 0) + return -EINVAL; + + lpw_bits = mode << BMC150_ACCEL_PMU_MODE_SHIFT; + lpw_bits |= (dur_val << BMC150_ACCEL_PMU_BIT_SLEEP_DUR_SHIFT); + + 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->dev, "Error writing reg_pmu_lpw\n"); + return ret; + } + + return 0; +} + +static int bmc150_accel_set_bw(struct bmc150_accel_data *data, int val, + int val2) +{ + int i; + int ret; + + 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 = regmap_write(data->regmap, + BMC150_ACCEL_REG_PMU_BW, + bmc150_accel_samp_freq_table[i].bw_bits); + if (ret < 0) + return ret; + + data->bw_bits = + bmc150_accel_samp_freq_table[i].bw_bits; + return 0; + } + } + + return -EINVAL; +} + +static int bmc150_accel_update_slope(struct bmc150_accel_data *data) +{ + int ret; + + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_6, + data->slope_thres); + if (ret < 0) { + 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->dev, "Error updating reg_int_5\n"); + return ret; + } + + dev_dbg(data->dev, "%s: %x %x\n", __func__, data->slope_thres, + data->slope_dur); + + return ret; +} + +static int bmc150_accel_any_motion_setup(struct bmc150_accel_trigger *t, + bool state) +{ + if (state) + return bmc150_accel_update_slope(t->data); + + return 0; +} + +static int bmc150_accel_get_bw(struct bmc150_accel_data *data, int *val, + int *val2) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(bmc150_accel_samp_freq_table); ++i) { + if (bmc150_accel_samp_freq_table[i].bw_bits == data->bw_bits) { + *val = bmc150_accel_samp_freq_table[i].val; + *val2 = bmc150_accel_samp_freq_table[i].val2; + return IIO_VAL_INT_PLUS_MICRO; + } + } + + return -EINVAL; +} + +#ifdef CONFIG_PM +static int bmc150_accel_get_startup_times(struct bmc150_accel_data *data) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(bmc150_accel_sample_upd_time); ++i) { + if (bmc150_accel_sample_upd_time[i].bw_bits == data->bw_bits) + return bmc150_accel_sample_upd_time[i].msec; + } + + return BMC150_ACCEL_MAX_STARTUP_TIME_MS; +} + +static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on) +{ + int ret; + + if (on) { + ret = pm_runtime_get_sync(data->dev); + } else { + pm_runtime_mark_last_busy(data->dev); + ret = pm_runtime_put_autosuspend(data->dev); + } + + if (ret < 0) { + dev_err(data->dev, + "Failed: bmc150_accel_set_power_state for %d\n", on); + if (on) + pm_runtime_put_noidle(data->dev); + + return ret; + } + + return 0; +} +#else +static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on) +{ + return 0; +} +#endif + +static const struct bmc150_accel_interrupt_info { + u8 map_reg; + u8 map_bitmask; + u8 en_reg; + u8 en_bitmask; +} bmc150_accel_interrupts[BMC150_ACCEL_INTERRUPTS] = { + { /* data ready interrupt */ + .map_reg = BMC150_ACCEL_REG_INT_MAP_1, + .map_bitmask = BMC150_ACCEL_INT_MAP_1_BIT_DATA, + .en_reg = BMC150_ACCEL_REG_INT_EN_1, + .en_bitmask = BMC150_ACCEL_INT_EN_BIT_DATA_EN, + }, + { /* motion interrupt */ + .map_reg = BMC150_ACCEL_REG_INT_MAP_0, + .map_bitmask = BMC150_ACCEL_INT_MAP_0_BIT_SLOPE, + .en_reg = BMC150_ACCEL_REG_INT_EN_0, + .en_bitmask = BMC150_ACCEL_INT_EN_BIT_SLP_X | + BMC150_ACCEL_INT_EN_BIT_SLP_Y | + BMC150_ACCEL_INT_EN_BIT_SLP_Z + }, + { /* fifo watermark interrupt */ + .map_reg = BMC150_ACCEL_REG_INT_MAP_1, + .map_bitmask = BMC150_ACCEL_INT_MAP_1_BIT_FWM, + .en_reg = BMC150_ACCEL_REG_INT_EN_1, + .en_bitmask = BMC150_ACCEL_INT_EN_BIT_FWM_EN, + }, +}; + +static void bmc150_accel_interrupts_setup(struct iio_dev *indio_dev, + struct bmc150_accel_data *data) +{ + int i; + + for (i = 0; i < BMC150_ACCEL_INTERRUPTS; i++) + data->interrupts[i].info = &bmc150_accel_interrupts[i]; +} + +static int bmc150_accel_set_interrupt(struct bmc150_accel_data *data, int i, + bool state) +{ + struct bmc150_accel_interrupt *intr = &data->interrupts[i]; + const struct bmc150_accel_interrupt_info *info = intr->info; + int ret; + + if (state) { + if (atomic_inc_return(&intr->users) > 1) + return 0; + } else { + if (atomic_dec_return(&intr->users) > 0) + return 0; + } + + /* + * We will expect the enable and disable to do operation in reverse + * order. This will happen here anyway, as our resume operation uses + * sync mode runtime pm calls. The suspend operation will be delayed + * by autosuspend delay. + * So the disable operation will still happen in reverse order of + * enable operation. When runtime pm is disabled the mode is always on, + * so sequence doesn't matter. + */ + ret = bmc150_accel_set_power_state(data, state); + if (ret < 0) + return ret; + + /* map the interrupt to the appropriate pins */ + ret = regmap_update_bits(data->regmap, info->map_reg, info->map_bitmask, + (state ? info->map_bitmask : 0)); + if (ret < 0) { + dev_err(data->dev, "Error updating reg_int_map\n"); + goto out_fix_power_state; + } + + /* enable/disable the interrupt */ + ret = regmap_update_bits(data->regmap, info->en_reg, info->en_bitmask, + (state ? info->en_bitmask : 0)); + if (ret < 0) { + dev_err(data->dev, "Error updating reg_int_en\n"); + goto out_fix_power_state; + } + + if (state) + atomic_inc(&data->active_intr); + else + atomic_dec(&data->active_intr); + + return 0; + +out_fix_power_state: + bmc150_accel_set_power_state(data, false); + return ret; +} + +static int bmc150_accel_set_scale(struct bmc150_accel_data *data, int val) +{ + int ret, i; + + for (i = 0; i < ARRAY_SIZE(data->chip_info->scale_table); ++i) { + if (data->chip_info->scale_table[i].scale == val) { + ret = regmap_write(data->regmap, + BMC150_ACCEL_REG_PMU_RANGE, + data->chip_info->scale_table[i].reg_range); + if (ret < 0) { + dev_err(data->dev, + "Error writing pmu_range\n"); + return ret; + } + + data->range = data->chip_info->scale_table[i].reg_range; + return 0; + } + } + + return -EINVAL; +} + +static int bmc150_accel_get_temp(struct bmc150_accel_data *data, int *val) +{ + int ret; + unsigned int value; + + mutex_lock(&data->mutex); + + ret = regmap_read(data->regmap, BMC150_ACCEL_REG_TEMP, &value); + if (ret < 0) { + dev_err(data->dev, "Error reading reg_temp\n"); + mutex_unlock(&data->mutex); + return ret; + } + *val = sign_extend32(value, 7); + + mutex_unlock(&data->mutex); + + return IIO_VAL_INT; +} + +static int bmc150_accel_get_axis(struct bmc150_accel_data *data, + struct iio_chan_spec const *chan, + int *val) +{ + int ret; + int axis = chan->scan_index; + unsigned int raw_val; + + mutex_lock(&data->mutex); + ret = bmc150_accel_set_power_state(data, true); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + + ret = regmap_bulk_read(data->regmap, BMC150_ACCEL_AXIS_TO_REG(axis), + &raw_val, 2); + if (ret < 0) { + dev_err(data->dev, "Error reading axis %d\n", axis); + bmc150_accel_set_power_state(data, false); + mutex_unlock(&data->mutex); + return ret; + } + *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); + if (ret < 0) + return ret; + + return IIO_VAL_INT; +} + +static int bmc150_accel_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + int ret; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + switch (chan->type) { + case IIO_TEMP: + return bmc150_accel_get_temp(data, val); + case IIO_ACCEL: + if (iio_buffer_enabled(indio_dev)) + return -EBUSY; + else + return bmc150_accel_get_axis(data, chan, val); + default: + return -EINVAL; + } + case IIO_CHAN_INFO_OFFSET: + if (chan->type == IIO_TEMP) { + *val = BMC150_ACCEL_TEMP_CENTER_VAL; + return IIO_VAL_INT; + } else { + return -EINVAL; + } + case IIO_CHAN_INFO_SCALE: + *val = 0; + switch (chan->type) { + case IIO_TEMP: + *val2 = 500000; + return IIO_VAL_INT_PLUS_MICRO; + case IIO_ACCEL: + { + int i; + const struct bmc150_scale_info *si; + int st_size = ARRAY_SIZE(data->chip_info->scale_table); + + for (i = 0; i < st_size; ++i) { + si = &data->chip_info->scale_table[i]; + if (si->reg_range == data->range) { + *val2 = si->scale; + return IIO_VAL_INT_PLUS_MICRO; + } + } + return -EINVAL; + } + default: + return -EINVAL; + } + case IIO_CHAN_INFO_SAMP_FREQ: + mutex_lock(&data->mutex); + ret = bmc150_accel_get_bw(data, val, val2); + mutex_unlock(&data->mutex); + return ret; + default: + return -EINVAL; + } +} + +static int bmc150_accel_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + int ret; + + switch (mask) { + case IIO_CHAN_INFO_SAMP_FREQ: + mutex_lock(&data->mutex); + ret = bmc150_accel_set_bw(data, val, val2); + mutex_unlock(&data->mutex); + break; + case IIO_CHAN_INFO_SCALE: + if (val) + return -EINVAL; + + mutex_lock(&data->mutex); + ret = bmc150_accel_set_scale(data, val2); + mutex_unlock(&data->mutex); + return ret; + default: + ret = -EINVAL; + } + + return ret; +} + +static int bmc150_accel_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) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + + *val2 = 0; + switch (info) { + case IIO_EV_INFO_VALUE: + *val = data->slope_thres; + break; + case IIO_EV_INFO_PERIOD: + *val = data->slope_dur; + break; + default: + return -EINVAL; + } + + return IIO_VAL_INT; +} + +static int bmc150_accel_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) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + + if (data->ev_enable_state) + return -EBUSY; + + switch (info) { + case IIO_EV_INFO_VALUE: + data->slope_thres = val & BMC150_ACCEL_SLOPE_THRES_MASK; + break; + case IIO_EV_INFO_PERIOD: + data->slope_dur = val & BMC150_ACCEL_SLOPE_DUR_MASK; + break; + default: + return -EINVAL; + } + + return 0; +} + +static int bmc150_accel_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 bmc150_accel_data *data = iio_priv(indio_dev); + + return data->ev_enable_state; +} + +static int bmc150_accel_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 bmc150_accel_data *data = iio_priv(indio_dev); + int ret; + + if (state == data->ev_enable_state) + return 0; + + mutex_lock(&data->mutex); + + ret = bmc150_accel_set_interrupt(data, BMC150_ACCEL_INT_ANY_MOTION, + state); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + + data->ev_enable_state = state; + mutex_unlock(&data->mutex); + + return 0; +} + +static int bmc150_accel_validate_trigger(struct iio_dev *indio_dev, + struct iio_trigger *trig) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + int i; + + for (i = 0; i < BMC150_ACCEL_TRIGGERS; i++) { + if (data->triggers[i].indio_trig == trig) + return 0; + } + + return -EINVAL; +} + +static ssize_t bmc150_accel_get_fifo_watermark(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct iio_dev *indio_dev = dev_to_iio_dev(dev); + struct bmc150_accel_data *data = iio_priv(indio_dev); + int wm; + + mutex_lock(&data->mutex); + wm = data->watermark; + mutex_unlock(&data->mutex); + + return sprintf(buf, "%d\n", wm); +} + +static ssize_t bmc150_accel_get_fifo_state(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct iio_dev *indio_dev = dev_to_iio_dev(dev); + struct bmc150_accel_data *data = iio_priv(indio_dev); + bool state; + + mutex_lock(&data->mutex); + state = data->fifo_mode; + mutex_unlock(&data->mutex); + + return sprintf(buf, "%d\n", state); +} + +static IIO_CONST_ATTR(hwfifo_watermark_min, "1"); +static IIO_CONST_ATTR(hwfifo_watermark_max, + __stringify(BMC150_ACCEL_FIFO_LENGTH)); +static IIO_DEVICE_ATTR(hwfifo_enabled, S_IRUGO, + bmc150_accel_get_fifo_state, NULL, 0); +static IIO_DEVICE_ATTR(hwfifo_watermark, S_IRUGO, + bmc150_accel_get_fifo_watermark, NULL, 0); + +static const struct attribute *bmc150_accel_fifo_attributes[] = { + &iio_const_attr_hwfifo_watermark_min.dev_attr.attr, + &iio_const_attr_hwfifo_watermark_max.dev_attr.attr, + &iio_dev_attr_hwfifo_watermark.dev_attr.attr, + &iio_dev_attr_hwfifo_enabled.dev_attr.attr, + NULL, +}; + +static int bmc150_accel_set_watermark(struct iio_dev *indio_dev, unsigned val) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + + if (val > BMC150_ACCEL_FIFO_LENGTH) + val = BMC150_ACCEL_FIFO_LENGTH; + + mutex_lock(&data->mutex); + data->watermark = val; + mutex_unlock(&data->mutex); + + return 0; +} + +/* + * 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(struct bmc150_accel_data *data, + char *buffer, int samples) +{ + int sample_length = 3 * 2; + int ret; + int total_length = samples * sample_length; + int i; + size_t step = regmap_get_raw_read_max(data->regmap); + + if (!step || step > total_length) + step = total_length; + else if (step < total_length) + step = sample_length; + + /* + * 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(data->dev, "Error transferring data from fifo in single steps of %zu\n", + step); + + return ret; +} + +static int __bmc150_accel_fifo_flush(struct iio_dev *indio_dev, + unsigned samples, bool irq) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + int ret, i; + u8 count; + u16 buffer[BMC150_ACCEL_FIFO_LENGTH * 3]; + int64_t tstamp; + uint64_t sample_period; + unsigned int val; + + ret = regmap_read(data->regmap, BMC150_ACCEL_REG_FIFO_STATUS, &val); + if (ret < 0) { + dev_err(data->dev, "Error reading reg_fifo_status\n"); + return ret; + } + + count = val & 0x7F; + + if (!count) + return 0; + + /* + * If we getting called from IRQ handler we know the stored timestamp is + * fairly accurate for the last stored sample. Otherwise, if we are + * called as a result of a read operation from userspace and hence + * before the watermark interrupt was triggered, take a timestamp + * now. We can fall anywhere in between two samples so the error in this + * case is at most one sample period. + */ + if (!irq) { + data->old_timestamp = data->timestamp; + data->timestamp = iio_get_time_ns(); + } + + /* + * Approximate timestamps for each of the sample based on the sampling + * frequency, timestamp for last sample and number of samples. + * + * Note that we can't use the current bandwidth settings to compute the + * sample period because the sample rate varies with the device + * (e.g. between 31.70ms to 32.20ms for a bandwidth of 15.63HZ). That + * small variation adds when we store a large number of samples and + * creates significant jitter between the last and first samples in + * different batches (e.g. 32ms vs 21ms). + * + * To avoid this issue we compute the actual sample period ourselves + * based on the timestamp delta between the last two flush operations. + */ + sample_period = (data->timestamp - data->old_timestamp); + do_div(sample_period, count); + tstamp = data->timestamp - (count - 1) * sample_period; + + if (samples && count > samples) + count = samples; + + ret = bmc150_accel_fifo_transfer(data, (u8 *)buffer, count); + if (ret) + return ret; + + /* + * Ideally we want the IIO core to handle the demux when running in fifo + * mode but not when running in triggered buffer mode. Unfortunately + * this does not seem to be possible, so stick with driver demux for + * now. + */ + for (i = 0; i < count; i++) { + u16 sample[8]; + int j, bit; + + j = 0; + for_each_set_bit(bit, indio_dev->active_scan_mask, + indio_dev->masklength) + memcpy(&sample[j++], &buffer[i * 3 + bit], 2); + + iio_push_to_buffers_with_timestamp(indio_dev, sample, tstamp); + + tstamp += sample_period; + } + + return count; +} + +static int bmc150_accel_fifo_flush(struct iio_dev *indio_dev, unsigned samples) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + int ret; + + mutex_lock(&data->mutex); + ret = __bmc150_accel_fifo_flush(indio_dev, samples, false); + mutex_unlock(&data->mutex); + + return ret; +} + +static IIO_CONST_ATTR_SAMP_FREQ_AVAIL( + "15.620000 31.260000 62.50000 125 250 500 1000 2000"); + +static struct attribute *bmc150_accel_attributes[] = { + &iio_const_attr_sampling_frequency_available.dev_attr.attr, + NULL, +}; + +static const struct attribute_group bmc150_accel_attrs_group = { + .attrs = bmc150_accel_attributes, +}; + +static const struct iio_event_spec bmc150_accel_event = { + .type = IIO_EV_TYPE_ROC, + .dir = IIO_EV_DIR_EITHER, + .mask_separate = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_ENABLE) | + BIT(IIO_EV_INFO_PERIOD) +}; + +#define BMC150_ACCEL_CHANNEL(_axis, bits) { \ + .type = IIO_ACCEL, \ + .modified = 1, \ + .channel2 = IIO_MOD_##_axis, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) | \ + BIT(IIO_CHAN_INFO_SAMP_FREQ), \ + .scan_index = AXIS_##_axis, \ + .scan_type = { \ + .sign = 's', \ + .realbits = (bits), \ + .storagebits = 16, \ + .shift = 16 - (bits), \ + }, \ + .event_spec = &bmc150_accel_event, \ + .num_event_specs = 1 \ +} + +#define BMC150_ACCEL_CHANNELS(bits) { \ + { \ + .type = IIO_TEMP, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \ + BIT(IIO_CHAN_INFO_SCALE) | \ + BIT(IIO_CHAN_INFO_OFFSET), \ + .scan_index = -1, \ + }, \ + BMC150_ACCEL_CHANNEL(X, bits), \ + BMC150_ACCEL_CHANNEL(Y, bits), \ + BMC150_ACCEL_CHANNEL(Z, bits), \ + IIO_CHAN_SOFT_TIMESTAMP(3), \ +} + +static const struct iio_chan_spec bma222e_accel_channels[] = + BMC150_ACCEL_CHANNELS(8); +static const struct iio_chan_spec bma250e_accel_channels[] = + BMC150_ACCEL_CHANNELS(10); +static const struct iio_chan_spec bmc150_accel_channels[] = + BMC150_ACCEL_CHANNELS(12); +static const struct iio_chan_spec bma280_accel_channels[] = + BMC150_ACCEL_CHANNELS(14); + +static const struct bmc150_accel_chip_info bmc150_accel_chip_info_tbl[] = { + [bmc150] = { + .name = "BMC150A", + .chip_id = 0xFA, + .channels = bmc150_accel_channels, + .num_channels = ARRAY_SIZE(bmc150_accel_channels), + .scale_table = { {9610, BMC150_ACCEL_DEF_RANGE_2G}, + {19122, BMC150_ACCEL_DEF_RANGE_4G}, + {38344, BMC150_ACCEL_DEF_RANGE_8G}, + {76590, BMC150_ACCEL_DEF_RANGE_16G} }, + }, + [bmi055] = { + .name = "BMI055A", + .chip_id = 0xFA, + .channels = bmc150_accel_channels, + .num_channels = ARRAY_SIZE(bmc150_accel_channels), + .scale_table = { {9610, BMC150_ACCEL_DEF_RANGE_2G}, + {19122, BMC150_ACCEL_DEF_RANGE_4G}, + {38344, BMC150_ACCEL_DEF_RANGE_8G}, + {76590, BMC150_ACCEL_DEF_RANGE_16G} }, + }, + [bma255] = { + .name = "BMA0255", + .chip_id = 0xFA, + .channels = bmc150_accel_channels, + .num_channels = ARRAY_SIZE(bmc150_accel_channels), + .scale_table = { {9610, BMC150_ACCEL_DEF_RANGE_2G}, + {19122, BMC150_ACCEL_DEF_RANGE_4G}, + {38344, BMC150_ACCEL_DEF_RANGE_8G}, + {76590, BMC150_ACCEL_DEF_RANGE_16G} }, + }, + [bma250e] = { + .name = "BMA250E", + .chip_id = 0xF9, + .channels = bma250e_accel_channels, + .num_channels = ARRAY_SIZE(bma250e_accel_channels), + .scale_table = { {38344, BMC150_ACCEL_DEF_RANGE_2G}, + {76590, BMC150_ACCEL_DEF_RANGE_4G}, + {153277, BMC150_ACCEL_DEF_RANGE_8G}, + {306457, BMC150_ACCEL_DEF_RANGE_16G} }, + }, + [bma222e] = { + .name = "BMA222E", + .chip_id = 0xF8, + .channels = bma222e_accel_channels, + .num_channels = ARRAY_SIZE(bma222e_accel_channels), + .scale_table = { {153277, BMC150_ACCEL_DEF_RANGE_2G}, + {306457, BMC150_ACCEL_DEF_RANGE_4G}, + {612915, BMC150_ACCEL_DEF_RANGE_8G}, + {1225831, BMC150_ACCEL_DEF_RANGE_16G} }, + }, + [bma280] = { + .name = "BMA0280", + .chip_id = 0xFB, + .channels = bma280_accel_channels, + .num_channels = ARRAY_SIZE(bma280_accel_channels), + .scale_table = { {2392, BMC150_ACCEL_DEF_RANGE_2G}, + {4785, BMC150_ACCEL_DEF_RANGE_4G}, + {9581, BMC150_ACCEL_DEF_RANGE_8G}, + {19152, BMC150_ACCEL_DEF_RANGE_16G} }, + }, +}; + +static const struct iio_info bmc150_accel_info = { + .attrs = &bmc150_accel_attrs_group, + .read_raw = bmc150_accel_read_raw, + .write_raw = bmc150_accel_write_raw, + .read_event_value = bmc150_accel_read_event, + .write_event_value = bmc150_accel_write_event, + .write_event_config = bmc150_accel_write_event_config, + .read_event_config = bmc150_accel_read_event_config, + .driver_module = THIS_MODULE, +}; + +static const struct iio_info bmc150_accel_info_fifo = { + .attrs = &bmc150_accel_attrs_group, + .read_raw = bmc150_accel_read_raw, + .write_raw = bmc150_accel_write_raw, + .read_event_value = bmc150_accel_read_event, + .write_event_value = bmc150_accel_write_event, + .write_event_config = bmc150_accel_write_event_config, + .read_event_config = bmc150_accel_read_event_config, + .validate_trigger = bmc150_accel_validate_trigger, + .hwfifo_set_watermark = bmc150_accel_set_watermark, + .hwfifo_flush_to_buffer = bmc150_accel_fifo_flush, + .driver_module = THIS_MODULE, +}; + +static irqreturn_t bmc150_accel_trigger_handler(int irq, void *p) +{ + struct iio_poll_func *pf = 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 = 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++] = raw_val; + } + mutex_unlock(&data->mutex); + + iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, + pf->timestamp); +err_read: + iio_trigger_notify_done(indio_dev->trig); + + return IRQ_HANDLED; +} + +static int bmc150_accel_trig_try_reen(struct iio_trigger *trig) +{ + struct bmc150_accel_trigger *t = iio_trigger_get_drvdata(trig); + struct bmc150_accel_data *data = t->data; + int ret; + + /* new data interrupts don't need ack */ + if (t == &t->data->triggers[BMC150_ACCEL_TRIGGER_DATA_READY]) + return 0; + + mutex_lock(&data->mutex); + /* clear any latched interrupt */ + 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->dev, + "Error writing reg_int_rst_latch\n"); + return ret; + } + + return 0; +} + +static int bmc150_accel_trigger_set_state(struct iio_trigger *trig, + bool state) +{ + struct bmc150_accel_trigger *t = iio_trigger_get_drvdata(trig); + struct bmc150_accel_data *data = t->data; + int ret; + + mutex_lock(&data->mutex); + + if (t->enabled == state) { + mutex_unlock(&data->mutex); + return 0; + } + + if (t->setup) { + ret = t->setup(t, state); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + } + + ret = bmc150_accel_set_interrupt(data, t->intr, state); + if (ret < 0) { + mutex_unlock(&data->mutex); + return ret; + } + + t->enabled = state; + + mutex_unlock(&data->mutex); + + return ret; +} + +static const struct iio_trigger_ops bmc150_accel_trigger_ops = { + .set_trigger_state = bmc150_accel_trigger_set_state, + .try_reenable = bmc150_accel_trig_try_reen, + .owner = THIS_MODULE, +}; + +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 = regmap_read(data->regmap, BMC150_ACCEL_REG_INT_STATUS_2, &val); + if (ret < 0) { + dev_err(data->dev, "Error reading reg_int_status_2\n"); + return ret; + } + + if (val & BMC150_ACCEL_ANY_MOTION_BIT_SIGN) + dir = IIO_EV_DIR_FALLING; + else + dir = IIO_EV_DIR_RISING; + + if (val & BMC150_ACCEL_ANY_MOTION_BIT_X) + iio_push_event(indio_dev, + IIO_MOD_EVENT_CODE(IIO_ACCEL, + 0, + IIO_MOD_X, + IIO_EV_TYPE_ROC, + dir), + data->timestamp); + + if (val & BMC150_ACCEL_ANY_MOTION_BIT_Y) + iio_push_event(indio_dev, + IIO_MOD_EVENT_CODE(IIO_ACCEL, + 0, + IIO_MOD_Y, + IIO_EV_TYPE_ROC, + dir), + data->timestamp); + + if (val & BMC150_ACCEL_ANY_MOTION_BIT_Z) + iio_push_event(indio_dev, + IIO_MOD_EVENT_CODE(IIO_ACCEL, + 0, + IIO_MOD_Z, + IIO_EV_TYPE_ROC, + dir), + data->timestamp); + + return ret; +} + +static irqreturn_t bmc150_accel_irq_thread_handler(int irq, void *private) +{ + struct iio_dev *indio_dev = private; + struct bmc150_accel_data *data = iio_priv(indio_dev); + bool ack = false; + int ret; + + mutex_lock(&data->mutex); + + if (data->fifo_mode) { + ret = __bmc150_accel_fifo_flush(indio_dev, + BMC150_ACCEL_FIFO_LENGTH, true); + if (ret > 0) + ack = true; + } + + if (data->ev_enable_state) { + ret = bmc150_accel_handle_roc_event(indio_dev); + if (ret > 0) + ack = true; + } + + if (ack) { + 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->dev, "Error writing reg_int_rst_latch\n"); + + ret = IRQ_HANDLED; + } else { + ret = IRQ_NONE; + } + + mutex_unlock(&data->mutex); + + return ret; +} + +static irqreturn_t bmc150_accel_irq_handler(int irq, void *private) +{ + struct iio_dev *indio_dev = private; + struct bmc150_accel_data *data = iio_priv(indio_dev); + bool ack = false; + int i; + + data->old_timestamp = data->timestamp; + data->timestamp = iio_get_time_ns(); + + for (i = 0; i < BMC150_ACCEL_TRIGGERS; i++) { + if (data->triggers[i].enabled) { + iio_trigger_poll(data->triggers[i].indio_trig); + ack = true; + break; + } + } + + if (data->ev_enable_state || data->fifo_mode) + return IRQ_WAKE_THREAD; + + if (ack) + return IRQ_HANDLED; + + return IRQ_NONE; +} + +static const struct { + int intr; + const char *name; + int (*setup)(struct bmc150_accel_trigger *t, bool state); +} bmc150_accel_triggers[BMC150_ACCEL_TRIGGERS] = { + { + .intr = 0, + .name = "%s-dev%d", + }, + { + .intr = 1, + .name = "%s-any-motion-dev%d", + .setup = bmc150_accel_any_motion_setup, + }, +}; + +static void bmc150_accel_unregister_triggers(struct bmc150_accel_data *data, + int from) +{ + int i; + + for (i = from; i >= 0; i--) { + if (data->triggers[i].indio_trig) { + iio_trigger_unregister(data->triggers[i].indio_trig); + data->triggers[i].indio_trig = NULL; + } + } +} + +static int bmc150_accel_triggers_setup(struct iio_dev *indio_dev, + struct bmc150_accel_data *data) +{ + int i, ret; + + for (i = 0; i < BMC150_ACCEL_TRIGGERS; i++) { + struct bmc150_accel_trigger *t = &data->triggers[i]; + + t->indio_trig = devm_iio_trigger_alloc(data->dev, + bmc150_accel_triggers[i].name, + indio_dev->name, + indio_dev->id); + if (!t->indio_trig) { + ret = -ENOMEM; + break; + } + + 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; + t->setup = bmc150_accel_triggers[i].setup; + iio_trigger_set_drvdata(t->indio_trig, t); + + ret = iio_trigger_register(t->indio_trig); + if (ret) + break; + } + + if (ret) + bmc150_accel_unregister_triggers(data, i - 1); + + return ret; +} + +#define BMC150_ACCEL_FIFO_MODE_STREAM 0x80 +#define BMC150_ACCEL_FIFO_MODE_FIFO 0x40 +#define BMC150_ACCEL_FIFO_MODE_BYPASS 0x00 + +static int bmc150_accel_fifo_set_mode(struct bmc150_accel_data *data) +{ + u8 reg = BMC150_ACCEL_REG_FIFO_CONFIG1; + int ret; + + ret = regmap_write(data->regmap, reg, data->fifo_mode); + if (ret < 0) { + dev_err(data->dev, "Error writing reg_fifo_config1\n"); + return ret; + } + + if (!data->fifo_mode) + return 0; + + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_FIFO_CONFIG0, + data->watermark); + if (ret < 0) + dev_err(data->dev, "Error writing reg_fifo_config0\n"); + + return ret; +} + +static int bmc150_accel_buffer_preenable(struct iio_dev *indio_dev) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + + return bmc150_accel_set_power_state(data, true); +} + +static int bmc150_accel_buffer_postenable(struct iio_dev *indio_dev) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + int ret = 0; + + if (indio_dev->currentmode == INDIO_BUFFER_TRIGGERED) + return iio_triggered_buffer_postenable(indio_dev); + + mutex_lock(&data->mutex); + + if (!data->watermark) + goto out; + + ret = bmc150_accel_set_interrupt(data, BMC150_ACCEL_INT_WATERMARK, + true); + if (ret) + goto out; + + data->fifo_mode = BMC150_ACCEL_FIFO_MODE_FIFO; + + ret = bmc150_accel_fifo_set_mode(data); + if (ret) { + data->fifo_mode = 0; + bmc150_accel_set_interrupt(data, BMC150_ACCEL_INT_WATERMARK, + false); + } + +out: + mutex_unlock(&data->mutex); + + return ret; +} + +static int bmc150_accel_buffer_predisable(struct iio_dev *indio_dev) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + + if (indio_dev->currentmode == INDIO_BUFFER_TRIGGERED) + return iio_triggered_buffer_predisable(indio_dev); + + mutex_lock(&data->mutex); + + if (!data->fifo_mode) + goto out; + + bmc150_accel_set_interrupt(data, BMC150_ACCEL_INT_WATERMARK, false); + __bmc150_accel_fifo_flush(indio_dev, BMC150_ACCEL_FIFO_LENGTH, false); + data->fifo_mode = 0; + bmc150_accel_fifo_set_mode(data); + +out: + mutex_unlock(&data->mutex); + + return 0; +} + +static int bmc150_accel_buffer_postdisable(struct iio_dev *indio_dev) +{ + struct bmc150_accel_data *data = iio_priv(indio_dev); + + return bmc150_accel_set_power_state(data, false); +} + +static const struct iio_buffer_setup_ops bmc150_accel_buffer_ops = { + .preenable = bmc150_accel_buffer_preenable, + .postenable = bmc150_accel_buffer_postenable, + .predisable = bmc150_accel_buffer_predisable, + .postdisable = bmc150_accel_buffer_postdisable, +}; + +static int bmc150_accel_chip_init(struct bmc150_accel_data *data) +{ + int ret, i; + unsigned int val; + + ret = regmap_read(data->regmap, BMC150_ACCEL_REG_CHIP_ID, &val); + if (ret < 0) { + dev_err(data->dev, + "Error: Reading chip id\n"); + return ret; + } + + 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]; + break; + } + } + + if (!data->chip_info) { + dev_err(data->dev, "Invalid chip %x\n", val); + return -ENODEV; + } + + ret = bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0); + if (ret < 0) + return ret; + + /* Set Bandwidth */ + ret = bmc150_accel_set_bw(data, BMC150_ACCEL_DEF_BW, 0); + if (ret < 0) + return ret; + + /* Set Default Range */ + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_PMU_RANGE, + BMC150_ACCEL_DEF_RANGE_4G); + if (ret < 0) { + dev_err(data->dev, + "Error writing reg_pmu_range\n"); + return ret; + } + + data->range = BMC150_ACCEL_DEF_RANGE_4G; + + /* Set default slope duration and thresholds */ + data->slope_thres = BMC150_ACCEL_DEF_SLOPE_THRESHOLD; + data->slope_dur = BMC150_ACCEL_DEF_SLOPE_DURATION; + ret = bmc150_accel_update_slope(data); + if (ret < 0) + return ret; + + /* Set default as latched interrupts */ + 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->dev, + "Error writing reg_int_rst_latch\n"); + return ret; + } + + return 0; +} + +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; + + 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 = irq; + + data->regmap = regmap; + + ret = bmc150_accel_chip_init(data); + if (ret < 0) + return ret; + + mutex_init(&data->mutex); + + 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; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->info = &bmc150_accel_info; + + ret = iio_triggered_buffer_setup(indio_dev, + &iio_pollfunc_store_time, + bmc150_accel_trigger_handler, + &bmc150_accel_buffer_ops); + if (ret < 0) { + dev_err(data->dev, "Failed: iio triggered buffer setup\n"); + return ret; + } + + if (data->irq > 0) { + ret = devm_request_threaded_irq( + data->dev, data->irq, + bmc150_accel_irq_handler, + bmc150_accel_irq_thread_handler, + IRQF_TRIGGER_RISING, + BMC150_ACCEL_IRQ_NAME, + indio_dev); + if (ret) + goto err_buffer_cleanup; + + /* + * Set latched mode interrupt. While certain interrupts are + * non-latched regardless of this settings (e.g. new data) we + * want to use latch mode when we can to prevent interrupt + * flooding. + */ + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_RST_LATCH, + BMC150_ACCEL_INT_MODE_LATCH_RESET); + if (ret < 0) { + dev_err(data->dev, "Error writing reg_int_rst_latch\n"); + goto err_buffer_cleanup; + } + + bmc150_accel_interrupts_setup(indio_dev, data); + + ret = bmc150_accel_triggers_setup(indio_dev, data); + if (ret) + goto err_buffer_cleanup; + + if (block_supported) { + indio_dev->modes |= INDIO_BUFFER_SOFTWARE; + indio_dev->info = &bmc150_accel_info_fifo; + indio_dev->buffer->attrs = bmc150_accel_fifo_attributes; + } + } + + ret = iio_device_register(indio_dev); + if (ret < 0) { + dev_err(dev, "Unable to register iio device\n"); + goto err_trigger_unregister; + } + + ret = pm_runtime_set_active(dev); + if (ret) + goto err_iio_unregister; + + pm_runtime_enable(dev); + pm_runtime_set_autosuspend_delay(dev, BMC150_AUTO_SUSPEND_DELAY_MS); + pm_runtime_use_autosuspend(dev); + + return 0; + +err_iio_unregister: + iio_device_unregister(indio_dev); +err_trigger_unregister: + bmc150_accel_unregister_triggers(data, BMC150_ACCEL_TRIGGERS - 1); +err_buffer_cleanup: + iio_triggered_buffer_cleanup(indio_dev); + + return ret; +} +EXPORT_SYMBOL_GPL(bmc150_accel_core_probe); + +int bmc150_accel_core_remove(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmc150_accel_data *data = iio_priv(indio_dev); + + pm_runtime_disable(data->dev); + pm_runtime_set_suspended(data->dev); + pm_runtime_put_noidle(data->dev); + + iio_device_unregister(indio_dev); + + bmc150_accel_unregister_triggers(data, BMC150_ACCEL_TRIGGERS - 1); + + iio_triggered_buffer_cleanup(indio_dev); + + mutex_lock(&data->mutex); + bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_DEEP_SUSPEND, 0); + mutex_unlock(&data->mutex); + + return 0; +} +EXPORT_SYMBOL_GPL(bmc150_accel_core_remove); + +#ifdef CONFIG_PM_SLEEP +static int bmc150_accel_suspend(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmc150_accel_data *data = iio_priv(indio_dev); + + mutex_lock(&data->mutex); + bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_SUSPEND, 0); + mutex_unlock(&data->mutex); + + return 0; +} + +static int bmc150_accel_resume(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmc150_accel_data *data = iio_priv(indio_dev); + + mutex_lock(&data->mutex); + if (atomic_read(&data->active_intr)) + bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0); + bmc150_accel_fifo_set_mode(data); + mutex_unlock(&data->mutex); + + return 0; +} +#endif + +#ifdef CONFIG_PM +static int bmc150_accel_runtime_suspend(struct device *dev) +{ + struct iio_dev *indio_dev = dev_get_drvdata(dev); + struct bmc150_accel_data *data = iio_priv(indio_dev); + int ret; + + dev_dbg(data->dev, __func__); + ret = bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_SUSPEND, 0); + if (ret < 0) + return -EAGAIN; + + return 0; +} + +static int bmc150_accel_runtime_resume(struct device *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->dev, __func__); + + ret = bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0); + if (ret < 0) + return ret; + ret = bmc150_accel_fifo_set_mode(data); + if (ret < 0) + return ret; + + sleep_val = bmc150_accel_get_startup_times(data); + if (sleep_val < 20) + usleep_range(sleep_val * 1000, 20000); + else + msleep_interruptible(sleep_val); + + return 0; +} +#endif + +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) +}; +EXPORT_SYMBOL_GPL(bmc150_accel_pm_ops); + +MODULE_AUTHOR("Srinivas Pandruvada "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("BMC150 accelerometer driver"); diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c new file mode 100644 index 0000000..b41404b --- /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.c b/drivers/iio/accel/bmc150-accel.c deleted file mode 100644 index 85b8196..0000000 --- a/drivers/iio/accel/bmc150-accel.c +++ /dev/null @@ -1,1806 +0,0 @@ -/* - * 3-axis accelerometer driver supporting following 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define BMC150_ACCEL_DRV_NAME "bmc150_accel" -#define BMC150_ACCEL_IRQ_NAME "bmc150_accel_event" - -#define BMC150_ACCEL_REG_CHIP_ID 0x00 - -#define BMC150_ACCEL_REG_INT_STATUS_2 0x0B -#define BMC150_ACCEL_ANY_MOTION_MASK 0x07 -#define BMC150_ACCEL_ANY_MOTION_BIT_X BIT(0) -#define BMC150_ACCEL_ANY_MOTION_BIT_Y BIT(1) -#define BMC150_ACCEL_ANY_MOTION_BIT_Z BIT(2) -#define BMC150_ACCEL_ANY_MOTION_BIT_SIGN BIT(3) - -#define BMC150_ACCEL_REG_PMU_LPW 0x11 -#define BMC150_ACCEL_PMU_MODE_MASK 0xE0 -#define BMC150_ACCEL_PMU_MODE_SHIFT 5 -#define BMC150_ACCEL_PMU_BIT_SLEEP_DUR_MASK 0x17 -#define BMC150_ACCEL_PMU_BIT_SLEEP_DUR_SHIFT 1 - -#define BMC150_ACCEL_REG_PMU_RANGE 0x0F - -#define BMC150_ACCEL_DEF_RANGE_2G 0x03 -#define BMC150_ACCEL_DEF_RANGE_4G 0x05 -#define BMC150_ACCEL_DEF_RANGE_8G 0x08 -#define BMC150_ACCEL_DEF_RANGE_16G 0x0C - -/* Default BW: 125Hz */ -#define BMC150_ACCEL_REG_PMU_BW 0x10 -#define BMC150_ACCEL_DEF_BW 125 - -#define BMC150_ACCEL_REG_INT_MAP_0 0x19 -#define BMC150_ACCEL_INT_MAP_0_BIT_SLOPE BIT(2) - -#define BMC150_ACCEL_REG_INT_MAP_1 0x1A -#define BMC150_ACCEL_INT_MAP_1_BIT_DATA BIT(0) -#define BMC150_ACCEL_INT_MAP_1_BIT_FWM BIT(1) -#define BMC150_ACCEL_INT_MAP_1_BIT_FFULL BIT(2) - -#define BMC150_ACCEL_REG_INT_RST_LATCH 0x21 -#define BMC150_ACCEL_INT_MODE_LATCH_RESET 0x80 -#define BMC150_ACCEL_INT_MODE_LATCH_INT 0x0F -#define BMC150_ACCEL_INT_MODE_NON_LATCH_INT 0x00 - -#define BMC150_ACCEL_REG_INT_EN_0 0x16 -#define BMC150_ACCEL_INT_EN_BIT_SLP_X BIT(0) -#define BMC150_ACCEL_INT_EN_BIT_SLP_Y BIT(1) -#define BMC150_ACCEL_INT_EN_BIT_SLP_Z BIT(2) - -#define BMC150_ACCEL_REG_INT_EN_1 0x17 -#define BMC150_ACCEL_INT_EN_BIT_DATA_EN BIT(4) -#define BMC150_ACCEL_INT_EN_BIT_FFULL_EN BIT(5) -#define BMC150_ACCEL_INT_EN_BIT_FWM_EN BIT(6) - -#define BMC150_ACCEL_REG_INT_OUT_CTRL 0x20 -#define BMC150_ACCEL_INT_OUT_CTRL_INT1_LVL BIT(0) - -#define BMC150_ACCEL_REG_INT_5 0x27 -#define BMC150_ACCEL_SLOPE_DUR_MASK 0x03 - -#define BMC150_ACCEL_REG_INT_6 0x28 -#define BMC150_ACCEL_SLOPE_THRES_MASK 0xFF - -/* Slope duration in terms of number of samples */ -#define BMC150_ACCEL_DEF_SLOPE_DURATION 1 -/* in terms of multiples of g's/LSB, based on range */ -#define BMC150_ACCEL_DEF_SLOPE_THRESHOLD 1 - -#define BMC150_ACCEL_REG_XOUT_L 0x02 - -#define BMC150_ACCEL_MAX_STARTUP_TIME_MS 100 - -/* Sleep Duration values */ -#define BMC150_ACCEL_SLEEP_500_MICRO 0x05 -#define BMC150_ACCEL_SLEEP_1_MS 0x06 -#define BMC150_ACCEL_SLEEP_2_MS 0x07 -#define BMC150_ACCEL_SLEEP_4_MS 0x08 -#define BMC150_ACCEL_SLEEP_6_MS 0x09 -#define BMC150_ACCEL_SLEEP_10_MS 0x0A -#define BMC150_ACCEL_SLEEP_25_MS 0x0B -#define BMC150_ACCEL_SLEEP_50_MS 0x0C -#define BMC150_ACCEL_SLEEP_100_MS 0x0D -#define BMC150_ACCEL_SLEEP_500_MS 0x0E -#define BMC150_ACCEL_SLEEP_1_SEC 0x0F - -#define BMC150_ACCEL_REG_TEMP 0x08 -#define BMC150_ACCEL_TEMP_CENTER_VAL 24 - -#define BMC150_ACCEL_AXIS_TO_REG(axis) (BMC150_ACCEL_REG_XOUT_L + (axis * 2)) -#define BMC150_AUTO_SUSPEND_DELAY_MS 2000 - -#define BMC150_ACCEL_REG_FIFO_STATUS 0x0E -#define BMC150_ACCEL_REG_FIFO_CONFIG0 0x30 -#define BMC150_ACCEL_REG_FIFO_CONFIG1 0x3E -#define BMC150_ACCEL_REG_FIFO_DATA 0x3F -#define BMC150_ACCEL_FIFO_LENGTH 32 - -enum bmc150_accel_axis { - AXIS_X, - AXIS_Y, - AXIS_Z, -}; - -enum bmc150_power_modes { - BMC150_ACCEL_SLEEP_MODE_NORMAL, - BMC150_ACCEL_SLEEP_MODE_DEEP_SUSPEND, - BMC150_ACCEL_SLEEP_MODE_LPM, - BMC150_ACCEL_SLEEP_MODE_SUSPEND = 0x04, -}; - -struct bmc150_scale_info { - int scale; - u8 reg_range; -}; - -struct bmc150_accel_chip_info { - const char *name; - u8 chip_id; - const struct iio_chan_spec *channels; - int num_channels; - const struct bmc150_scale_info scale_table[4]; -}; - -struct bmc150_accel_interrupt { - const struct bmc150_accel_interrupt_info *info; - atomic_t users; -}; - -struct bmc150_accel_trigger { - struct bmc150_accel_data *data; - struct iio_trigger *indio_trig; - int (*setup)(struct bmc150_accel_trigger *t, bool state); - int intr; - bool enabled; -}; - -enum bmc150_accel_interrupt_id { - BMC150_ACCEL_INT_DATA_READY, - BMC150_ACCEL_INT_ANY_MOTION, - BMC150_ACCEL_INT_WATERMARK, - BMC150_ACCEL_INTERRUPTS, -}; - -enum bmc150_accel_trigger_id { - BMC150_ACCEL_TRIGGER_DATA_READY, - BMC150_ACCEL_TRIGGER_ANY_MOTION, - BMC150_ACCEL_TRIGGERS, -}; - -struct bmc150_accel_data { - 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]; - struct mutex mutex; - u8 fifo_mode, watermark; - s16 buffer[8]; - u8 bw_bits; - u32 slope_dur; - u32 slope_thres; - u32 range; - int ev_enable_state; - int64_t timestamp, old_timestamp; /* Only used in hw fifo mode. */ - const struct bmc150_accel_chip_info *chip_info; -}; - -static const struct { - int val; - int val2; - u8 bw_bits; -} bmc150_accel_samp_freq_table[] = { {15, 620000, 0x08}, - {31, 260000, 0x09}, - {62, 500000, 0x0A}, - {125, 0, 0x0B}, - {250, 0, 0x0C}, - {500, 0, 0x0D}, - {1000, 0, 0x0E}, - {2000, 0, 0x0F} }; - -static const struct { - int bw_bits; - int msec; -} bmc150_accel_sample_upd_time[] = { {0x08, 64}, - {0x09, 32}, - {0x0A, 16}, - {0x0B, 8}, - {0x0C, 4}, - {0x0D, 2}, - {0x0E, 1}, - {0x0F, 1} }; - -static const struct { - int sleep_dur; - u8 reg_value; -} bmc150_accel_sleep_value_table[] = { {0, 0}, - {500, BMC150_ACCEL_SLEEP_500_MICRO}, - {1000, BMC150_ACCEL_SLEEP_1_MS}, - {2000, BMC150_ACCEL_SLEEP_2_MS}, - {4000, BMC150_ACCEL_SLEEP_4_MS}, - {6000, BMC150_ACCEL_SLEEP_6_MS}, - {10000, BMC150_ACCEL_SLEEP_10_MS}, - {25000, BMC150_ACCEL_SLEEP_25_MS}, - {50000, BMC150_ACCEL_SLEEP_50_MS}, - {100000, BMC150_ACCEL_SLEEP_100_MS}, - {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) -{ - int i; - int ret; - u8 lpw_bits; - int dur_val = -1; - - if (dur_us > 0) { - for (i = 0; i < ARRAY_SIZE(bmc150_accel_sleep_value_table); - ++i) { - if (bmc150_accel_sleep_value_table[i].sleep_dur == - dur_us) - dur_val = - bmc150_accel_sleep_value_table[i].reg_value; - } - } else { - dur_val = 0; - } - - if (dur_val < 0) - return -EINVAL; - - lpw_bits = mode << BMC150_ACCEL_PMU_MODE_SHIFT; - lpw_bits |= (dur_val << BMC150_ACCEL_PMU_BIT_SLEEP_DUR_SHIFT); - - 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->dev, "Error writing reg_pmu_lpw\n"); - return ret; - } - - return 0; -} - -static int bmc150_accel_set_bw(struct bmc150_accel_data *data, int val, - int val2) -{ - int i; - int ret; - - 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 = regmap_write(data->regmap, - BMC150_ACCEL_REG_PMU_BW, - bmc150_accel_samp_freq_table[i].bw_bits); - if (ret < 0) - return ret; - - data->bw_bits = - bmc150_accel_samp_freq_table[i].bw_bits; - return 0; - } - } - - return -EINVAL; -} - -static int bmc150_accel_update_slope(struct bmc150_accel_data *data) -{ - int ret; - - ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_6, - data->slope_thres); - if (ret < 0) { - 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->dev, "Error updating reg_int_5\n"); - return ret; - } - - dev_dbg(data->dev, "%s: %x %x\n", __func__, data->slope_thres, - data->slope_dur); - - return ret; -} - -static int bmc150_accel_any_motion_setup(struct bmc150_accel_trigger *t, - bool state) -{ - if (state) - return bmc150_accel_update_slope(t->data); - - return 0; -} - -static int bmc150_accel_get_bw(struct bmc150_accel_data *data, int *val, - int *val2) -{ - int i; - - for (i = 0; i < ARRAY_SIZE(bmc150_accel_samp_freq_table); ++i) { - if (bmc150_accel_samp_freq_table[i].bw_bits == data->bw_bits) { - *val = bmc150_accel_samp_freq_table[i].val; - *val2 = bmc150_accel_samp_freq_table[i].val2; - return IIO_VAL_INT_PLUS_MICRO; - } - } - - return -EINVAL; -} - -#ifdef CONFIG_PM -static int bmc150_accel_get_startup_times(struct bmc150_accel_data *data) -{ - int i; - - for (i = 0; i < ARRAY_SIZE(bmc150_accel_sample_upd_time); ++i) { - if (bmc150_accel_sample_upd_time[i].bw_bits == data->bw_bits) - return bmc150_accel_sample_upd_time[i].msec; - } - - return BMC150_ACCEL_MAX_STARTUP_TIME_MS; -} - -static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on) -{ - int ret; - - if (on) { - ret = pm_runtime_get_sync(data->dev); - } else { - pm_runtime_mark_last_busy(data->dev); - ret = pm_runtime_put_autosuspend(data->dev); - } - - if (ret < 0) { - dev_err(data->dev, - "Failed: bmc150_accel_set_power_state for %d\n", on); - if (on) - pm_runtime_put_noidle(data->dev); - - return ret; - } - - return 0; -} -#else -static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on) -{ - return 0; -} -#endif - -static const struct bmc150_accel_interrupt_info { - u8 map_reg; - u8 map_bitmask; - u8 en_reg; - u8 en_bitmask; -} bmc150_accel_interrupts[BMC150_ACCEL_INTERRUPTS] = { - { /* data ready interrupt */ - .map_reg = BMC150_ACCEL_REG_INT_MAP_1, - .map_bitmask = BMC150_ACCEL_INT_MAP_1_BIT_DATA, - .en_reg = BMC150_ACCEL_REG_INT_EN_1, - .en_bitmask = BMC150_ACCEL_INT_EN_BIT_DATA_EN, - }, - { /* motion interrupt */ - .map_reg = BMC150_ACCEL_REG_INT_MAP_0, - .map_bitmask = BMC150_ACCEL_INT_MAP_0_BIT_SLOPE, - .en_reg = BMC150_ACCEL_REG_INT_EN_0, - .en_bitmask = BMC150_ACCEL_INT_EN_BIT_SLP_X | - BMC150_ACCEL_INT_EN_BIT_SLP_Y | - BMC150_ACCEL_INT_EN_BIT_SLP_Z - }, - { /* fifo watermark interrupt */ - .map_reg = BMC150_ACCEL_REG_INT_MAP_1, - .map_bitmask = BMC150_ACCEL_INT_MAP_1_BIT_FWM, - .en_reg = BMC150_ACCEL_REG_INT_EN_1, - .en_bitmask = BMC150_ACCEL_INT_EN_BIT_FWM_EN, - }, -}; - -static void bmc150_accel_interrupts_setup(struct iio_dev *indio_dev, - struct bmc150_accel_data *data) -{ - int i; - - for (i = 0; i < BMC150_ACCEL_INTERRUPTS; i++) - data->interrupts[i].info = &bmc150_accel_interrupts[i]; -} - -static int bmc150_accel_set_interrupt(struct bmc150_accel_data *data, int i, - bool state) -{ - struct bmc150_accel_interrupt *intr = &data->interrupts[i]; - const struct bmc150_accel_interrupt_info *info = intr->info; - int ret; - - if (state) { - if (atomic_inc_return(&intr->users) > 1) - return 0; - } else { - if (atomic_dec_return(&intr->users) > 0) - return 0; - } - - /* - * We will expect the enable and disable to do operation in reverse - * order. This will happen here anyway, as our resume operation uses - * sync mode runtime pm calls. The suspend operation will be delayed - * by autosuspend delay. - * So the disable operation will still happen in reverse order of - * enable operation. When runtime pm is disabled the mode is always on, - * so sequence doesn't matter. - */ - ret = bmc150_accel_set_power_state(data, state); - if (ret < 0) - return ret; - - /* map the interrupt to the appropriate pins */ - ret = regmap_update_bits(data->regmap, info->map_reg, info->map_bitmask, - (state ? info->map_bitmask : 0)); - if (ret < 0) { - dev_err(data->dev, "Error updating reg_int_map\n"); - goto out_fix_power_state; - } - - /* enable/disable the interrupt */ - ret = regmap_update_bits(data->regmap, info->en_reg, info->en_bitmask, - (state ? info->en_bitmask : 0)); - if (ret < 0) { - dev_err(data->dev, "Error updating reg_int_en\n"); - goto out_fix_power_state; - } - - if (state) - atomic_inc(&data->active_intr); - else - atomic_dec(&data->active_intr); - - return 0; - -out_fix_power_state: - bmc150_accel_set_power_state(data, false); - return ret; -} - -static int bmc150_accel_set_scale(struct bmc150_accel_data *data, int val) -{ - int ret, i; - - for (i = 0; i < ARRAY_SIZE(data->chip_info->scale_table); ++i) { - if (data->chip_info->scale_table[i].scale == val) { - ret = regmap_write(data->regmap, - BMC150_ACCEL_REG_PMU_RANGE, - data->chip_info->scale_table[i].reg_range); - if (ret < 0) { - dev_err(data->dev, - "Error writing pmu_range\n"); - return ret; - } - - data->range = data->chip_info->scale_table[i].reg_range; - return 0; - } - } - - return -EINVAL; -} - -static int bmc150_accel_get_temp(struct bmc150_accel_data *data, int *val) -{ - int ret; - unsigned int value; - - mutex_lock(&data->mutex); - - ret = regmap_read(data->regmap, BMC150_ACCEL_REG_TEMP, &value); - if (ret < 0) { - dev_err(data->dev, "Error reading reg_temp\n"); - mutex_unlock(&data->mutex); - return ret; - } - *val = sign_extend32(value, 7); - - mutex_unlock(&data->mutex); - - return IIO_VAL_INT; -} - -static int bmc150_accel_get_axis(struct bmc150_accel_data *data, - struct iio_chan_spec const *chan, - int *val) -{ - int ret; - int axis = chan->scan_index; - unsigned int raw_val; - - mutex_lock(&data->mutex); - ret = bmc150_accel_set_power_state(data, true); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - - ret = regmap_bulk_read(data->regmap, BMC150_ACCEL_AXIS_TO_REG(axis), - &raw_val, 2); - if (ret < 0) { - dev_err(data->dev, "Error reading axis %d\n", axis); - bmc150_accel_set_power_state(data, false); - mutex_unlock(&data->mutex); - return ret; - } - *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); - if (ret < 0) - return ret; - - return IIO_VAL_INT; -} - -static int bmc150_accel_read_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, - int *val, int *val2, long mask) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - int ret; - - switch (mask) { - case IIO_CHAN_INFO_RAW: - switch (chan->type) { - case IIO_TEMP: - return bmc150_accel_get_temp(data, val); - case IIO_ACCEL: - if (iio_buffer_enabled(indio_dev)) - return -EBUSY; - else - return bmc150_accel_get_axis(data, chan, val); - default: - return -EINVAL; - } - case IIO_CHAN_INFO_OFFSET: - if (chan->type == IIO_TEMP) { - *val = BMC150_ACCEL_TEMP_CENTER_VAL; - return IIO_VAL_INT; - } else { - return -EINVAL; - } - case IIO_CHAN_INFO_SCALE: - *val = 0; - switch (chan->type) { - case IIO_TEMP: - *val2 = 500000; - return IIO_VAL_INT_PLUS_MICRO; - case IIO_ACCEL: - { - int i; - const struct bmc150_scale_info *si; - int st_size = ARRAY_SIZE(data->chip_info->scale_table); - - for (i = 0; i < st_size; ++i) { - si = &data->chip_info->scale_table[i]; - if (si->reg_range == data->range) { - *val2 = si->scale; - return IIO_VAL_INT_PLUS_MICRO; - } - } - return -EINVAL; - } - default: - return -EINVAL; - } - case IIO_CHAN_INFO_SAMP_FREQ: - mutex_lock(&data->mutex); - ret = bmc150_accel_get_bw(data, val, val2); - mutex_unlock(&data->mutex); - return ret; - default: - return -EINVAL; - } -} - -static int bmc150_accel_write_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, - int val, int val2, long mask) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - int ret; - - switch (mask) { - case IIO_CHAN_INFO_SAMP_FREQ: - mutex_lock(&data->mutex); - ret = bmc150_accel_set_bw(data, val, val2); - mutex_unlock(&data->mutex); - break; - case IIO_CHAN_INFO_SCALE: - if (val) - return -EINVAL; - - mutex_lock(&data->mutex); - ret = bmc150_accel_set_scale(data, val2); - mutex_unlock(&data->mutex); - return ret; - default: - ret = -EINVAL; - } - - return ret; -} - -static int bmc150_accel_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) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - - *val2 = 0; - switch (info) { - case IIO_EV_INFO_VALUE: - *val = data->slope_thres; - break; - case IIO_EV_INFO_PERIOD: - *val = data->slope_dur; - break; - default: - return -EINVAL; - } - - return IIO_VAL_INT; -} - -static int bmc150_accel_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) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - - if (data->ev_enable_state) - return -EBUSY; - - switch (info) { - case IIO_EV_INFO_VALUE: - data->slope_thres = val & BMC150_ACCEL_SLOPE_THRES_MASK; - break; - case IIO_EV_INFO_PERIOD: - data->slope_dur = val & BMC150_ACCEL_SLOPE_DUR_MASK; - break; - default: - return -EINVAL; - } - - return 0; -} - -static int bmc150_accel_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 bmc150_accel_data *data = iio_priv(indio_dev); - - return data->ev_enable_state; -} - -static int bmc150_accel_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 bmc150_accel_data *data = iio_priv(indio_dev); - int ret; - - if (state == data->ev_enable_state) - return 0; - - mutex_lock(&data->mutex); - - ret = bmc150_accel_set_interrupt(data, BMC150_ACCEL_INT_ANY_MOTION, - state); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - - data->ev_enable_state = state; - mutex_unlock(&data->mutex); - - return 0; -} - -static int bmc150_accel_validate_trigger(struct iio_dev *indio_dev, - struct iio_trigger *trig) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - int i; - - for (i = 0; i < BMC150_ACCEL_TRIGGERS; i++) { - if (data->triggers[i].indio_trig == trig) - return 0; - } - - return -EINVAL; -} - -static ssize_t bmc150_accel_get_fifo_watermark(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct iio_dev *indio_dev = dev_to_iio_dev(dev); - struct bmc150_accel_data *data = iio_priv(indio_dev); - int wm; - - mutex_lock(&data->mutex); - wm = data->watermark; - mutex_unlock(&data->mutex); - - return sprintf(buf, "%d\n", wm); -} - -static ssize_t bmc150_accel_get_fifo_state(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct iio_dev *indio_dev = dev_to_iio_dev(dev); - struct bmc150_accel_data *data = iio_priv(indio_dev); - bool state; - - mutex_lock(&data->mutex); - state = data->fifo_mode; - mutex_unlock(&data->mutex); - - return sprintf(buf, "%d\n", state); -} - -static IIO_CONST_ATTR(hwfifo_watermark_min, "1"); -static IIO_CONST_ATTR(hwfifo_watermark_max, - __stringify(BMC150_ACCEL_FIFO_LENGTH)); -static IIO_DEVICE_ATTR(hwfifo_enabled, S_IRUGO, - bmc150_accel_get_fifo_state, NULL, 0); -static IIO_DEVICE_ATTR(hwfifo_watermark, S_IRUGO, - bmc150_accel_get_fifo_watermark, NULL, 0); - -static const struct attribute *bmc150_accel_fifo_attributes[] = { - &iio_const_attr_hwfifo_watermark_min.dev_attr.attr, - &iio_const_attr_hwfifo_watermark_max.dev_attr.attr, - &iio_dev_attr_hwfifo_watermark.dev_attr.attr, - &iio_dev_attr_hwfifo_enabled.dev_attr.attr, - NULL, -}; - -static int bmc150_accel_set_watermark(struct iio_dev *indio_dev, unsigned val) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - - if (val > BMC150_ACCEL_FIFO_LENGTH) - val = BMC150_ACCEL_FIFO_LENGTH; - - mutex_lock(&data->mutex); - data->watermark = val; - mutex_unlock(&data->mutex); - - return 0; -} - -/* - * 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(struct bmc150_accel_data *data, - char *buffer, int samples) -{ - int sample_length = 3 * 2; - int ret; - int total_length = samples * sample_length; - int i; - size_t step = regmap_get_raw_read_max(data->regmap); - - if (!step || step > total_length) - step = total_length; - else if (step < total_length) - step = sample_length; - - /* - * 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(data->dev, "Error transferring data from fifo in single steps of %zu\n", - step); - - return ret; -} - -static int __bmc150_accel_fifo_flush(struct iio_dev *indio_dev, - unsigned samples, bool irq) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - int ret, i; - u8 count; - u16 buffer[BMC150_ACCEL_FIFO_LENGTH * 3]; - int64_t tstamp; - uint64_t sample_period; - unsigned int val; - - ret = regmap_read(data->regmap, BMC150_ACCEL_REG_FIFO_STATUS, &val); - if (ret < 0) { - dev_err(data->dev, "Error reading reg_fifo_status\n"); - return ret; - } - - count = val & 0x7F; - - if (!count) - return 0; - - /* - * If we getting called from IRQ handler we know the stored timestamp is - * fairly accurate for the last stored sample. Otherwise, if we are - * called as a result of a read operation from userspace and hence - * before the watermark interrupt was triggered, take a timestamp - * now. We can fall anywhere in between two samples so the error in this - * case is at most one sample period. - */ - if (!irq) { - data->old_timestamp = data->timestamp; - data->timestamp = iio_get_time_ns(); - } - - /* - * Approximate timestamps for each of the sample based on the sampling - * frequency, timestamp for last sample and number of samples. - * - * Note that we can't use the current bandwidth settings to compute the - * sample period because the sample rate varies with the device - * (e.g. between 31.70ms to 32.20ms for a bandwidth of 15.63HZ). That - * small variation adds when we store a large number of samples and - * creates significant jitter between the last and first samples in - * different batches (e.g. 32ms vs 21ms). - * - * To avoid this issue we compute the actual sample period ourselves - * based on the timestamp delta between the last two flush operations. - */ - sample_period = (data->timestamp - data->old_timestamp); - do_div(sample_period, count); - tstamp = data->timestamp - (count - 1) * sample_period; - - if (samples && count > samples) - count = samples; - - ret = bmc150_accel_fifo_transfer(data, (u8 *)buffer, count); - if (ret) - return ret; - - /* - * Ideally we want the IIO core to handle the demux when running in fifo - * mode but not when running in triggered buffer mode. Unfortunately - * this does not seem to be possible, so stick with driver demux for - * now. - */ - for (i = 0; i < count; i++) { - u16 sample[8]; - int j, bit; - - j = 0; - for_each_set_bit(bit, indio_dev->active_scan_mask, - indio_dev->masklength) - memcpy(&sample[j++], &buffer[i * 3 + bit], 2); - - iio_push_to_buffers_with_timestamp(indio_dev, sample, tstamp); - - tstamp += sample_period; - } - - return count; -} - -static int bmc150_accel_fifo_flush(struct iio_dev *indio_dev, unsigned samples) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - int ret; - - mutex_lock(&data->mutex); - ret = __bmc150_accel_fifo_flush(indio_dev, samples, false); - mutex_unlock(&data->mutex); - - return ret; -} - -static IIO_CONST_ATTR_SAMP_FREQ_AVAIL( - "15.620000 31.260000 62.50000 125 250 500 1000 2000"); - -static struct attribute *bmc150_accel_attributes[] = { - &iio_const_attr_sampling_frequency_available.dev_attr.attr, - NULL, -}; - -static const struct attribute_group bmc150_accel_attrs_group = { - .attrs = bmc150_accel_attributes, -}; - -static const struct iio_event_spec bmc150_accel_event = { - .type = IIO_EV_TYPE_ROC, - .dir = IIO_EV_DIR_EITHER, - .mask_separate = BIT(IIO_EV_INFO_VALUE) | - BIT(IIO_EV_INFO_ENABLE) | - BIT(IIO_EV_INFO_PERIOD) -}; - -#define BMC150_ACCEL_CHANNEL(_axis, bits) { \ - .type = IIO_ACCEL, \ - .modified = 1, \ - .channel2 = IIO_MOD_##_axis, \ - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) | \ - BIT(IIO_CHAN_INFO_SAMP_FREQ), \ - .scan_index = AXIS_##_axis, \ - .scan_type = { \ - .sign = 's', \ - .realbits = (bits), \ - .storagebits = 16, \ - .shift = 16 - (bits), \ - }, \ - .event_spec = &bmc150_accel_event, \ - .num_event_specs = 1 \ -} - -#define BMC150_ACCEL_CHANNELS(bits) { \ - { \ - .type = IIO_TEMP, \ - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \ - BIT(IIO_CHAN_INFO_SCALE) | \ - BIT(IIO_CHAN_INFO_OFFSET), \ - .scan_index = -1, \ - }, \ - BMC150_ACCEL_CHANNEL(X, bits), \ - BMC150_ACCEL_CHANNEL(Y, bits), \ - BMC150_ACCEL_CHANNEL(Z, bits), \ - IIO_CHAN_SOFT_TIMESTAMP(3), \ -} - -static const struct iio_chan_spec bma222e_accel_channels[] = - BMC150_ACCEL_CHANNELS(8); -static const struct iio_chan_spec bma250e_accel_channels[] = - BMC150_ACCEL_CHANNELS(10); -static const struct iio_chan_spec bmc150_accel_channels[] = - BMC150_ACCEL_CHANNELS(12); -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", - .chip_id = 0xFA, - .channels = bmc150_accel_channels, - .num_channels = ARRAY_SIZE(bmc150_accel_channels), - .scale_table = { {9610, BMC150_ACCEL_DEF_RANGE_2G}, - {19122, BMC150_ACCEL_DEF_RANGE_4G}, - {38344, BMC150_ACCEL_DEF_RANGE_8G}, - {76590, BMC150_ACCEL_DEF_RANGE_16G} }, - }, - [bmi055] = { - .name = "BMI055A", - .chip_id = 0xFA, - .channels = bmc150_accel_channels, - .num_channels = ARRAY_SIZE(bmc150_accel_channels), - .scale_table = { {9610, BMC150_ACCEL_DEF_RANGE_2G}, - {19122, BMC150_ACCEL_DEF_RANGE_4G}, - {38344, BMC150_ACCEL_DEF_RANGE_8G}, - {76590, BMC150_ACCEL_DEF_RANGE_16G} }, - }, - [bma255] = { - .name = "BMA0255", - .chip_id = 0xFA, - .channels = bmc150_accel_channels, - .num_channels = ARRAY_SIZE(bmc150_accel_channels), - .scale_table = { {9610, BMC150_ACCEL_DEF_RANGE_2G}, - {19122, BMC150_ACCEL_DEF_RANGE_4G}, - {38344, BMC150_ACCEL_DEF_RANGE_8G}, - {76590, BMC150_ACCEL_DEF_RANGE_16G} }, - }, - [bma250e] = { - .name = "BMA250E", - .chip_id = 0xF9, - .channels = bma250e_accel_channels, - .num_channels = ARRAY_SIZE(bma250e_accel_channels), - .scale_table = { {38344, BMC150_ACCEL_DEF_RANGE_2G}, - {76590, BMC150_ACCEL_DEF_RANGE_4G}, - {153277, BMC150_ACCEL_DEF_RANGE_8G}, - {306457, BMC150_ACCEL_DEF_RANGE_16G} }, - }, - [bma222e] = { - .name = "BMA222E", - .chip_id = 0xF8, - .channels = bma222e_accel_channels, - .num_channels = ARRAY_SIZE(bma222e_accel_channels), - .scale_table = { {153277, BMC150_ACCEL_DEF_RANGE_2G}, - {306457, BMC150_ACCEL_DEF_RANGE_4G}, - {612915, BMC150_ACCEL_DEF_RANGE_8G}, - {1225831, BMC150_ACCEL_DEF_RANGE_16G} }, - }, - [bma280] = { - .name = "BMA0280", - .chip_id = 0xFB, - .channels = bma280_accel_channels, - .num_channels = ARRAY_SIZE(bma280_accel_channels), - .scale_table = { {2392, BMC150_ACCEL_DEF_RANGE_2G}, - {4785, BMC150_ACCEL_DEF_RANGE_4G}, - {9581, BMC150_ACCEL_DEF_RANGE_8G}, - {19152, BMC150_ACCEL_DEF_RANGE_16G} }, - }, -}; - -static const struct iio_info bmc150_accel_info = { - .attrs = &bmc150_accel_attrs_group, - .read_raw = bmc150_accel_read_raw, - .write_raw = bmc150_accel_write_raw, - .read_event_value = bmc150_accel_read_event, - .write_event_value = bmc150_accel_write_event, - .write_event_config = bmc150_accel_write_event_config, - .read_event_config = bmc150_accel_read_event_config, - .driver_module = THIS_MODULE, -}; - -static const struct iio_info bmc150_accel_info_fifo = { - .attrs = &bmc150_accel_attrs_group, - .read_raw = bmc150_accel_read_raw, - .write_raw = bmc150_accel_write_raw, - .read_event_value = bmc150_accel_read_event, - .write_event_value = bmc150_accel_write_event, - .write_event_config = bmc150_accel_write_event_config, - .read_event_config = bmc150_accel_read_event_config, - .validate_trigger = bmc150_accel_validate_trigger, - .hwfifo_set_watermark = bmc150_accel_set_watermark, - .hwfifo_flush_to_buffer = bmc150_accel_fifo_flush, - .driver_module = THIS_MODULE, -}; - -static irqreturn_t bmc150_accel_trigger_handler(int irq, void *p) -{ - struct iio_poll_func *pf = 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 = 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++] = raw_val; - } - mutex_unlock(&data->mutex); - - iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, - pf->timestamp); -err_read: - iio_trigger_notify_done(indio_dev->trig); - - return IRQ_HANDLED; -} - -static int bmc150_accel_trig_try_reen(struct iio_trigger *trig) -{ - struct bmc150_accel_trigger *t = iio_trigger_get_drvdata(trig); - struct bmc150_accel_data *data = t->data; - int ret; - - /* new data interrupts don't need ack */ - if (t == &t->data->triggers[BMC150_ACCEL_TRIGGER_DATA_READY]) - return 0; - - mutex_lock(&data->mutex); - /* clear any latched interrupt */ - 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->dev, - "Error writing reg_int_rst_latch\n"); - return ret; - } - - return 0; -} - -static int bmc150_accel_trigger_set_state(struct iio_trigger *trig, - bool state) -{ - struct bmc150_accel_trigger *t = iio_trigger_get_drvdata(trig); - struct bmc150_accel_data *data = t->data; - int ret; - - mutex_lock(&data->mutex); - - if (t->enabled == state) { - mutex_unlock(&data->mutex); - return 0; - } - - if (t->setup) { - ret = t->setup(t, state); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - } - - ret = bmc150_accel_set_interrupt(data, t->intr, state); - if (ret < 0) { - mutex_unlock(&data->mutex); - return ret; - } - - t->enabled = state; - - mutex_unlock(&data->mutex); - - return ret; -} - -static const struct iio_trigger_ops bmc150_accel_trigger_ops = { - .set_trigger_state = bmc150_accel_trigger_set_state, - .try_reenable = bmc150_accel_trig_try_reen, - .owner = THIS_MODULE, -}; - -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 = regmap_read(data->regmap, BMC150_ACCEL_REG_INT_STATUS_2, &val); - if (ret < 0) { - dev_err(data->dev, "Error reading reg_int_status_2\n"); - return ret; - } - - if (val & BMC150_ACCEL_ANY_MOTION_BIT_SIGN) - dir = IIO_EV_DIR_FALLING; - else - dir = IIO_EV_DIR_RISING; - - if (val & BMC150_ACCEL_ANY_MOTION_BIT_X) - iio_push_event(indio_dev, - IIO_MOD_EVENT_CODE(IIO_ACCEL, - 0, - IIO_MOD_X, - IIO_EV_TYPE_ROC, - dir), - data->timestamp); - - if (val & BMC150_ACCEL_ANY_MOTION_BIT_Y) - iio_push_event(indio_dev, - IIO_MOD_EVENT_CODE(IIO_ACCEL, - 0, - IIO_MOD_Y, - IIO_EV_TYPE_ROC, - dir), - data->timestamp); - - if (val & BMC150_ACCEL_ANY_MOTION_BIT_Z) - iio_push_event(indio_dev, - IIO_MOD_EVENT_CODE(IIO_ACCEL, - 0, - IIO_MOD_Z, - IIO_EV_TYPE_ROC, - dir), - data->timestamp); - - return ret; -} - -static irqreturn_t bmc150_accel_irq_thread_handler(int irq, void *private) -{ - struct iio_dev *indio_dev = private; - struct bmc150_accel_data *data = iio_priv(indio_dev); - bool ack = false; - int ret; - - mutex_lock(&data->mutex); - - if (data->fifo_mode) { - ret = __bmc150_accel_fifo_flush(indio_dev, - BMC150_ACCEL_FIFO_LENGTH, true); - if (ret > 0) - ack = true; - } - - if (data->ev_enable_state) { - ret = bmc150_accel_handle_roc_event(indio_dev); - if (ret > 0) - ack = true; - } - - if (ack) { - 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->dev, "Error writing reg_int_rst_latch\n"); - - ret = IRQ_HANDLED; - } else { - ret = IRQ_NONE; - } - - mutex_unlock(&data->mutex); - - return ret; -} - -static irqreturn_t bmc150_accel_irq_handler(int irq, void *private) -{ - struct iio_dev *indio_dev = private; - struct bmc150_accel_data *data = iio_priv(indio_dev); - bool ack = false; - int i; - - data->old_timestamp = data->timestamp; - data->timestamp = iio_get_time_ns(); - - for (i = 0; i < BMC150_ACCEL_TRIGGERS; i++) { - if (data->triggers[i].enabled) { - iio_trigger_poll(data->triggers[i].indio_trig); - ack = true; - break; - } - } - - if (data->ev_enable_state || data->fifo_mode) - return IRQ_WAKE_THREAD; - - if (ack) - return IRQ_HANDLED; - - return IRQ_NONE; -} - -static const struct { - int intr; - const char *name; - int (*setup)(struct bmc150_accel_trigger *t, bool state); -} bmc150_accel_triggers[BMC150_ACCEL_TRIGGERS] = { - { - .intr = 0, - .name = "%s-dev%d", - }, - { - .intr = 1, - .name = "%s-any-motion-dev%d", - .setup = bmc150_accel_any_motion_setup, - }, -}; - -static void bmc150_accel_unregister_triggers(struct bmc150_accel_data *data, - int from) -{ - int i; - - for (i = from; i >= 0; i--) { - if (data->triggers[i].indio_trig) { - iio_trigger_unregister(data->triggers[i].indio_trig); - data->triggers[i].indio_trig = NULL; - } - } -} - -static int bmc150_accel_triggers_setup(struct iio_dev *indio_dev, - struct bmc150_accel_data *data) -{ - int i, ret; - - for (i = 0; i < BMC150_ACCEL_TRIGGERS; i++) { - struct bmc150_accel_trigger *t = &data->triggers[i]; - - t->indio_trig = devm_iio_trigger_alloc(data->dev, - bmc150_accel_triggers[i].name, - indio_dev->name, - indio_dev->id); - if (!t->indio_trig) { - ret = -ENOMEM; - break; - } - - 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; - t->setup = bmc150_accel_triggers[i].setup; - iio_trigger_set_drvdata(t->indio_trig, t); - - ret = iio_trigger_register(t->indio_trig); - if (ret) - break; - } - - if (ret) - bmc150_accel_unregister_triggers(data, i - 1); - - return ret; -} - -#define BMC150_ACCEL_FIFO_MODE_STREAM 0x80 -#define BMC150_ACCEL_FIFO_MODE_FIFO 0x40 -#define BMC150_ACCEL_FIFO_MODE_BYPASS 0x00 - -static int bmc150_accel_fifo_set_mode(struct bmc150_accel_data *data) -{ - u8 reg = BMC150_ACCEL_REG_FIFO_CONFIG1; - int ret; - - ret = regmap_write(data->regmap, reg, data->fifo_mode); - if (ret < 0) { - dev_err(data->dev, "Error writing reg_fifo_config1\n"); - return ret; - } - - if (!data->fifo_mode) - return 0; - - ret = regmap_write(data->regmap, BMC150_ACCEL_REG_FIFO_CONFIG0, - data->watermark); - if (ret < 0) - dev_err(data->dev, "Error writing reg_fifo_config0\n"); - - return ret; -} - -static int bmc150_accel_buffer_preenable(struct iio_dev *indio_dev) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - - return bmc150_accel_set_power_state(data, true); -} - -static int bmc150_accel_buffer_postenable(struct iio_dev *indio_dev) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - int ret = 0; - - if (indio_dev->currentmode == INDIO_BUFFER_TRIGGERED) - return iio_triggered_buffer_postenable(indio_dev); - - mutex_lock(&data->mutex); - - if (!data->watermark) - goto out; - - ret = bmc150_accel_set_interrupt(data, BMC150_ACCEL_INT_WATERMARK, - true); - if (ret) - goto out; - - data->fifo_mode = BMC150_ACCEL_FIFO_MODE_FIFO; - - ret = bmc150_accel_fifo_set_mode(data); - if (ret) { - data->fifo_mode = 0; - bmc150_accel_set_interrupt(data, BMC150_ACCEL_INT_WATERMARK, - false); - } - -out: - mutex_unlock(&data->mutex); - - return ret; -} - -static int bmc150_accel_buffer_predisable(struct iio_dev *indio_dev) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - - if (indio_dev->currentmode == INDIO_BUFFER_TRIGGERED) - return iio_triggered_buffer_predisable(indio_dev); - - mutex_lock(&data->mutex); - - if (!data->fifo_mode) - goto out; - - bmc150_accel_set_interrupt(data, BMC150_ACCEL_INT_WATERMARK, false); - __bmc150_accel_fifo_flush(indio_dev, BMC150_ACCEL_FIFO_LENGTH, false); - data->fifo_mode = 0; - bmc150_accel_fifo_set_mode(data); - -out: - mutex_unlock(&data->mutex); - - return 0; -} - -static int bmc150_accel_buffer_postdisable(struct iio_dev *indio_dev) -{ - struct bmc150_accel_data *data = iio_priv(indio_dev); - - return bmc150_accel_set_power_state(data, false); -} - -static const struct iio_buffer_setup_ops bmc150_accel_buffer_ops = { - .preenable = bmc150_accel_buffer_preenable, - .postenable = bmc150_accel_buffer_postenable, - .predisable = bmc150_accel_buffer_predisable, - .postdisable = bmc150_accel_buffer_postdisable, -}; - -static int bmc150_accel_chip_init(struct bmc150_accel_data *data) -{ - int ret, i; - unsigned int val; - - ret = regmap_read(data->regmap, BMC150_ACCEL_REG_CHIP_ID, &val); - if (ret < 0) { - dev_err(data->dev, - "Error: Reading chip id\n"); - return ret; - } - - 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]; - break; - } - } - - if (!data->chip_info) { - dev_err(data->dev, "Invalid chip %x\n", val); - return -ENODEV; - } - - ret = bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0); - if (ret < 0) - return ret; - - /* Set Bandwidth */ - ret = bmc150_accel_set_bw(data, BMC150_ACCEL_DEF_BW, 0); - if (ret < 0) - return ret; - - /* Set Default Range */ - ret = regmap_write(data->regmap, BMC150_ACCEL_REG_PMU_RANGE, - BMC150_ACCEL_DEF_RANGE_4G); - if (ret < 0) { - dev_err(data->dev, - "Error writing reg_pmu_range\n"); - return ret; - } - - data->range = BMC150_ACCEL_DEF_RANGE_4G; - - /* Set default slope duration and thresholds */ - data->slope_thres = BMC150_ACCEL_DEF_SLOPE_THRESHOLD; - data->slope_dur = BMC150_ACCEL_DEF_SLOPE_DURATION; - ret = bmc150_accel_update_slope(data); - if (ret < 0) - return ret; - - /* Set default as latched interrupts */ - 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->dev, - "Error writing reg_int_rst_latch\n"); - return ret; - } - - return 0; -} - -static int bmc150_accel_probe(struct i2c_client *client, - const struct i2c_device_id *id) -{ - 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)); - 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; - - 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; - - ret = bmc150_accel_chip_init(data); - if (ret < 0) - return ret; - - mutex_init(&data->mutex); - - 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; - indio_dev->modes = INDIO_DIRECT_MODE; - indio_dev->info = &bmc150_accel_info; - - ret = iio_triggered_buffer_setup(indio_dev, - &iio_pollfunc_store_time, - bmc150_accel_trigger_handler, - &bmc150_accel_buffer_ops); - if (ret < 0) { - dev_err(data->dev, "Failed: iio triggered buffer setup\n"); - return ret; - } - - if (data->irq > 0) { - ret = devm_request_threaded_irq( - data->dev, data->irq, - bmc150_accel_irq_handler, - bmc150_accel_irq_thread_handler, - IRQF_TRIGGER_RISING, - BMC150_ACCEL_IRQ_NAME, - indio_dev); - if (ret) - goto err_buffer_cleanup; - - /* - * Set latched mode interrupt. While certain interrupts are - * non-latched regardless of this settings (e.g. new data) we - * want to use latch mode when we can to prevent interrupt - * flooding. - */ - ret = regmap_write(data->regmap, BMC150_ACCEL_REG_INT_RST_LATCH, - BMC150_ACCEL_INT_MODE_LATCH_RESET); - if (ret < 0) { - dev_err(data->dev, "Error writing reg_int_rst_latch\n"); - goto err_buffer_cleanup; - } - - bmc150_accel_interrupts_setup(indio_dev, data); - - ret = bmc150_accel_triggers_setup(indio_dev, data); - 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)) { - indio_dev->modes |= INDIO_BUFFER_SOFTWARE; - indio_dev->info = &bmc150_accel_info_fifo; - indio_dev->buffer->attrs = bmc150_accel_fifo_attributes; - } - } - - ret = iio_device_register(indio_dev); - if (ret < 0) { - dev_err(data->dev, "Unable to register iio device\n"); - goto err_trigger_unregister; - } - - ret = pm_runtime_set_active(dev); - if (ret) - goto err_iio_unregister; - - pm_runtime_enable(dev); - pm_runtime_set_autosuspend_delay(dev, BMC150_AUTO_SUSPEND_DELAY_MS); - pm_runtime_use_autosuspend(dev); - - return 0; - -err_iio_unregister: - iio_device_unregister(indio_dev); -err_trigger_unregister: - bmc150_accel_unregister_triggers(data, BMC150_ACCEL_TRIGGERS - 1); -err_buffer_cleanup: - iio_triggered_buffer_cleanup(indio_dev); - - return ret; -} - -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(data->dev); - pm_runtime_set_suspended(data->dev); - pm_runtime_put_noidle(data->dev); - - iio_device_unregister(indio_dev); - - bmc150_accel_unregister_triggers(data, BMC150_ACCEL_TRIGGERS - 1); - - iio_triggered_buffer_cleanup(indio_dev); - - mutex_lock(&data->mutex); - bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_DEEP_SUSPEND, 0); - mutex_unlock(&data->mutex); - - return 0; -} - -#ifdef CONFIG_PM_SLEEP -static int bmc150_accel_suspend(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct bmc150_accel_data *data = iio_priv(indio_dev); - - mutex_lock(&data->mutex); - bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_SUSPEND, 0); - mutex_unlock(&data->mutex); - - return 0; -} - -static int bmc150_accel_resume(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct bmc150_accel_data *data = iio_priv(indio_dev); - - mutex_lock(&data->mutex); - if (atomic_read(&data->active_intr)) - bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0); - bmc150_accel_fifo_set_mode(data); - mutex_unlock(&data->mutex); - - return 0; -} -#endif - -#ifdef CONFIG_PM -static int bmc150_accel_runtime_suspend(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct bmc150_accel_data *data = iio_priv(indio_dev); - int ret; - - dev_dbg(data->dev, __func__); - ret = bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_SUSPEND, 0); - if (ret < 0) - return -EAGAIN; - - return 0; -} - -static int bmc150_accel_runtime_resume(struct device *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->dev, __func__); - - ret = bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0); - if (ret < 0) - return ret; - ret = bmc150_accel_fifo_set_mode(data); - if (ret < 0) - return ret; - - sleep_val = bmc150_accel_get_startup_times(data); - if (sleep_val < 20) - usleep_range(sleep_val * 1000, 20000); - else - msleep_interruptible(sleep_val); - - return 0; -} -#endif - -static 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); - -MODULE_AUTHOR("Srinivas Pandruvada "); -MODULE_LICENSE("GPL v2"); -MODULE_DESCRIPTION("BMC150 accelerometer driver"); diff --git a/drivers/iio/accel/bmc150-accel.h b/drivers/iio/accel/bmc150-accel.h new file mode 100644 index 0000000..ba03359 --- /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_ */ -- cgit v0.10.2 From f9ab96e212808123fbd9072d580a59194e5cd410 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 21 Sep 2015 12:55:16 +0200 Subject: 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 diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig index bb00770..969428d 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 8076436..7925f16 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 0000000..16b66f2 --- /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"); -- cgit v0.10.2 From a305cf316239073eab9da9ba22266bb698f5c3f7 Mon Sep 17 00:00:00 2001 From: Maciek Borzecki Date: Sat, 3 Oct 2015 16:01:36 +0200 Subject: 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 diff --git a/drivers/staging/wlan-ng/prism2sta.c b/drivers/staging/wlan-ng/prism2sta.c index bd97986..c57f48a 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) { -- cgit v0.10.2 From 252fb58ceb42d82931c971b11f5ea1323caa8a35 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Fri, 2 Oct 2015 13:37:48 +0300 Subject: 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 diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c index a2b7ae3..ff83394 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 87110d9..c3d5531 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 10fa372..999c4fa 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); -- cgit v0.10.2 From 86727e30d1d6485b5f8b4a84790ac659dc002d27 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Fri, 2 Oct 2015 13:37:49 +0300 Subject: 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 diff --git a/drivers/staging/iio/light/isl29028.c b/drivers/staging/iio/light/isl29028.c index cd6f272..32ae112 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 b5e1b8b..df60203 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); -- cgit v0.10.2 From 877cdf9115122e068245326da519a848d2387221 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Fri, 2 Oct 2015 13:37:50 +0300 Subject: 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 diff --git a/drivers/staging/iio/resolver/ad2s90.c b/drivers/staging/iio/resolver/ad2s90.c index e24c589..c57a296 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); -- cgit v0.10.2 From bdddc22f071a365de205c8396d59f8d7ad1c86a9 Mon Sep 17 00:00:00 2001 From: Hugo Camboulive Date: Sat, 3 Oct 2015 18:32:48 +0000 Subject: 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 diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 999c4fa..028b4e8 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; -- cgit v0.10.2 From 7d92ea5d0ddafea25b532eb1c0721f7e73984a76 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Sat, 3 Oct 2015 18:20:47 +0300 Subject: 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 diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index f931800..6f277ca 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' -- cgit v0.10.2 From 801b798c25b810ba036f38f6bf2e1750201485b0 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Sat, 3 Oct 2015 18:45:01 +0300 Subject: 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 diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 6f277ca..f7f8c81 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 -- cgit v0.10.2 From 5cff0cc99fe4e92cbb2f1680bd744b8290686e8d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:26 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 1d2c572..96a717e2 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 0d29b87..6fb5b4c 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. -- cgit v0.10.2 From 337349fb599b75756909eb80c0b86bb332d8857b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:27 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 96a717e2..d284f91 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 6fb5b4c..0309817 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. -- cgit v0.10.2 From 57552bf00f028f2621acdb66857a18ea83f3637f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:28 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index d284f91..4f1d983 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 0309817..0664042 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; -- cgit v0.10.2 From 65e4b792a770dbca4a1e3f93759a8a4a2249e235 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:29 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 4f1d983..50560a8 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 0664042..7e698f3 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 * -- cgit v0.10.2 From cf0a7f9eadce9b0dcf8099adde84696a5cad5202 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:30 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index 50560a8..ab963b9 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 67604b5..84e9881 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) -- cgit v0.10.2 From 91a3a5014e8a3d046608c3835e7c793b87dc20b6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 16:19:31 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index ab963b9..fc1f573 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 7e698f3..c96a5c7 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) { -- cgit v0.10.2 From a9bda311cb0e8a520daebbc6d0d795d327744536 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:10 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index b073313..75c59df 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 a822a0b..ef66ac9 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. -- cgit v0.10.2 From a90a291767ae9c37e9da3069739b609151602dbf Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:11 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c index 4294ca6..b15c990 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 -- cgit v0.10.2 From d63414eb9833ddae771102aa792178ea04624c34 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:12 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_param.h b/drivers/staging/lustre/lustre/include/lustre_param.h index de49b41..14cd2bc 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 6fb67a6..5ab7296 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 5339986..5dff617 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 66fafd3..b8ca324 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; -- cgit v0.10.2 From cbe327246da118513004f9022e1061d11a8f320b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:13 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 5ab7296..2cd4458 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 c1bffcd..2ae0ea9 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) { -- cgit v0.10.2 From fb320795704ccb6f4694801543f1418aedabad72 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 23:19:14 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index 058b859d..d16f85b 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; -- cgit v0.10.2 From 961354612efa9cecb98250f4f1cfd51221af8098 Mon Sep 17 00:00:00 2001 From: Rocco Folino Date: Fri, 2 Oct 2015 23:54:26 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index 3a212b4..6cf9b92 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); -- cgit v0.10.2 From 7112574aea6955774638941e75bd915e59c8bca6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 2 Oct 2015 18:07:04 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 2cd4458..882d477 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 2ae0ea9..a22b83e 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; -- cgit v0.10.2 From ea14cd2b0d9e65f8957cb991d1a7763eae985db4 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Sat, 3 Oct 2015 16:33:34 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c index f600247..6aed3cf 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. * -- cgit v0.10.2 From 851f306d6e42a7573dd5a9425ce929ff10215be6 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Fri, 2 Oct 2015 20:15:55 +0300 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index fbfe79a..8a6f9e2 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); -- cgit v0.10.2 From 2d9920eca404c785483598980547ff3be58eddd9 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:39 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 76fe4b2..24fc28c 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 8a6f9e2..cdc78f8 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); } -- cgit v0.10.2 From 60acb623c9f9431e84485a10347dab7e4801b3e1 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:44 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index cdc78f8..a8d50a5 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; -- cgit v0.10.2 From e24bb0ed81795731c8cca4d3ecbac04862fbf128 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:46 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 24fc28c..944982a 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); } -- cgit v0.10.2 From 482e191d61a85c87e033a650e755d3a4361a6158 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:48 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 7546aff..7827ceb 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); } -- cgit v0.10.2 From 6d99d6a3cffdcbf1705ebd41b528fc31feaa7966 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sat, 3 Oct 2015 20:52:49 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 7827ceb..ae81a8b 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); -} - -- cgit v0.10.2 From 51abf45c23872df0a43dbe849eb4439ebda6145f Mon Sep 17 00:00:00 2001 From: Salah Triki Date: Sun, 4 Oct 2015 02:49:48 +0100 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index ae81a8b..ce2d1c7 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 06ece51..c61884c 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 44db870..48b6056 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, -- cgit v0.10.2 From 851f7c0e62dc564bf99e295b3c498d3d96a73b4a Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 19:24:05 +0200 Subject: 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 diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index d115f5c..9038e0b 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 d06e19d..215e7ec 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; -- cgit v0.10.2 From 4e719935ea07eae2b9674c9578e8941601e4380d Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 22:04:22 +0200 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index d49147b..456e9f1 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 = { -- cgit v0.10.2 From 1e5cae2f0b3460bf68ebe948bb5caa31c0281c6c Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 22:05:57 +0200 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index 39710f2..f4f05d2 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 = { -- cgit v0.10.2 From 27a90695e02759ccab58ca610af4f8ed79d8a35c Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 22:07:54 +0200 Subject: 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 diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index c6b2a65..10f94ec 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 = { -- cgit v0.10.2 From 5a731c70bc79d3d41f37d9bf4ab4d549333bff37 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 2 Oct 2015 22:09:43 +0200 Subject: 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 diff --git a/drivers/staging/comedi/drivers/ni_usb6501.c b/drivers/staging/comedi/drivers/ni_usb6501.c index 88de8da..95b537a 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 = { -- cgit v0.10.2 From b565b3fbeca1e65702a37ab837ea625284809923 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Sat, 3 Oct 2015 14:52:09 +0300 Subject: 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 diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index 498d623..a7e3875 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; -- cgit v0.10.2 From 8668984f8129d5ac7a90c6c0348e8ed4207fc145 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sat, 3 Oct 2015 17:31:30 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 1bb70b7..c7e956f 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 "); -- cgit v0.10.2 From a6d3346d92356d74c7b7b31a44ae52d07fce38e9 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2cf82b2..c635b84 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 fb5cb8a..8bbb59e 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 -- cgit v0.10.2 From 3565ded9f220e86c9560f1cbaed2549edea8e7a3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c635b84..65bd325 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; } -- cgit v0.10.2 From 1ef58e42561b759c094528e3f4b1ee1b048bf751 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 65bd325..566e618 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; } -- cgit v0.10.2 From 1c5833ce6309d32a282ffeef86417ccfacc438e3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 566e618..fe66417 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 8bbb59e..139dad0 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 -- cgit v0.10.2 From 5ba48ecca5bb528ee5893513f4e4b5f3c8a7c214 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fe66417..4f683c9 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 139dad0..edcaf5a 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 -- cgit v0.10.2 From 244efb1f5df5589c98bc1d0d1850c896151b9caa Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4f683c9..2777229 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 edcaf5a..bc8acde 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 -- cgit v0.10.2 From 6d6c9bbb070c99d8926308f284e2e13cd8bc3982 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2777229..9f93a52 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; } -- cgit v0.10.2 From 1bd6dee3c51d3d6e5dbdeec2013dbf293ef18d7a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Fri, 2 Oct 2015 21:44:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9f93a52..39d72ac 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) -- cgit v0.10.2 From 63417188f10351945e23ff03af68c605cb18da52 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Sat, 3 Oct 2015 22:55:49 +0200 Subject: 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 diff --git a/drivers/staging/rdma/ipath/ipath_driver.c b/drivers/staging/rdma/ipath/ipath_driver.c index 871dbe5..46d9898 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 450d159..c796a51 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 7cc3054..5f13572 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 be2a60e..e95af81 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 01ba792..e568971 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 75558f3..b12b1f6 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 ed2bbc2..17d9dca 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); -- cgit v0.10.2 From 6ea9b6e6a78cec3e8cb2e77019795aa4a1c8c42c Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:15 -0400 Subject: 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 diff --git a/drivers/staging/unisys/Documentation/overview.txt b/drivers/staging/unisys/Documentation/overview.txt index 25f93f2..c2d8dd4 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 5cbb791..4f1f5e6 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 79c9036..20eb098 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 3b83e2c..0000000 --- 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 e457bd1..0000000 --- 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/visorhid/keyboardchannel.h b/drivers/staging/unisys/visorhid/keyboardchannel.h deleted file mode 100644 index 2ed2602..0000000 --- a/drivers/staging/unisys/visorhid/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/visorhid/mousechannel.h b/drivers/staging/unisys/visorhid/mousechannel.h deleted file mode 100644 index 256477a..0000000 --- a/drivers/staging/unisys/visorhid/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/visorhid/ultrainputreport.h b/drivers/staging/unisys/visorhid/ultrainputreport.h deleted file mode 100644 index 3e6a52f..0000000 --- a/drivers/staging/unisys/visorhid/ultrainputreport.h +++ /dev/null @@ -1,74 +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_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 deleted file mode 100644 index c24aaf5..0000000 --- a/drivers/staging/unisys/visorhid/visorhid.c +++ /dev/null @@ -1,671 +0,0 @@ -/* 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 "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 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, /* 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 */ - 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); - - 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); - 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 = visorkbd_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); diff --git a/drivers/staging/unisys/visorinput/Kconfig b/drivers/staging/unisys/visorinput/Kconfig new file mode 100644 index 0000000..d83deb4 --- /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 0000000..beedca7 --- /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/visorinput/keyboardchannel.h b/drivers/staging/unisys/visorinput/keyboardchannel.h new file mode 100644 index 0000000..2ed2602 --- /dev/null +++ b/drivers/staging/unisys/visorinput/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/visorinput/mousechannel.h b/drivers/staging/unisys/visorinput/mousechannel.h new file mode 100644 index 0000000..256477a --- /dev/null +++ b/drivers/staging/unisys/visorinput/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/visorinput/ultrainputreport.h b/drivers/staging/unisys/visorinput/ultrainputreport.h new file mode 100644 index 0000000..3e6a52f --- /dev/null +++ b/drivers/staging/unisys/visorinput/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/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c new file mode 100644 index 0000000..e1c328e --- /dev/null +++ b/drivers/staging/unisys/visorinput/visorinput.c @@ -0,0 +1,671 @@ +/* visorinput.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 "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 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, +}; + +/* 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 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 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, /* 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 */ + 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 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. + */ +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); + + 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); + 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 = visorkbd_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 +visorinput_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 visorinput_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 +visorinput_pause(struct visor_device *dev, + visorbus_state_complete_func complete_func) +{ + int rc; + struct visorinput_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 +visorinput_resume(struct visor_device *dev, + visorbus_state_complete_func complete_func) +{ + int rc; + struct visorinput_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 +visorinput_init(void) +{ + return visorbus_register_visor_driver(&visorinput_driver); +} + +static void +visorinput_cleanup(void) +{ + visorbus_unregister_visor_driver(&visorinput_driver); +} + +module_init(visorinput_init); +module_exit(visorinput_cleanup); + +MODULE_AUTHOR("Unisys"); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("s-Par human input driver for guest Linux"); +MODULE_VERSION(VERSION); -- cgit v0.10.2 From dabf6c399e27e21db9f1b438467bb9b7cfc8b834 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:16 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/keyboardchannel.h b/drivers/staging/unisys/visorinput/keyboardchannel.h deleted file mode 100644 index 2ed2602..0000000 --- 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 256477a..0000000 --- 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 e1c328e..4c5b594 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 -- cgit v0.10.2 From b3d5d05dcc4ac1d349c51ea743092375701aa8e1 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:17 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 4c5b594..a15924c 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); -- cgit v0.10.2 From f9bda156cfd22f8a6598729bac831308f6db7997 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:19 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index a15924c..52d01e4 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); - - for (i = 1; i < ARRAY_SIZE(visorkbd_keycode); i++) - set_bit(visorkbd_keycode[i], visorinput_dev->keybit); + 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_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; -- cgit v0.10.2 From cb3690fe4e45649dad5cbec3f9aa451fc8bcd9c5 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:20 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 52d01e4..976effa 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. */ -- cgit v0.10.2 From ade7280ff53c000c87e416fcf466081990d62c9a Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:21 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 976effa..adc2cc9 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) { -- cgit v0.10.2 From add282479665cfbe5767524630086871e12d49f1 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:22 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index adc2cc9..d47cc2b 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; -- cgit v0.10.2 From bc49496d2924d8fd5974053207d477d1bb6ba6ee Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:23 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index d47cc2b..103f72b 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; } -- cgit v0.10.2 From b4f033f2d01b6b7ab9273b8e93256673c235f5c8 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:24 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 103f72b..a002e07 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; -- cgit v0.10.2 From 464b577c8bf5a150638baee151d083790190c1b7 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 2 Oct 2015 13:19:25 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index a002e07..3a1b24f 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: -- cgit v0.10.2 From 78e0e85376ab41d86f4bb8bc8d498b495c1dde8b Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:22 +0100 Subject: staging: vt6655: device_main replace pDevice with priv. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 07ebdea..603f189 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; - - 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); + 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)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); - - pDevice->rd0_pool_dma = pDevice->pool_dma; - pDevice->rd1_pool_dma = pDevice->rd0_pool_dma + - pDevice->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"); - - 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 - ); + priv->aRD0Ring = vir_pool; + priv->aRD1Ring = vir_pool + + priv->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); + + 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(&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 - ); - - 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 - ); + 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 (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; -- cgit v0.10.2 From 5e76c8f4aa4dc952baf62cbaa33785d93cbc10f8 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:23 +0100 Subject: staging: vt6655: device_main.c replace pDesc with desc. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 603f189..41c08b3 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) -- cgit v0.10.2 From 5e011b433639a5485480a8abc9f5b70a049057cb Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:24 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 41c08b3..b330379 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; } -- cgit v0.10.2 From 480fc5b8f6b55173bd26f016118cab0416e96d5d Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:25 +0100 Subject: staging: vt6655: device_main replace pRD with rd. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index b330379..7e76176 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; } -- cgit v0.10.2 From 12f2ee356ef6658d7311e051a4a481b553155185 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:26 +0100 Subject: staging: vt6655: device_main replace pTDInfo with td_info. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 7e76176..ff329bd 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) -- cgit v0.10.2 From 9f31b6955932f9ec2dbf1a1e1827e18ce7239943 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 3 Oct 2015 20:30:27 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index ff329bd..673ca47 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; } -- cgit v0.10.2 From 14f928054a057edf80d154314946664bbc4c2a46 Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:50 +0300 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 92e0702..2aaeb3a 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 860bf26..a933291 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); -- cgit v0.10.2 From b55f00c6edf380e8bb2211dfd466f7c36500f2fe Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:51 +0300 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 2aaeb3a..6a6c5a6 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); -- cgit v0.10.2 From e4ea40f98d2fd9ec01893c0c1a4718f92adac800 Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:52 +0300 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 6a6c5a6..37f51f3 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -218,11 +218,34 @@ 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) { -- cgit v0.10.2 From 565b94506f7e2f77dc0d94b4722532358d5965c7 Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:53 +0300 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 37f51f3..8a2b99c 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) -- cgit v0.10.2 From 757e0cb5f16964d637dffa1bce734208659b7f6e Mon Sep 17 00:00:00 2001 From: Itai Katz Date: Sun, 4 Oct 2015 10:09:54 +0300 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 8a2b99c..fd13053 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 -- cgit v0.10.2 From 53856b23201c780599c877d66b625fcbc5bc9dd3 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:09 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index af3bf21..428b83d 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 2476cf2..3fe96a1 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 -- cgit v0.10.2 From e4ec6d23df2e5e7791fb55247a5481bb2c8d6b39 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:10 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 428b83d..c8d6207 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 afd869b..183e415 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; -- cgit v0.10.2 From 4ed50b03160b3435006cba231afd60dffdd1ffb0 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:11 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index 74fab7e..a608165 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; -- cgit v0.10.2 From 98e0a2881878dca4dbd4e9104c8153871d824ee4 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:12 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_req_layout.h b/drivers/staging/lustre/lustre/include/lustre_req_layout.h index cfcc995..df292f6 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 991fb74..36876a8 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 -- cgit v0.10.2 From 12d0be620fb1cb57ed15c9e167bfab42156594fc Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:13 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index c8d6207..51a4e64 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 13632cd..d93c6b2 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 -- cgit v0.10.2 From 63e9a7485d7a7d7a216f32f9db0b4cc444decab4 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:14 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 882d477..648132a 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 a22b83e..fbf216b 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; -- cgit v0.10.2 From 28fcc6626f1b3880e989f73d0472f54fdb72835f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:15 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/class_obd.c b/drivers/staging/lustre/lustre/obdclass/class_obd.c index d16f85b..e8a1558 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]; -- cgit v0.10.2 From fa9df8e31addd4ae26d8317f166bc09921b3629d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 13:00:16 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_disk.h b/drivers/staging/lustre/lustre/include/lustre_disk.h index 4178c85..f1dc967 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 14cd2bc..26f558e 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 bc15e15..de42acd 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, -- cgit v0.10.2 From 54a5e02abb03d296c07426d51ddaea8f4cc9ca39 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 1 Oct 2015 11:05:57 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/8255.h b/drivers/staging/comedi/drivers/8255.h index 41823de..55a67af 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; -- cgit v0.10.2 From 5cc95cd81bca06698e64b4189a34cb57ec941d0d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 4 Oct 2015 14:58:01 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/genops.c b/drivers/staging/lustre/lustre/obdclass/genops.c index fbf216b..e0b8150 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); -- cgit v0.10.2 From 3a81fc20eadcf193a4517fd5ee862c3d465aceb3 Mon Sep 17 00:00:00 2001 From: Tetsuo Handa Date: Sun, 6 Sep 2015 14:25:35 +0900 Subject: 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 diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c index 872bd60..569d12c 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(); -- cgit v0.10.2 From e260e404ba45422e816eb3af01687870097745ac Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sat, 3 Oct 2015 10:34:59 +0800 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/file_ops.c b/drivers/staging/rdma/hfi1/file_ops.c index 9a77221..7d28680 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; } -- cgit v0.10.2 From e1ab75dd6212992cdc0803315f29fdefc45735f1 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sat, 3 Oct 2015 10:43:11 +0800 Subject: 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 diff --git a/drivers/staging/rdma/ipath/ipath_user_sdma.c b/drivers/staging/rdma/ipath/ipath_user_sdma.c index cc04b7b..e82b3ee 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; -- cgit v0.10.2 From 0bc2763f569ff9533a8222bcb884ef0e22569a72 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sat, 3 Oct 2015 11:00:14 +0800 Subject: 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 diff --git a/drivers/staging/rdma/amso1100/c2_alloc.c b/drivers/staging/rdma/amso1100/c2_alloc.c index 78d247e..039872d 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 25c3f00..956d76b 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); -- cgit v0.10.2 From d574a87cc311cb01486b8947a9133814a79e2e6e Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:36 +0200 Subject: 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 diff --git a/drivers/iio/common/Kconfig b/drivers/iio/common/Kconfig index 790f106..26a6026 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 b1e4d9c..585da6a 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 0000000..b28a92b --- /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 0000000..7846428 --- /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 0000000..056c4f3 --- /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 0000000..7b614ad --- /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 */ -- cgit v0.10.2 From 43e53407f6805044bd13e8bf837e169d38ad0458 Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:37 +0200 Subject: Add tsys01 meas-spec driver support Support for TSYS01 temperature sensor Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron diff --git a/drivers/iio/temperature/Kconfig b/drivers/iio/temperature/Kconfig index 21feaa4..35712032 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 40710a8..368a2a2 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 0000000..05c1206 --- /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"); -- cgit v0.10.2 From 43b2ec01d2140964d98ea7812ca2f9dff67d2db2 Mon Sep 17 00:00:00 2001 From: Andrzej Hajda Date: Mon, 21 Sep 2015 15:33:36 +0200 Subject: 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 diff --git a/drivers/staging/rdma/ehca/ehca_cq.c b/drivers/staging/rdma/ehca/ehca_cq.c index 9b68b17..ea1b5c1 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; } -- cgit v0.10.2 From da5ae8a991d35d73b3875de0298afaf033d85363 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Wed, 8 Jul 2015 17:42:17 +0300 Subject: 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 diff --git a/drivers/vme/bridges/vme_ca91cx42.c b/drivers/vme/bridges/vme_ca91cx42.c index f692efc..1d41cf2 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 fb1e7ad..6c40f28 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 " -- cgit v0.10.2 From e2c6393fda98dde5534dd6f83bd15f76abed6555 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 18 Sep 2015 02:01:42 +0300 Subject: 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 diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index 6c40f28..60c4933 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); @@ -483,73 +471,6 @@ static int tsi148_irq_generate(struct vme_bridge *tsi148_bridge, int level, } /* - * 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. */ static int tsi148_slave_set(struct vme_slave_resource *image, int enabled, @@ -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 5670891..6803744 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 934949a..d8d6b14 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 *); -- cgit v0.10.2 From 472f16f33c7d53515af83c805d4babd8a6c24a19 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 18 Sep 2015 02:01:43 +0300 Subject: 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 diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index 60c4933..4520d98 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 6803744..2b79cd2 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 d8d6b14..92fbe18 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, -- cgit v0.10.2 From 0b0496625715374c7d0b747268c11528e8af32a3 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 18 Sep 2015 02:01:44 +0300 Subject: 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 diff --git a/drivers/vme/bridges/vme_ca91cx42.c b/drivers/vme/bridges/vme_ca91cx42.c index 1d41cf2..b79a74a 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 4520d98..d1e383b 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; - - /* - * 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); + if (err_chk) { + 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 2b79cd2..7a10d92 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; - - 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"); + struct list_head *handler_pos = NULL; + struct vme_error_handler *handler; + u32 aspace = vme_get_aspace(am); + + 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; - - bound = address + count; + struct vme_error_handler *handler; - 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 = kmalloc(sizeof(*handler), GFP_KERNEL); + if (!handler) + return NULL; - valid = vme_err; - break; - } - } + 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); - 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 92fbe18..397578a 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_ */ -- cgit v0.10.2 From 448535a35010253f21ed913a05abe3d0adb47743 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Fri, 18 Sep 2015 02:01:45 +0300 Subject: 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 diff --git a/drivers/vme/vme.c b/drivers/vme/vme.c index 7a10d92..72924b0 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); -- cgit v0.10.2 From d3337eb1e113bed287b58677e755c807be88d507 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Mon, 5 Oct 2015 06:59:17 +0300 Subject: 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 diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index d1e383b..6052483 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; -- cgit v0.10.2 From c18c331193b2270a5d47f4108ab0fc2bf97c3b51 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 4 Oct 2015 20:07:53 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index e987971..8d167fc 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]); } -- cgit v0.10.2 From f40917ea0b976de81d8c77b8c81f9105f363a54b Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 4 Oct 2015 20:12:30 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 8d167fc..057a4c3 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; -- cgit v0.10.2 From 31418e37019ec188f4201587c7234bfb463e7bf4 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 4 Oct 2015 20:15:34 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 057a4c3..2aacb01 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; -- cgit v0.10.2 From 07387cba8168b8dbffe17301290d65e893b831a2 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 4 Oct 2015 20:18:32 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 2aacb01..03e259d 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; -- cgit v0.10.2 From 0ce5fdb14b8ede01a59f378a2f7fcee877dab8ad Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 8 Oct 2015 07:53:58 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 03e259d..0734044 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; -- cgit v0.10.2 From 38a70c9b62f4a71125701cbf488160a31356b965 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 05:32:36 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 9cc92bb..94d4028 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 a2d5aa1..054fd31 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) { -- cgit v0.10.2 From 09eb98b356e4df300d80f819fea6e64a741dd5d9 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 05:32:38 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index 94d4028..e629ca3 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 3241b1f..23cf1b0 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; -- cgit v0.10.2 From be23ce1dfb6ba9dcd2fce9dcc91e6307fc906597 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 05:32:39 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index fc1f573..76b3a84 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 84e9881..3a6539c 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; -- cgit v0.10.2 From 17ad0ce6058df4a3d85024e86ce554ff1f559cbb Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:04 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_log.h b/drivers/staging/lustre/lustre/include/lustre_log.h index 958d012..5d3b2df 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 3984445..c63b720 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 5dff617..b9fe4b0 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); -- cgit v0.10.2 From fcdf51c179d50e71ce9e5a11d87c32baef3c1004 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:05 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h index e629ca3..c4d6c56 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 23cf1b0..973ff8d 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) { -- cgit v0.10.2 From 9dd7d427ab6e26e68d9c245b579a0acde8b671ee Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:06 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 51a4e64..b88c971 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 1ac265d..5aaf42f 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); -- cgit v0.10.2 From 230a8da1c5229fbf0824542987b8febb367a5a14 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:07 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index b88c971..93a039d 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 44fde0b..0131361 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) { -- cgit v0.10.2 From b438000683c91b8c30f889a25ce01868dbc161bc Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 01:36:08 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 648132a..82f1a26 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 1a950fb..75e1dea 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) { -- cgit v0.10.2 From 137e37d0edaec1c6d08159e06253c1057f281182 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Mon, 5 Oct 2015 19:50:50 +0530 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index ecbe94f..f842be6 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) { -- cgit v0.10.2 From b3845d02395ae0800829beed9f199ec4648a750e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 6 Oct 2015 00:40:16 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 0a1c631..601d8c6 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; } -- cgit v0.10.2 From 7ab4609a5dce8816166a2d46c31c603db6edda1a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 6 Oct 2015 00:44:42 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 601d8c6..425c2b1 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)); -- cgit v0.10.2 From 335b9efa7265d56890cc8ed3bafd78c86c33e664 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 6 Oct 2015 00:48:52 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 425c2b1..469c566 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 */ -- cgit v0.10.2 From 29b1b61435cd3e2890883b218a4c96c7df81f3c5 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Tue, 6 Oct 2015 14:40:58 -0700 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 8591d93..57ec8df 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 */ -- cgit v0.10.2 From 2a1283606f5f83f975f4f1abb34242004110f959 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Wed, 7 Oct 2015 10:56:23 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 469c566..db0c1de 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 - -- cgit v0.10.2 From 8d2884ace7919eadcc220934052ba65baae986e2 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Wed, 7 Oct 2015 10:58:18 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index db0c1de..15c6160 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; -- cgit v0.10.2 From 0c9968ef9b9df5fc9468a23c6a5b7456ccddb25f Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:13 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/drv_types.h b/drivers/staging/rtl8712/drv_types.h index e62543d..3d64fee 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__ -- cgit v0.10.2 From 4fd8cba1407b3432bc3ecc26c45bf43a1060d2e7 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:15 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/ieee80211.c b/drivers/staging/rtl8712/ieee80211.c index c5527c1..261a973 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; -- cgit v0.10.2 From 652199cc2850b8ada082be3d856605aeb59b22b0 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:16 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/ieee80211.h b/drivers/staging/rtl8712/ieee80211.h index 6e813a9..d374824c 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 -- cgit v0.10.2 From 852681eb4a4356859e7c99551bbdccebb7ce1b53 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:18 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 5d551a1..f34a963 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); -- cgit v0.10.2 From 61172e0c888b4f6b4608c22162df0cf23bd6e9ce Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:19 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/recv_linux.c b/drivers/staging/rtl8712/recv_linux.c index 4201ce7..2f5460d 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: -- cgit v0.10.2 From ed9c838a5d1e3a27acc7d1848cee4faa810225ff Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:20 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index 007f0a3..b755ab4 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)); -- cgit v0.10.2 From 602cac56ddee29603bf50278d4bb1d1b198687f0 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:21 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h b/drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h index 8dffe10..b7dda90 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)*/ /*--------------------------------------------------------------------------*/ -- cgit v0.10.2 From 3d228d87fc35965f6f563f2b8111ef6c057f0702 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:22 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl8712_gp_bitdef.h b/drivers/staging/rtl8712/rtl8712_gp_bitdef.h index 138ea45..44c9060 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*/ -- cgit v0.10.2 From cbe396fbacc7b9e877a97a394ce2cd4a50a74160 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Thu, 8 Oct 2015 01:25:23 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl8712_hal.h b/drivers/staging/rtl8712/rtl8712_hal.h index 4c51fa3..57d5d2d 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*/ -- cgit v0.10.2 From 1df7e0a10b012b2e3652edcea3536aa10b48e0e9 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 6 Oct 2015 13:26:50 +0530 Subject: 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 diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c index 26b1677..3bdbae8 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 */ -- cgit v0.10.2 From 2136c81fd9e108c0ff6627e86d7ccdd8e4c7f586 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Wed, 7 Oct 2015 10:29:43 +0530 Subject: 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 diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c index 3bdbae8..e5be261 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) -- cgit v0.10.2 From f34b77ec86ec15b3dfe4e82161d77ff96bf6666b Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Tue, 6 Oct 2015 11:35:19 +0300 Subject: 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 diff --git a/drivers/staging/rdma/amso1100/c2.c b/drivers/staging/rdma/amso1100/c2.c index 766a71c..7f1e794 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 1b63185..3ef881f 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 119c4f3..25081e2 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 86708de..e0a7aff 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 d2a6d96..d3c0f77 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; -- cgit v0.10.2 From f60c265159e832ae389f3ab1acf9343d9e86a19a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 7 Oct 2015 18:19:37 +0530 Subject: 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 diff --git a/drivers/staging/speakup/i18n.c b/drivers/staging/speakup/i18n.c index f061747..12f880e 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) { -- cgit v0.10.2 From 367e8560e8d7a62d96e9b1d644028a3816e04206 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Wed, 7 Oct 2015 22:06:55 +0200 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index bfbf15c..deccb1d 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 6dd42b2..20e69f0 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; }; -- cgit v0.10.2 From 157da215b5312017889dc856e770c422db336aac Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 11:07:21 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 39d72ac..47ccaa8 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; } -- cgit v0.10.2 From 792fb25b1be8a61f623438abe40efcdbcb9597a3 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 11:07:22 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 47ccaa8..b1aa7dd 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; } -- cgit v0.10.2 From 5c4008dba721a8e83f9ae8064b1add747ac33927 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 5 Oct 2015 13:50:44 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b1aa7dd..a43eee7 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)); -- cgit v0.10.2 From e60831e9749bd616512295d7d4b383a9a9dee129 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 5 Oct 2015 13:50:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a43eee7..a68bb52 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)); -- cgit v0.10.2 From b0c1e80e42d7505d16dca4b1bd992299030a12dd Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 5 Oct 2015 13:50:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a68bb52..28b616d 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; -- cgit v0.10.2 From ba1d1a695e90756f7bbb45e4e782bede43054c87 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:36 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 28b616d..474f3dc 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 bc8acde..c9ea34e 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 -- cgit v0.10.2 From 607db44794eec00bfd88616dfb30d793c23c3950 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:37 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 474f3dc..143a086 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 c9ea34e..458b1e1 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 04838f1..f3720e7 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; -- cgit v0.10.2 From b6ab85fe61f7d436650197cb100f35971367cbdd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:38 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 143a086..1986271 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 458b1e1..bed8f98 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); -- cgit v0.10.2 From 841dfc428dc0fac52122644cf32f227ecb6f9e16 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:39 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1986271..38f1f5d 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 bed8f98..779ff99 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 f3720e7..788cfaa 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 327ea03..b5b5c67 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, -- cgit v0.10.2 From b9d963333de75d295d344f100fa95d776018b5f0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:40 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 38f1f5d..3bfff77 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 779ff99..856cab0 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*/ -- cgit v0.10.2 From 40cc2c90adfcf1519aa457fc9fedec2ee0856fd5 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:41 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3bfff77..5c85bf9 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; }; -- cgit v0.10.2 From c276c44aacb61b93cc42dd26f630d90b0517e0bd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:42 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5c85bf9..b742e24 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; }; -- cgit v0.10.2 From 4372d3d3c9d14fab2d31d328bfbcba77d7b276da Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b742e24..3398811 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; }; -- cgit v0.10.2 From a949f9095d29f7307dac036c8b7182cb42adad61 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:44 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3398811..50426bf 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 856cab0..e9a9715 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 788cfaa..eac77ce3 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 d25092d..cb21968 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]; -- cgit v0.10.2 From cd1e6cb4c9e165b37632995deb722becbaf2e91b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index e9a9715..460c73b 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 eac77ce3..8068a7e 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; } -- cgit v0.10.2 From 9529650a55f69362c386463001ded3ec0c5f99b3 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 50426bf..8c2ecec 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 460c73b..69c5a94 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 8068a7e..5905040 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); -- cgit v0.10.2 From 073b8d0ca73c252a4e3c5fa71a00b2d41dd274d0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 69c5a94..1ed21a2 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 b5b5c67..8fec64d 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, -- cgit v0.10.2 From 430a78cf77236e5cdb514459ffb38609bd9c10b1 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8c2ecec..07ce4b8 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 1ed21a2..5993cd8 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; }; -- cgit v0.10.2 From fdc22a49b1c04a020c0222ba2ff32eca339fbaef Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 07ce4b8..ddc729c 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 5993cd8..d33e4ee 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 -- cgit v0.10.2 From fc1848acb93b655219d097045bfb50e8bfcab279 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ddc729c..e805787 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 d33e4ee..7c2846e 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 -- cgit v0.10.2 From e4bc3d677e533abcc1cdc8e271ce239d6956ae12 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 5905040..2f67546 100644 --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c @@ -1533,31 +1533,6 @@ static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, u8 ke } /** - * @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 * @param[in] NONE @@ -1666,70 +1641,6 @@ static int change_bss(struct wiphy *wiphy, struct net_device *dev, } /** - * @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; * @param[in] Changed bitfield (see &enum wiphy_params_flags) describes which values @@ -1788,26 +1699,6 @@ static int set_wiphy_params(struct wiphy *wiphy, u32 changed) } /** - * @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 * devices running firmwares capable of generating the (re) association -- cgit v0.10.2 From feea5c4121cf83aab46f9d1a7ab49bc748c3d4a7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index a943b23..bde4095 100644 --- a/drivers/staging/wilc1000/linux_mon.c +++ b/drivers/staging/wilc1000/linux_mon.c @@ -311,32 +311,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 * @param[in] diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index 6e28ca0..300c571 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; -- cgit v0.10.2 From 2a02a3415cf46e1367f647c539c56beb6a92e1d9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 5 Oct 2015 15:25:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e805787..6413a2a 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 7c2846e..7391903 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); -- cgit v0.10.2 From 8f7f06cffb8f2aba83e4033aff1a1359abf294a4 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6413a2a..82c1d03 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 7391903..6e39809 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); -- cgit v0.10.2 From 909cccd9523c5ead7712c7d21dbcba4d35f28f8a Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 82c1d03..6c6c66ee 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)); -- cgit v0.10.2 From a094101cdc86d102e651342ee1078e147203f13f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6c6c66ee..dcd2d5c 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) -- cgit v0.10.2 From 3c5f3e5ad15c162f8bf86c218a02e5cc0e55bc44 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index dcd2d5c..8311d53 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 6e39809..314cd41 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); -- cgit v0.10.2 From d491ef72be51177a41d247a73f4b06cf5d3b084f Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8311d53..605bb2b 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 314cd41..fb135bd 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); -- cgit v0.10.2 From a0c1ee0cb999b726b206039aad459ea3038f7142 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 605bb2b..b8f639e 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; } /** -- cgit v0.10.2 From 230819267c3daad2414d87ab9addeb4164adae74 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b8f639e..9de4b72 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 fb135bd..d77ef20 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); -- cgit v0.10.2 From 49fb6f714c75c77b3dc230c204b6aed8a7f22dd7 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9de4b72..09ebc6f 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 d77ef20..cf93d0d 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); -- cgit v0.10.2 From 2c28293b4882598880534b9d8f5d2e073c32c1c9 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 09ebc6f..f5ece1f 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)); -- cgit v0.10.2 From 23fdedfcca5282e626532359dde6e86fa9c9a3ba Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f5ece1f..32ad1d3 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 -- cgit v0.10.2 From 33e8ce215aff1ea662bdb44e0b30ac461f1c4003 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 32ad1d3..42e8b39 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 cf93d0d..c02d727 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, -- cgit v0.10.2 From c54a9fb8492e5e53edf0b075e501fdaff54abf4e Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 42e8b39..7a93f75 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 c02d727..e3d2484 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, -- cgit v0.10.2 From 517af2f582a93f2f48042b550daab6dbdf395690 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:34:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7a93f75..7867078 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 e3d2484..9bb55ab 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, -- cgit v0.10.2 From 9e5e8b44bc67d2d06f660b6f3e8270f862078011 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7867078..7acd744 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; } /** -- cgit v0.10.2 From 754d8c9016e00fc34dc6460ec00db2544033a12b Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7acd744..1e46552 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; } -- cgit v0.10.2 From 0c694d829c5dfaf33dfcc47c6c2559f238de5978 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1e46552..593d41a 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; -- cgit v0.10.2 From 4929affee3a71243154873bb55763bb923e6bba9 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 593d41a..917cdcc 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; -- cgit v0.10.2 From 8a3c033262311ad274ef40f5ab4f2ec1d453ad72 Mon Sep 17 00:00:00 2001 From: Chaehyun Lim Date: Mon, 5 Oct 2015 19:35:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 917cdcc..8069723 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; } -- cgit v0.10.2 From bcf0265384ded8c89264202faf59fb538c6b25c4 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 17:00:32 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 2f67546..6472777 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) -- cgit v0.10.2 From 281dd5ac142fc9ae19ba12353e860cfcab13b8ab Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 5 Oct 2015 17:00:33 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8069723..ba1d05d 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 */ -- cgit v0.10.2 From 960819a1e572df82cfa8197133ed3f8aca487e1b Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Tue, 6 Oct 2015 22:14:02 +0300 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 65a130d..9f87d05 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) { -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ba1d05d..bb833d3 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); -- cgit v0.10.2 From 53bf4d067d5115ac740bdc907023afe95e449fdd Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:38 +0200 Subject: Add tsys02d meas-spec driver support Support for TSYS02D temperature sensor Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron 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 0000000..6d47e54 --- /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 35712032..c4664e5 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 368a2a2..02bc79d 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 0000000..4c1fbd5 --- /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"); -- cgit v0.10.2 From 2b5c53d2c958bda92310d1b371a9314f4aa8c274 Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:39 +0200 Subject: Add htu21 meas-spec driver support Support for HTU21 temperature & humidity sensor Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index 3786863..0439c2a 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 353ee9a..a7e5ee5 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 3e62c0a..c9f089a 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 0000000..b7f8d05 --- /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"); -- cgit v0.10.2 From 64a70c6502111a2d5bd1dd5eddfa33039aa897b7 Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:40 +0200 Subject: Add ms5637 meas-spec driver support Support for MS5637 temperature & pressure sensor Signed-off-by: Ludovic Tancerel Signed-off-by: Jonathan Cameron diff --git a/drivers/iio/pressure/Kconfig b/drivers/iio/pressure/Kconfig index 4745179..9282ec4 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 a4f98f8..46571c96 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 0000000..e3ad9d3 --- /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"); -- cgit v0.10.2 From 1b75ce658775c9131ea6689ffadcde2663983b6c Mon Sep 17 00:00:00 2001 From: Ludovic Tancerel Date: Thu, 1 Oct 2015 16:13:41 +0200 Subject: 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 diff --git a/Documentation/ABI/testing/sysfs-bus-iio-meas-spec b/Documentation/ABI/testing/sysfs-bus-iio-meas-spec index 6d47e54..1a6265e 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 a7e5ee5..6a23698 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 b7f8d05..d1636a7 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 9282ec4..6f2e7c9 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 e3ad9d3..e8d0e0d 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}, {} }; -- cgit v0.10.2 From 18a16b5e26c74dda2881c8f2977d702fd0e13fda Mon Sep 17 00:00:00 2001 From: Hugo Camboulive Date: Sun, 4 Oct 2015 16:30:45 +0000 Subject: 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 diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index ca7d33f..c7fa2a6 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; -- cgit v0.10.2 From d3a21ce0c60365991e59bbe848457c08f0c3c7ca Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sat, 26 Sep 2015 23:18:57 -0700 Subject: 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 diff --git a/drivers/iio/humidity/hdc100x.c b/drivers/iio/humidity/hdc100x.c index 2824578..a7f61e88 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; } -- cgit v0.10.2 From 862a76acb2a033b886880fc70db19f00a036b4aa Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:53 +0200 Subject: 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 diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index c23d7fa..cffc063 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] = { -- cgit v0.10.2 From 847e3928de0998883219d7052cf4c049c21966e9 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:54 +0200 Subject: 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 diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index cffc063..c61720d 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; } -- cgit v0.10.2 From 7d2da8eaa92585769dfbafe285b94c8f743510f6 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:55 +0200 Subject: 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 diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index c61720d..fe75098 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; -- cgit v0.10.2 From 11687d4aaeb074e0a51c8008c80a14c6b8937b3d Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:56 +0200 Subject: 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 diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index fe75098..1b65fc0 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 -- cgit v0.10.2 From acf2f67d055c656938a3980a0745ed62fb7985c9 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:57 +0200 Subject: 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 diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index 1b65fc0..fdb3e04 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; } -- cgit v0.10.2 From 399910534cca5f00d22438e80ecc7ccc7f4b8a14 Mon Sep 17 00:00:00 2001 From: Hartmut Knaack Date: Fri, 28 Aug 2015 23:59:58 +0200 Subject: 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 diff --git a/drivers/iio/dac/m62332.c b/drivers/iio/dac/m62332.c index fdb3e04..76e8b04 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; -- cgit v0.10.2 From c04782177f212686cd1d74225df34a5c292be25b Mon Sep 17 00:00:00 2001 From: Jonathan Cameron Date: Sun, 11 Oct 2015 12:55:11 +0100 Subject: 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 diff --git a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c index 056c4f3..669dc7c 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; } -- cgit v0.10.2 From 801ab33596f3e2a70a3b3599618d966736299014 Mon Sep 17 00:00:00 2001 From: Jonathan Cameron Date: Wed, 23 Sep 2015 20:36:02 +0100 Subject: 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 diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c index bf80ce4..7d269ef 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); -- cgit v0.10.2 From 7d27a1846ccc27000d9e5027a289ad9e35a88d60 Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Thu, 8 Oct 2015 21:58:36 -0700 Subject: 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 diff --git a/drivers/staging/skein/skein_api.c b/drivers/staging/skein/skein_api.c index 5bfce07..e6c2b06 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 7e700a6..bfb08fa 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) { -- cgit v0.10.2 From c6045d565283f4dea87be87c94d517b37940a3ef Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Thu, 8 Oct 2015 21:57:25 -0700 Subject: 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 diff --git a/drivers/staging/skein/skein_block.c b/drivers/staging/skein/skein_block.c index b0cd935..dda5c00 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) -#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 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_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) - -#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 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_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) -- cgit v0.10.2 From 07a5a4b1ae83914147edc0dfaa5ac5fe3be20c62 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 9 Oct 2015 16:31:37 +0300 Subject: 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 diff --git a/drivers/staging/skein/skein_generic.c b/drivers/staging/skein/skein_generic.c index 899078f..c112694 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), -- cgit v0.10.2 From de7be81decb6b6a96ea8380b87f9c462e22c5b89 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 9 Oct 2015 16:31:38 +0300 Subject: 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 diff --git a/drivers/staging/skein/skein_generic.c b/drivers/staging/skein/skein_generic.c index c112694..e29b9ab 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); } -- cgit v0.10.2 From 6db8b7b4860d54f26a9a907b918aa06daf28948b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 8 Oct 2015 23:36:47 +0530 Subject: 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 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 e8e0b08..0000000 --- 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 -- cgit v0.10.2 From 848333219c3370a9f6473b50debefbfa467f7b23 Mon Sep 17 00:00:00 2001 From: Yazen Ghannam Date: Thu, 8 Oct 2015 19:01:16 -0400 Subject: staging/lustre: Remove unused, commented function call Also fixes a coding style error. Signed-off-by: Yazen Ghannam Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index b8ca324..f014015 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; -- cgit v0.10.2 From 5913ef5eb950ff397363201d59f93210a6ccc16f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 22:40:06 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lu_object.h b/drivers/staging/lustre/lustre/include/lu_object.h index e2199c2..7dafc28 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 814e56a..a801b6c 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. -- cgit v0.10.2 From 2e33ffb6d55ede834864861a4a47122e2aa2b6e2 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 22:40:07 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index 22f3777..6d127a0 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 da4afe0..c8a5ff4 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, -- cgit v0.10.2 From 03a7fc24e82985e0f1b4c543d310acde9ec84a42 Mon Sep 17 00:00:00 2001 From: Ryan Van Quinlan Date: Sat, 10 Oct 2015 21:53:50 -0700 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lclient/glimpse.c b/drivers/staging/lustre/lustre/lclient/glimpse.c index b9f2bb6..8533a1e 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); -- cgit v0.10.2 From f999d0987ec1e88c455fb95e48a12a98a9fbd9a6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 12 Oct 2015 20:49:18 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index 225e5ed..86c0303e 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); -- cgit v0.10.2 From f9459c0aa4d924fb12e2f490bcbe790fa77ceb1e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 13 Oct 2015 03:13:02 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/statahead.c b/drivers/staging/lustre/lustre/llite/statahead.c index c860281..18f5f2b 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; -- cgit v0.10.2 From 80fb74c38709fd12e73f33ae464b37821cb01136 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 00:55:17 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 0734044..02e6f64 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); } -- cgit v0.10.2 From a0fd4b57ba0258c84b5208913943eece7bf1c8f1 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 9 Oct 2015 03:10:15 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 02e6f64..1c13e5b 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); -- cgit v0.10.2 From 2a66a986b412d96cfa6bf700b721729b722bed9b Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 9 Oct 2015 03:11:59 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 1c13e5b..5f8c4aa 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) -- cgit v0.10.2 From a76f23d66df1cf41c759fe877e77441c9dd65e5e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 9 Oct 2015 03:15:01 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 5f8c4aa..453c86e 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) -- cgit v0.10.2 From 43ce0b538a5e2b8117337e6509f667943222ef3e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:14:27 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 453c86e..8b8ec14 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; } } -- cgit v0.10.2 From 0221381c46457c5c305b9cb5bc4f84b8e29e4d71 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:16:02 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.h b/drivers/staging/sm750fb/ddk750_chip.h index 6e87a17..0891384 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 -- cgit v0.10.2 From edb23022f2c8d58d109e43c3e7428771a724c747 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:17:44 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 24c1c82..3691db1 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. */ -- cgit v0.10.2 From aa355c8645c1f26bef432f66c8943e6fb97ac351 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:19:00 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 3691db1..91ee375 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); -- cgit v0.10.2 From e80ef45dadf7895b87d40f053ba861d318a9426a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:20:36 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index 91ee375..f8005c2 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); -- cgit v0.10.2 From aeec43da3e4927e33b598b05925046eb1ab9d963 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 02:21:30 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_display.c b/drivers/staging/sm750fb/ddk750_display.c index f8005c2..84f6e8b 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) -- cgit v0.10.2 From 31557ea0337eb3db5937f441bfa028caba5836d6 Mon Sep 17 00:00:00 2001 From: Binbin Zhou Date: Mon, 12 Oct 2015 09:48:27 +0800 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 494017f..8c1ecb3 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; } -- cgit v0.10.2 From 9f17591fa757a089348c251f23bb9bcebaf08cb1 Mon Sep 17 00:00:00 2001 From: Masanari Iida Date: Sat, 10 Oct 2015 13:42:49 +0900 Subject: 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 diff --git a/drivers/staging/most/Documentation/ABI/sysfs-class-most.txt b/drivers/staging/most/Documentation/ABI/sysfs-class-most.txt index 380c137..42ff0d8 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 fc54876..28a0e17 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 fcd7559..a73eb5f 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, -- cgit v0.10.2 From 514d4d744d5c40aed94c4424a715227698935be9 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 12 Oct 2015 18:44:34 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index cffea40..9768281 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, -- cgit v0.10.2 From 4ecc4a18d987e7e9f4b7eff2bf9215ac02c8a980 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Fri, 9 Oct 2015 15:56:59 +0200 Subject: 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 diff --git a/drivers/staging/rdma/ipath/ipath_fs.c b/drivers/staging/rdma/ipath/ipath_fs.c index 25422a3..796af686 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)) { -- cgit v0.10.2 From 314fcc0d53261a984788d09a1076c17a919504fe Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 21:03:26 +0530 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/diag.c b/drivers/staging/rdma/hfi1/diag.c index 3e8d5ac..3d025d7 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 a877eda..84e6213 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 6620262..368878f 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; -- cgit v0.10.2 From be036bbe2c16929806ab747bfe8a88f5d6dbd0e5 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 21:03:27 +0530 Subject: 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 diff --git a/drivers/staging/rdma/ipath/ipath_init_chip.c b/drivers/staging/rdma/ipath/ipath_init_chip.c index e95af81..cec1ebb 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 face876..b2c6766 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 17d9dca..40f7f05 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) { -- cgit v0.10.2 From 806e6e1bec9c2e7a749748f4edb2e812b6b2fdeb Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Mon, 12 Oct 2015 14:28:36 -0700 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/chip.c b/drivers/staging/rdma/hfi1/chip.c index aa58e59..1152359 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 84e6213..cd1508ec 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 9991814..67dd93a 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 368878f..10ab807 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; -- cgit v0.10.2 From 075eb0dc3670328fa62425449ca4b52bde2d3c17 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Thu, 8 Oct 2015 17:21:49 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 28b54ba..0bae93b 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); -- cgit v0.10.2 From d0ac7d896ab4f0f7dbe6ba771677491f46e8569b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 11 Oct 2015 10:41:21 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index f2d09fe..c443e2e 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)) -- cgit v0.10.2 From d91398347dade7a234f2d44a2475afca28e3b53a Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 11 Oct 2015 10:41:22 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c index ae1b3cf..208be5f 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: -- cgit v0.10.2 From 879f3074c2484e7fc972cebf23d0a55fd2430605 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 11 Oct 2015 10:41:23 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c index 0aa9021..4b5f32d 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 */ -- cgit v0.10.2 From f517f3bf07f1f776f12b2413dbefa21523021ac1 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sun, 11 Oct 2015 14:31:07 +0100 Subject: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 0bae93b..eab0d81 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, }; -- cgit v0.10.2 From 3cd66a18138ce6439ef11dca6347c6c1e180189c Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sun, 11 Oct 2015 14:42:01 +0100 Subject: 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 diff --git a/drivers/staging/rtl8192u/r8192U_wx.c b/drivers/staging/rtl8192u/r8192U_wx.c index 8359705..4911fef 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 */ -- cgit v0.10.2 From eef6c808d3828d55334023c13c96e1ca5cd1008b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 00:55:18 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c index f8b5b33..4c63baa 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; -- cgit v0.10.2 From b33fc7229154341c466cbc5c5b7ca69d16054771 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 14:31:11 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index 15c6160..d3a1208 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; -- cgit v0.10.2 From 942eaa867f321380129d8519e5279a67e8f4c04e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 10 Oct 2015 17:54:09 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index d3a1208..e0ae57d 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--; } -- cgit v0.10.2 From 681cd988d3587ca2b3afa3db598a2ecab572b742 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sun, 11 Oct 2015 14:16:57 +0100 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 57ec8df..4e6db88 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; -- cgit v0.10.2 From 19fac3bbe2d797be29665347f3f37dd4ceb29061 Mon Sep 17 00:00:00 2001 From: Iban Rodriguez Date: Mon, 5 Oct 2015 21:18:09 +0200 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/odm.c b/drivers/staging/rtl8188eu/hal/odm.c index 710fdc3..46be4de 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============================================================ */ -- cgit v0.10.2 From d84d66f6f7f33f74abe4a8446006fe44fcc90a1f Mon Sep 17 00:00:00 2001 From: Ivan Safonov Date: Thu, 8 Oct 2015 13:40:11 +0700 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/bb_cfg.c b/drivers/staging/rtl8188eu/hal/bb_cfg.c index 9c7e626..fa461b4 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[] = { -- cgit v0.10.2 From e525e7a63ba4b544f47fe57a3ed3480af288f8eb Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 00:55:19 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index 0270755..d8a0895 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 1170dd0..6983c57 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) { -- cgit v0.10.2 From 59056281af5d4b011380bfbb59436a392c452bde Mon Sep 17 00:00:00 2001 From: Ivan Safonov Date: Sat, 10 Oct 2015 19:21:54 +0700 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/bb_cfg.c b/drivers/staging/rtl8188eu/hal/bb_cfg.c index fa461b4..88c3ad7 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) { -- cgit v0.10.2 From bb30b15aeaeacc980facbe877ed23882e35fcd8c Mon Sep 17 00:00:00 2001 From: Ivan Safonov Date: Sat, 10 Oct 2015 19:23:50 +0700 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/bb_cfg.c b/drivers/staging/rtl8188eu/hal/bb_cfg.c index 88c3ad7..4eb982b 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); -- cgit v0.10.2 From 5e757bc58d15b9fc7d36bb4fcc6f068489e2d29d Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 21:03:28 +0530 Subject: 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 diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 85c9fec..6db74de 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; -- cgit v0.10.2 From 91678f37004d84757738790a7257b87cc909f483 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Mon, 12 Oct 2015 15:28:57 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 6db74de..296b11c 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, -- cgit v0.10.2 From 9f00be7f9e08c8f95663cda9635d81a87c9ded7f Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:39 -0400 Subject: 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 diff --git a/drivers/staging/unisys/include/channel.h b/drivers/staging/unisys/include/channel.h index da0b538..698adeb 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 { \ -- cgit v0.10.2 From 54bf4d454e37d66041871775ce66cda972c70cea Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:40 -0400 Subject: 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 diff --git a/drivers/staging/unisys/include/channel.h b/drivers/staging/unisys/include/channel.h index 698adeb..c6c2442 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 -- cgit v0.10.2 From ad1a71546cd1cb8cf009fdbc15aad9bc7efb820f Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:41 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c index 2693c46..0b6a210 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) -- cgit v0.10.2 From f4b97f9c15da4f86acc98da4d67be2305751fd21 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:42 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c index 0b6a210..a4e117f 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; } -- cgit v0.10.2 From 0435d1449bca964182588c6673a944239f279785 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:43 -0400 Subject: 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 diff --git a/drivers/staging/unisys/include/periodic_work.h b/drivers/staging/unisys/include/periodic_work.h index 4e19c28..d42b2d0 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); -- cgit v0.10.2 From 3204d5a28f129800e1e7ca78acd2d30f5752090a Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:44 -0400 Subject: 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 diff --git a/drivers/staging/unisys/include/periodic_work.h b/drivers/staging/unisys/include/periodic_work.h index d42b2d0..0b3335a 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. */ -- cgit v0.10.2 From b1121ab49f72faeccef3be4eb3ff9548582084c7 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:45 -0400 Subject: 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 diff --git a/drivers/staging/unisys/include/diagchannel.h b/drivers/staging/unisys/include/diagchannel.h index d2d3568..6e813c7 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 -- cgit v0.10.2 From aa1a9c016115152b1b0349a018bf2c743a04ef72 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Mon, 12 Oct 2015 15:19:46 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorbus/vmcallinterface.h b/drivers/staging/unisys/visorbus/vmcallinterface.h index 7abd27a..7a18aa8 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__ */ -- cgit v0.10.2 From b775df29f0ba51f16fae46b6e7c2c6a38f39e33c Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Fri, 9 Oct 2015 22:17:56 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index c9183e0..63aefb8 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) -- cgit v0.10.2 From d0fbf9f303b2d0791953ca13bb6b17f8081cc36a Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Fri, 9 Oct 2015 22:17:57 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index 63aefb8..5b3be9b 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. */ -- cgit v0.10.2 From 905907500cd9bae3f6bef24925d5887d5c27e5aa Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Fri, 9 Oct 2015 22:17:58 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index 5b3be9b..9dc5cc9 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); -- cgit v0.10.2 From d4583edb221eb7297bcbc6f0febe895a96fed5f7 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Mon, 12 Oct 2015 16:12:33 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet-xaui.c b/drivers/staging/octeon/ethernet-xaui.c index 4b47bcf..9097edf 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; } -- cgit v0.10.2 From 41cb5786550ef67f970a2c1446f480d1ee0e2b69 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Mon, 12 Oct 2015 16:12:34 +0300 Subject: staging: octeon-ethernet: xaui: use common init Use common init. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/octeon/ethernet-xaui.c b/drivers/staging/octeon/ethernet-xaui.c index 9097edf..c26d1e6 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 9dc5cc9..d6f8a10 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 67f640f..dfb808f 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); -- cgit v0.10.2 From 749f3c05004ea9bf5b8cfca2c9edd41c764d68c2 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 9 Oct 2015 21:03:29 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c index a0d5546..113fbf7 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; -- cgit v0.10.2 From c1aa41dc7b8ef94c36a1213b475bbe7fe1e81304 Mon Sep 17 00:00:00 2001 From: Paul McQuade Date: Sun, 11 Oct 2015 16:22:10 +0100 Subject: Staging: vt6655: Renamed uRATE to rate Renamed uRATE to rate to avoid camelcase Signed-off-by: Paul McQuade Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/rf.c b/drivers/staging/vt6655/rf.c index c537321..4c22bb3 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 b5fc3ee..e9c7869 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 -- cgit v0.10.2 From b2d44fe3ec1b2f0db17e33de62daacc11275d0e3 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Mon, 12 Oct 2015 00:49:08 +0530 Subject: 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 diff --git a/drivers/staging/vt6655/rxtx.c b/drivers/staging/vt6655/rxtx.c index 5875d65..0c1f6a1 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 -- cgit v0.10.2 From 45e68e45d38871ff76d838a0410fabbd5d26aed0 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Mon, 12 Oct 2015 00:49:34 +0530 Subject: 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 diff --git a/drivers/staging/vt6655/rxtx.c b/drivers/staging/vt6655/rxtx.c index 0c1f6a1..b668db6 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); -- cgit v0.10.2 From 4188e5862f40cb64256127b1ef7acfcc17e5467f Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Mon, 12 Oct 2015 23:14:15 +0530 Subject: 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 diff --git a/drivers/staging/vt6655/mac.c b/drivers/staging/vt6655/mac.c index 3dfd333..688c3be 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); -- cgit v0.10.2 From 0a589f4f1b6505e26dc592e1aba360af5d6f8dc6 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Mon, 12 Oct 2015 13:53:22 -0700 Subject: 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 diff --git a/drivers/staging/gdm72xx/gdm_wimax.c b/drivers/staging/gdm72xx/gdm_wimax.c index 6e8dbaf..69f00cc 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); -- cgit v0.10.2 From 441dc609da9d64f18026f1b0fb73a2d5f1e0d023 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:35 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index bb833d3..e9df5a4 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 9bb55ab..6f6362e 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 f6a6287..fe4f305 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 6472777..04b8dae 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 cb21968..8bcfcc2 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 { -- cgit v0.10.2 From 2482a79f48e5f8ba567887ee8a9a0f38cd09863b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:36 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e9df5a4..667eb4f 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)); -- cgit v0.10.2 From b68d820bb5f47a230998c59b6cc10a269a9f107a Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:37 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 667eb4f..02bb3f4 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; } /** -- cgit v0.10.2 From aaed3290f9ffe1428ba8a7f4284f80a165cf453f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:38 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 04b8dae..a5617de 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) -- cgit v0.10.2 From 033622862c5a2277c6cfdea9e141d45fcd2e9924 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:55:39 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 9f87d05..3244e2a 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 58aa13c..4d65088 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 02bb3f4..ad77121 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) { -- cgit v0.10.2 From 684125a25e46214145dd4349d8326bf40c829a93 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:55:40 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 3244e2a..1d45869 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 4d65088..8ba30dc 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); -- cgit v0.10.2 From e9e0c260996f7ef1e5aa050a687d0e8086749478 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:41 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 1d45869..2e063f6 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 8ba30dc..306efc9 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 ad77121..25834cd 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; -- cgit v0.10.2 From 20212c033aff93330c9f327574159bf6f3c2a49b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:42 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 306efc9..02faf58 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 6f6362e..3ab9220 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 8fec64d..be972af 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, -- cgit v0.10.2 From 416d8321f597217240f2a287f70b4e7d72266d35 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.h b/drivers/staging/wilc1000/coreconfigurator.h index 02faf58..27c1a86 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 25834cd..1e18d50 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); -- cgit v0.10.2 From daaf16babf759b29c154e124586909a0b74d403b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:44 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 2e063f6..05a0c16 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 27c1a86..0d3bff7 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 1e18d50..443e783 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); -- cgit v0.10.2 From 2fd3e44354370aea686a50e9f18b92d6a8d2b5fe Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 05a0c16..e51ae3a 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 0d3bff7..3595a0a 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 443e783..fae96fc 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)); -- cgit v0.10.2 From 900bb4a6523e7fa0db8aee0e84036a6de2da23fd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index e51ae3a..39e463c 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 3595a0a..6294d92 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 fae96fc..5ee8c3a 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, -- cgit v0.10.2 From fa2ce581c9582f4ab1458f886341df16497f5b46 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5ee8c3a..77aefaf 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; -- cgit v0.10.2 From c0dba8d3bbdac36d5e01e09ef9363ea1de84b304 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 77aefaf..89b6cdd 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, -- cgit v0.10.2 From e0a122178bb0529720e0cdaadb9dd9a126e16796 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 89b6cdd..0d83351 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"); } -- cgit v0.10.2 From 541963223be3d557dcff30c2aa3c0b2b641fcb97 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0d83351..fdde387 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; -- cgit v0.10.2 From b4fe59d8e8691ade69a075cc2fd6646e3452701e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 3ab9220..b718598 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; -- cgit v0.10.2 From c944a4e8ad2fca231f7a1c1b03aac761b814cb14 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index b718598..9cf1e99 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; -- cgit v0.10.2 From db9f1b1284d704152517d9bba343530b22129394 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 9cf1e99..0460af2 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; -- cgit v0.10.2 From 73735e49383675ee1caf7a93dfd61976c2244fc8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 0460af2..0f5fcca 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 { -- cgit v0.10.2 From ad61fcea233c09884ebe07762e99536bb54e27e8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 0f5fcca..cfe2ced 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; }; -- cgit v0.10.2 From 8b58a2b6580ef6dda2051b3289d735f45ef8bd02 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index cfe2ced..20fd876 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 -- cgit v0.10.2 From 4ef4d19593278905644a5ec6f477b73191a37ab6 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 20fd876..c3379ec 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; -- cgit v0.10.2 From 03e7b9c4283b325362e9c6b2640e21d2a3e131a7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fdde387..6f4eda6 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 c3379ec..1097f10 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 a5617de..dd96909 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); -- cgit v0.10.2 From 1ec3815f38d74c6ef99dc48d9a7cc18555108565 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:55:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6f4eda6..54b2a61 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 1097f10..64ee054 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 dd96909..45a10c5 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; -- cgit v0.10.2 From 200ac21b0de03a8775763404baa95c373a1b8fd1 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:56:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index 64ee054..ad4c1c4 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]; -- cgit v0.10.2 From ed3f0379a272d7ef4e787f42575eac642b5b020e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:56:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index ad4c1c4..a88fd82 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 45a10c5..11f9d46 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, -- cgit v0.10.2 From 7696edf4d57f7a3d8a45ccf01f201b980c077d08 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 12 Oct 2015 16:56:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 54b2a61..6826298 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"); -- cgit v0.10.2 From f6e55e043f9fbf3c0a04485ec5ffc5d0ba76d498 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h index a88fd82..c6dbb6e 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; -- cgit v0.10.2 From 60bd1003e1045732233493595367bf1d6d5df9f2 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/Makefile b/drivers/staging/wilc1000/Makefile index f495061..64c2f1b 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 11f9d46..7abdd53 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 e11d3d3..1d23bad 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" /******************************************** -- cgit v0.10.2 From a4ab1ade75a3ae1d252efb2d38865a677d503e8f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6826298..9309678 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; - } - - 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); - - 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)); -- cgit v0.10.2 From 221371e5b286ed3b199b24a345f0db79d84dce2f Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9309678..4bf10eb 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)); -- cgit v0.10.2 From 87c05b286316f0dc3ba5f42f16043b213fb71d88 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:07 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4bf10eb..d905e17 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 c6dbb6e..0c5f395 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 7abdd53..cb2144f 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; } -- cgit v0.10.2 From 2ed7a2fbddcd0069801ab4aae928d2036a08b9da Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d905e17..d03643d 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)); -- cgit v0.10.2 From e3501a4d7c0bd3bb74440ad6c1e175e669079ddf Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index d03643d..83818b8 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; -- cgit v0.10.2 From 610e38680fdcaec5911619df317eeea20672fdc6 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 83818b8..3437d8c 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); } -- cgit v0.10.2 From e5538d34b323065f321eea8f2847c2b21bef16e8 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3437d8c..b331a7b 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)); -- cgit v0.10.2 From d520e35522055199c011fbc79e4bd8e6a28eb960 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:12 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b331a7b..c4c570a 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; -- cgit v0.10.2 From 259b3aa61efb5b94bf72e1da8b404bff6b88fa34 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:13 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c4c570a..c808f92 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; -- cgit v0.10.2 From b5eaff1278a283a8eb94b82b965009f92d78fbe2 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:14 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c808f92..edea265 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 */ -- cgit v0.10.2 From 7fa252e7ef373be0c263635ecdd8987b1db61939 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Mon, 12 Oct 2015 16:56:15 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index edea265..ec04aec 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)); -- cgit v0.10.2 From 6b69b4f0aa7d3e3d5810f5c8c1c55c55be0927d2 Mon Sep 17 00:00:00 2001 From: Stanislav Kholmanskikh Date: Thu, 8 Oct 2015 21:23:13 +0300 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 51bbd96..c6c1f6e 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 d8eed0f..7356785 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 -- cgit v0.10.2 From 56293ff232b9e2b071ffff177010b296acda0523 Mon Sep 17 00:00:00 2001 From: Stanislav Kholmanskikh Date: Thu, 8 Oct 2015 21:23:14 +0300 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index c6c1f6e..760b72a 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) -- cgit v0.10.2 From 39823a50ff371cbaa0baa7ccb7a479e61375b4a0 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Thu, 8 Oct 2015 21:18:03 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index 1d23bad..d3f39557 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; -- cgit v0.10.2 From c22cbec069b532c4a9a33236305ee4d833ec67e6 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Sun, 11 Oct 2015 22:01:37 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c b/drivers/staging/wilc1000/wilc_msgqueue.c index d5ebd6d..b13809a 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) { -- cgit v0.10.2 From cccfc39e5cf502334558ed511873195d5b8df03f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 12 Oct 2015 20:49:19 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index cb2144f..6430bbf 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; - } - - 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_ptk_params.key); + g_key_ptk_params.key = NULL; + kfree(g_key_ptk_params.seq); + g_key_ptk_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); -- cgit v0.10.2 From fbeb0dab5e6c3013d176a9070ffa8a1eb250d5f1 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Mon, 12 Oct 2015 20:49:20 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index fe4f305..ccab89f 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) -- cgit v0.10.2 From 3604af50a24ec45f76088e2da7bfb5758a5c1d7b Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Mon, 12 Oct 2015 13:22:44 -0700 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 6430bbf..004f441 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"); -- cgit v0.10.2 From 9753007ed793b41d95d8719594c2029e54c26a90 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:10 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index ce2d1c7..926808b 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 81c793a..81f0da2 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 900e3ae..09d3de7 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 48b6056..c8a6c28 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 a8d50a5..497e1f4 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 -- cgit v0.10.2 From 40215ddffc2fb6ada9fdcd7461a2f0bf922bcca0 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:11 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 944982a..e7c946e 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 926808b..4bb3e6f 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 81f0da2..e8aaf35 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 09d3de7..fb95282 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 c8a6c28..dffb4af 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 497e1f4..ddf0e41 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); } - } } -- cgit v0.10.2 From 205fc1fc9520461a18810dc659bdb3fba2d88287 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:12 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index e7c946e..5a35808 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 4bb3e6f..fc3eff9 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 e8aaf35..5f46e69 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 fb95282..3dd7342 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 ddf0e41..d44ee4e 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); -- cgit v0.10.2 From 6f418259ec2c94205730d1946082cfb7d2f9e62e Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:13 +0530 Subject: staging: dgnc: remove space after cast Space is not necessary after typecast. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 5a35808..50fe22b 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 fc3eff9..0336666 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 5f46e69..9ec3efe 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 3dd7342..0d7ba53 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 d44ee4e..6c71a2f 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; } -- cgit v0.10.2 From e352d3f19e12416c4bb489640e8da70657886854 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:14 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 50fe22b..75040da 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 0336666..619baa9 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 0d7ba53..99287bb 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 6c71a2f..18f0dae 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; -- cgit v0.10.2 From 7df227c4ece0968a625f0fda1e19d2980f6859b9 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 19:50:15 +0530 Subject: staging: dgnc: remove parenthesis checkpatch was warning us about extra unneeded parenthesis. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/dgnc/dgnc_neo.c b/drivers/staging/dgnc/dgnc_neo.c index 99287bb..8106f52 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 dffb4af..74a0725 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 18f0dae..8489e5a 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); } -- cgit v0.10.2 From 35e942f3167a2ba18bd3db9c964183d81c130a7d Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Sun, 4 Oct 2015 21:19:20 +0530 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 64f6149..aa3aa72 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 e707ed5..c84dbf2 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; -- cgit v0.10.2 From 36e712a8a14d336a2f6433f64a8e2bb974138aec Mon Sep 17 00:00:00 2001 From: Parshuram Thombare Date: Sat, 10 Oct 2015 19:06:44 -0400 Subject: staging: dgnc: simplify a trivial if-return sequence Signed-off-by: Parshuram Thombare Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index 8489e5a..4ac9092 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; } /* -- cgit v0.10.2 From cea07e523c218ba45b9448ff78e18357880a2548 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 10 Oct 2015 17:21:42 +0200 Subject: 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 diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index 9038e0b..3f424d1 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); } } -- cgit v0.10.2 From 30d7979259663ce3e0b942498a890a0977a667d6 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:29 -0400 Subject: 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 diff --git a/drivers/staging/android/ion/ion_page_pool.c b/drivers/staging/android/ion/ion_page_pool.c index 19ad3ab..fd7e23e 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); -- cgit v0.10.2 From 35890c28eec9535d910380b598712bd4b6d7717d Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:30 -0400 Subject: 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 diff --git a/drivers/staging/android/ion/tegra/Makefile b/drivers/staging/android/ion/tegra/Makefile index 11cd003..808f1f5 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 -- cgit v0.10.2 From 12950595906f9879cd0e61da6fa7b1ff6553180b Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:28 -0400 Subject: 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 diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index f7f8c81..3f2a3d6 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); -- cgit v0.10.2 From db1ad33bcfc45bd90994d3855a255e2daf746a3c Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:31 -0400 Subject: 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 diff --git a/drivers/staging/android/sw_sync.c b/drivers/staging/android/sw_sync.c index 29b5c35..c4ff167 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 */ -- cgit v0.10.2 From 380b6549e5f799fabc5523a09446aa8c4da8c26b Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:32 -0400 Subject: 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 diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c index 569d12c..e679d84 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"); - -- cgit v0.10.2 From e20ec73ac2f3b896592a2922104379af1052e581 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:33 -0400 Subject: 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 diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c index b41429f..aff9cdb 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); -- cgit v0.10.2 From 0af61e66ee16211a970839c5faac8a4c9869eb49 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 11 Oct 2015 15:47:34 -0400 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index f626364..0492747 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 */ @@ -3321,28 +3319,6 @@ static void nbu2ss_drv_shutdown(struct platform_device *pdev) } /*-------------------------------------------------------------------------*/ -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) { struct nbu2ss_udc *udc; @@ -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); -- cgit v0.10.2 From 629af2407d78b3cda77856fd7f5b000d24d7e12f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 1 Oct 2015 11:59:27 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcm3724.c b/drivers/staging/comedi/drivers/pcm3724.c index 6176dfa..3149c01 100644 --- a/drivers/staging/comedi/drivers/pcm3724.c +++ b/drivers/staging/comedi/drivers/pcm3724.c @@ -1,31 +1,25 @@ /* - comedi/drivers/pcm724.c - - Drew Csillag - - hardware driver for Advantech card: - card: PCM-3724 - driver: pcm3724 + * pcm3724.c + * Comedi driver for Advantech PCM-3724 Digital I/O board + * + * Drew Csillag + */ - 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 -- cgit v0.10.2 From 5891b5b2aafda9f0013b3bf46ea12d41e094f1bf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 1 Oct 2015 11:59:28 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcm3724.c b/drivers/staging/comedi/drivers/pcm3724.c index 3149c01..be5fe04 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 */ -- cgit v0.10.2 From 647d8aec47336aff073b10ca2de036c1a1f66b6f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 1 Oct 2015 11:59:29 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcm3724.c b/drivers/staging/comedi/drivers/pcm3724.c index be5fe04..588ae5e 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"); -- cgit v0.10.2 From 23d4f0245f6f48ee374069110b86c75166d1e152 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:48 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 152cb14..a4a5244 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; -- cgit v0.10.2 From 4d6b700801bfeef15a059fc6739bfcd741cd9c15 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:49 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index a4a5244..b2effb8 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; -- cgit v0.10.2 From c3f7e15383a9e86a56820c34d5ef761c4682e47b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:50 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index b2effb8..cf144ce 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; -- cgit v0.10.2 From 1271dd24c63478b08fc574ec8b4fa50902b368f0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:51 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index cf144ce..4f87147 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; -- cgit v0.10.2 From e031642eccc040648b09cfc7d632e2e8d0b6f94f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:52 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 4f87147..ab336ce 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; -- cgit v0.10.2 From 491205bbc6fbab7388732297037a9a2fc16c3616 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:53 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index ab336ce..a2bbba1 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 -- cgit v0.10.2 From 075d58164e1271d9da3796fb883db9928b13f91b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:54 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index a2bbba1..0d814ff 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) -- cgit v0.10.2 From d9952688a33a79cf756de6a8392b9c1eec90cab1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:55 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 0d814ff..2f35305 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; -- cgit v0.10.2 From ed811a328a161794e1e2dda0a75c6925cfd6ddcd Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:56 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 2f35305..a027d20 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 -- cgit v0.10.2 From bd9d00f105bf0fb26a85f5ad3b75d0b161304478 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:57 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index a027d20..29eb5bc 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; -- cgit v0.10.2 From 77e546de4cc688b8045686b079e438dafbf9812c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:58 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 29eb5bc..8d8ffd3 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) -- cgit v0.10.2 From b0f9b0ad0fe7146fd5b23ad592ffafc541be286d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:22:59 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 8d8ffd3..8256615 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) -- cgit v0.10.2 From cd644206e2db1d0249534e2c4e86cbfada4f5bd2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:00 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 8256615..29df086 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 -- cgit v0.10.2 From f765b2f4fb45a9625bce619c6652b9f48510cef1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:01 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 29df086..b7a20f7 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; } -- cgit v0.10.2 From c06c3c953a9b89c1ffe70ba57762fbaafdcd6613 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index b7a20f7..c575104 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 -- cgit v0.10.2 From 3c56cdc5cc16dabd6ed0867977a6e374a3cc0da7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:03 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index c575104..17b614c 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 -- cgit v0.10.2 From 16d6b58753ccc34e6d915118984b60457d2c3327 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:04 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 17b614c..8237826 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 -- cgit v0.10.2 From 7689f55b62836a5e5de2f9a5cd8d215071636013 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:05 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 8237826..bab3293 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; -- cgit v0.10.2 From f676376d692d8e02603e2bf1d0b4e8ca1b56506d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:06 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index bab3293..7432e57 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; + } - 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); - 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; + } - /* If there's a limit, decrement it - * and stop conversion if zero - */ + if ((loop_limit--) <= 0) + break; - if (cmd->stop_src == TRIG_COUNT && - s->async->scans_done >= cmd->stop_arg) { - s->async->events |= COMEDI_CB_EOA; - break; - } + status = inb(dev->iobase + DAQP_STATUS_REG); + } - if ((loop_limit--) <= 0) - break; - } + if (loop_limit <= 0) { + dev_warn(dev->class_dev, + "loop_limit reached in daqp_interrupt()\n"); + s->async->events |= COMEDI_CB_ERROR; + } - 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); - 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); -- cgit v0.10.2 From 77e7c200f37536e05f714bcebc34f58aba9eabfc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:07 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 7432e57..c44e7ec 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; -- cgit v0.10.2 From 848a7f7af0fb490274dc6031b0a79f4440a4948f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:08 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index c44e7ec..4b9626b 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 */ -- cgit v0.10.2 From ac315c17f91d740c3cba4e83fcc73d7f75c967c0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:09 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 4b9626b..0ea02f0 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,31 +401,31 @@ 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); + + 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); + } } - err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, - cmd->chanlist_len); - if (cmd->stop_src == TRIG_COUNT) err |= comedi_check_trigger_arg_max(&cmd->stop_arg, 0x00ffffff); else /* TRIG_NONE */ -- cgit v0.10.2 From 0d77ef8b43d6a9124f37b2f098b6d65573db0de3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:10 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 0ea02f0..b56d126 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; -- cgit v0.10.2 From 62319bceef42015d5e774e1db2e21fb5853a01bc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 14:23:11 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index b56d126..e9e4313 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++) { -- cgit v0.10.2 From d8e66cfd55d2e4e41f2832a9400b142beed95e75 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:07 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 8471219..42ef1a6 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 -- cgit v0.10.2 From 5affcdc236f1685122a6fdcb1a3c698f96f145ce Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:08 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 42ef1a6..fabc321 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, -- cgit v0.10.2 From 6f60d35f31782e194eb46357ff2e8aad3c126ce6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:09 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index fabc321..1cfd7fa 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); -- cgit v0.10.2 From 889031c7d8c0a243a97b40c93bb5e769e055fbd5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:10 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 1cfd7fa..bf4ab32 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); } } -- cgit v0.10.2 From 2f8d129ed917d96dd74887e14b0c66366875cfa5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:11 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index bf4ab32..7fb3a59 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 @@ -65,12 +67,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 */ #define MULTIQ3_CLOCK_DATA 0x00 -- cgit v0.10.2 From 7dfeacb43453205d97259a5dc3007565f699585b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:12 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 7fb3a59..0662c36 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); -- cgit v0.10.2 From 6dfb66d8992bb0e1244db36b72ba0c5bb05fb858 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:13 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 0662c36..dac1879 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -50,21 +50,21 @@ #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 */ #define MULTIQ3_CLOCK_DATA 0x00 @@ -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); -- cgit v0.10.2 From 014d8414ce40e3f2e9733bdde39f474299283290 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:14 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index dac1879..02d41fc 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 -- cgit v0.10.2 From 0a0ca07cc1bf65a3a84d68ca337e649c0cfdc22e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:15 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index 02d41fc..f789d6e7 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; } -- cgit v0.10.2 From fc19858e1bbf9a9092eeeb7f670fdab7f11c57ac Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:16 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index f789d6e7..b5d2354 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) { /* -- cgit v0.10.2 From 47f1fa37dbd17014724bd22e9e8fba9f538d27d8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:17 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index b5d2354..fa63637 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, -- cgit v0.10.2 From 03a1847719b2bf8f3da1c89b0ae359cb1f92dea6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:18 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index fa63637..fc743df 100644 --- a/drivers/staging/comedi/drivers/multiq3.c +++ b/drivers/staging/comedi/drivers/multiq3.c @@ -35,7 +35,7 @@ */ #include -#include + #include "../comedidev.h" /* -- cgit v0.10.2 From 4976034f37b53ffbe4e8aaf3fbeb23f3e55b97c7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:33:20 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/multiq3.c b/drivers/staging/comedi/drivers/multiq3.c index fc743df..b5a26f7 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"); -- cgit v0.10.2 From 0bbf3ea6c4173fc6586326e1d46877168309d00a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:40:22 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl818.c b/drivers/staging/comedi/drivers/pcl818.c index e1bdde9..9132514 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++) { -- cgit v0.10.2 From 699849fe452471cfa740cd659f42d349cf0b4bd1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:40:23 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl818.c b/drivers/staging/comedi/drivers/pcl818.c index 9132514..5aeed44 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 */ -- cgit v0.10.2 From fdb3be16df0b4859a4fb21a02357e2007ffe5dbb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:44:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c index a353d1b..0f9b54b 100644 --- a/drivers/staging/comedi/drivers/pcl816.c +++ b/drivers/staging/comedi/drivers/pcl816.c @@ -1,36 +1,33 @@ /* - comedi/drivers/pcl816.c - - Author: Juan Grigera - based on pcl818 by Michal Dobes and bits of pcl812 + * pcl816.c + * Comedi driver for Advantech PCL-816 cards + * + * 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 -- cgit v0.10.2 From 2d8ea89191c3820bd3c08e75fff2f4d9fbd20f21 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:44:03 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c index 0f9b54b..aa775b6 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); -- cgit v0.10.2 From 026d7877c89ee23d632181f23b4a37e73fe985b7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:44:04 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c index aa775b6..c00a71f 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]; -- cgit v0.10.2 From b20d6f793c5bd0493b26d04cbc7ce04c1c5cea0e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:47:25 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl812.c b/drivers/staging/comedi/drivers/pcl812.c index 48f6cdf..8ef9fe2 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; -- cgit v0.10.2 From 94e9ef19854c8a9c71fdbabdf2c053b18da0aa0d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:47:26 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl812.c b/drivers/staging/comedi/drivers/pcl812.c index 8ef9fe2..607cc88 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 -- cgit v0.10.2 From 97c153da56d0e4ece56cb0065b8e3f40ba29a00b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:47:27 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl812.c b/drivers/staging/comedi/drivers/pcl812.c index 607cc88..9c75065 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) -- cgit v0.10.2 From c9ffbfb066698141a7959de2e91d3fdfd05991b3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 15:49:54 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/pcl711.c b/drivers/staging/comedi/drivers/pcl711.c index cfc3a62..3774daa 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 */ -- cgit v0.10.2 From e437b1abab7486c5100606fcdeba8b1f60884a5d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:26 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 8e92041..56f799d 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 - - 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. -*/ + * 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. + */ + /* -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" -- cgit v0.10.2 From 00dd53e00566b1b40f82945f2294602e71582bdb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:27 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 56f799d..6fa69fb 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); -- cgit v0.10.2 From 3f1fd22caac0c8c1085dcf6bda143496a7ffd0ce Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:28 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 6fa69fb..41b0e85 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"); -- cgit v0.10.2 From 70e803352f100a9404ace6d06a6f7bec3909fb2d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:29 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 41b0e85..7df81cf 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; } -- cgit v0.10.2 From 4b7b3d04f45b89c1c145737528c7b9c87b92a057 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:30 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 7df81cf..0527d3e 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; -- cgit v0.10.2 From aa0cf376b9dc3b09af0f40ce7ace76e3d45c33a9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:31 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 0527d3e..0e89760 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; } -- cgit v0.10.2 From f5fbccb9eea7354b7aaf41b10a1b44cf4c7b8d99 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:32 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 0e89760..3763dc5 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) -- cgit v0.10.2 From 47bdee7be0b34cc613ec4406a0d9737df1786f32 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:33 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index 3763dc5..c7913a3 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) -- cgit v0.10.2 From 4403437e57c43c59c691a710a440d0924ed91b28 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 5 Oct 2015 17:33:34 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mpc624.c b/drivers/staging/comedi/drivers/mpc624.c index c7913a3..826e439 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; }; /* -------------------------------------------------------------------------- */ -- cgit v0.10.2 From 377767135a7c6f6dc89b65680123411d4f470508 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:35:18 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/ke_counter.c b/drivers/staging/comedi/drivers/ke_counter.c index dc642ed..93198ab 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, -- cgit v0.10.2 From fca0b7dcfb20e9ca22dea0fdf551a7995cb3f2a4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:31:09 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/gsc_hpdi.c b/drivers/staging/comedi/drivers/gsc_hpdi.c index e929618..46ca5d9 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 -- cgit v0.10.2 From 71c01379d1c57c96d833202d6b8128ccffc42665 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:43:44 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/fl512.c b/drivers/staging/comedi/drivers/fl512.c index 55cae61..0f278ff 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); -- cgit v0.10.2 From 1da661759f5f34f218d4d65c8872d271146d561b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 13:05:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/8255_pci.c b/drivers/staging/comedi/drivers/8255_pci.c index bb9854b..38c05d1 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) { -- cgit v0.10.2 From 6cd46d716aa1877e02c82fa5ff8bbff5f85bfc2f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:32:14 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/addi_apci_1032.c b/drivers/staging/comedi/drivers/addi_apci_1032.c index b37166d..ccd1a91 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 */ -- cgit v0.10.2 From 6ed30c8945832246bbb4b84271327aa0f341e1dd Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:56:34 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c index 651b393..3630d75 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 -- cgit v0.10.2 From dcfd349493f7c37065c262a6f5939c1f3060b157 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:58:55 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/addi_apci_3xxx.c b/drivers/staging/comedi/drivers/addi_apci_3xxx.c index bef6efc..995096c 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, { -- cgit v0.10.2 From ce6295e267014099ec849bb9a2b84c7b9f3dd8eb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:01:37 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci6208.c b/drivers/staging/comedi/drivers/adl_pci6208.c index 7ed3fd6..ad7e7c4 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) -- cgit v0.10.2 From a789fdf817c057598c6ae5f76f93591aa1ed3834 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 13:07:04 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adv_pci1724.c b/drivers/staging/comedi/drivers/adv_pci1724.c index 9677111..bf6a8f1 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 -- cgit v0.10.2 From aafbdb1294f026e20617d9b1028f962af2e239c7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 13:02:51 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adv_pci1723.c b/drivers/staging/comedi/drivers/adv_pci1723.c index 1921a97..f82afd9 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, -- cgit v0.10.2 From 0b7cbf14493f8bf8e171bc5a39780e434181f430 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:06 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index a675e2e..817e8bf 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 -- cgit v0.10.2 From e33048b07903435d72cfba7463411a2241d42c20 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:07 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 817e8bf..a73a7c5 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 */ -- cgit v0.10.2 From 77eb74166ed603347f3712c984173d3ea5684651 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:08 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index a73a7c5..c106853 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, -- cgit v0.10.2 From ea22ae5e13490712d7498194726b5001355fced6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:09 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index c106853..bde163e 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 */ -- cgit v0.10.2 From c9ab30239aa33e5d79917303f9c67dff98cc75c3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:10 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index bde163e..ff4ba15 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; } -- cgit v0.10.2 From 597063341936a3ccddb30783781d474d7e7d70cd Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:11 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index ff4ba15..1e4f080 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); -- cgit v0.10.2 From 418c971364cb6eb3cc94b9e4ec1ae6bf3fc98dc7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:12 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 1e4f080..03f81e94 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; -- cgit v0.10.2 From b02530f5549a40e2e02dc33157f406d706e1bfa1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:13 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 03f81e94..30dbdf0 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; } -- cgit v0.10.2 From 19e02434714c05da730be08927402d6bc8d51fea Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:14 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 30dbdf0..19e2b1e 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; -- cgit v0.10.2 From 1df2abb351f1cd998099dff34ed5b5f844c8b387 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:15 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 19e2b1e..a52593b 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) -- cgit v0.10.2 From ae57371378801d0e885d4cb3aaf15b9d7d5d3649 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:16 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index a52593b..7fdb1e2 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[] = { -- cgit v0.10.2 From 21cf4eedae651b3850b1e659caad966e6d64136d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:17 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index 7fdb1e2..b805f15 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 */ -- cgit v0.10.2 From fa7ac9c0fc5418154a6356583f880164cdcaa7f1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 11:11:18 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/mf6x4.c b/drivers/staging/comedi/drivers/mf6x4.c index b805f15..fbdf181 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; - - /* DAC */ + 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; + + /* 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; - - /* DOUT */ + 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; + + /* 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; } -- cgit v0.10.2 From 1cee8eaa254988574452f302dd8ce28a7303d49d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:31 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 9ea1ba4..136f785 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); } -- cgit v0.10.2 From 616f86f00fc9b82a300466c5896c3c6682bbb8dc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:32 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 136f785..be1c3c2 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); -- cgit v0.10.2 From 49e890e0d2c12516736d1c4ae821d6a72b047265 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:33 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index be1c3c2..1a49c6a 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); -- cgit v0.10.2 From 065d805744cdb6d92d11fe9a7e12027c78d981cc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:34 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 1a49c6a..9db6add 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 */ -- cgit v0.10.2 From e0f6de37d63faa88ba2ad7e7b046c7fa359a0656 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:35 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 9db6add..3acd0d4 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; -- cgit v0.10.2 From faf58f60a4b0e93a5b7f74b74a80aa01089d3f38 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:36 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 3acd0d4..25f5a2a 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) -- cgit v0.10.2 From abd2541f3900f058fffdd89dac125b5fd48a0037 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:37 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 25f5a2a..873897d 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; -- cgit v0.10.2 From 16aa2a66050607a3728173ad64a1830a23120b2f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:38 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 873897d..71188fb 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; -- cgit v0.10.2 From 46ada8afc8fdd2788db152ceb0fc001f46072dfe Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:39 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 71188fb..a2b542e 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 */ -- cgit v0.10.2 From 99104f62f018df989dc4bdd7c452b2e4e8b266e9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:40 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index a2b542e..6261090 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); -- cgit v0.10.2 From fdfc0a0dc5aefa49cfcb853729fe505c9c27d2bc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:41 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 6261090..6b3abe3 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; -- cgit v0.10.2 From 450a84e8cf689912cc33d18f5aba38da9312d2b9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:42 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 6b3abe3..9110405 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, { -- cgit v0.10.2 From 8a844a91cab4556b7b7e336951623b394a80c934 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:43 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 9110405..cfb3566 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; -- cgit v0.10.2 From 651659c13353cb6a9eee4e94778b1708d3342dcf Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 6 Oct 2015 17:23:44 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index cfb3566..3bf0caa 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) & s->maxdata; - /* get value from ADC fifo */ - val = readw(dev->mmio + ME_AI_FIFO_REG); - val = (val ^ 0x800) & 0x0fff; - data[0] = val; + /* 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, -- cgit v0.10.2 From bf895d83585ed6a091a20d96c2ecbf403261df4e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:33 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 1e104eb..27c8b1f 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 -- cgit v0.10.2 From 456031d6041a57229b67dbfa598d1ece814fb001 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:34 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 27c8b1f..2ee8bf5 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); -- cgit v0.10.2 From 01544d6e0ebd4a2f756a69263240c87c8610764e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:35 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 2ee8bf5..57eded1 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); -- cgit v0.10.2 From 8537a1a4b46fdd96448cc82c7fa0ea25ab30f994 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:36 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 57eded1..5a54b3a 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; -- cgit v0.10.2 From 24bc018e736f35d99a217a3488d85e83f693d3d9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:37 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 5a54b3a..9cc79e7 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); -- cgit v0.10.2 From c2a6e057d3bd462bf8f529da484c6baf4a5d63b0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:38 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 9cc79e7..0d6fd99 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 */ -- cgit v0.10.2 From fc7680d11b874addb345d682d927b7768534998d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:39 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 0d6fd99..fbcaa2d 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]); -- cgit v0.10.2 From f9405655029390a58a7ad586541c830687196d78 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:40 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index fbcaa2d..d3c37d5 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); -- cgit v0.10.2 From dd61ceddfe31da38c564a587f26164c33962a5cb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:41 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index d3c37d5..b37ed42 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; -- cgit v0.10.2 From 4faa71ff91e783e70e23d86cbf870dc3a9899011 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:42 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index b37ed42..68d1770 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++) { -- cgit v0.10.2 From 36825db47e12e00413b0c5f8cebb6a6d49f1db36 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:43 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 68d1770..5a896be 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; -- cgit v0.10.2 From c4f20dd0249fcf1f950d2fc196b7c84a967d5731 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:44 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 5a896be..c3151f4 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; -- cgit v0.10.2 From 8aedf0f10f0af9324fbb41c28bb57570d0123443 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:45 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index c3151f4..3d0a3c4 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; -- cgit v0.10.2 From afbd3c2b97499d74d068908ecd10cbef0d0c6e16 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:46 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 3d0a3c4..c469a70 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; } -- cgit v0.10.2 From 8e3390725093dfec3143046592ed611b4b7a12e6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:47 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index c469a70..17cf514 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; } -- cgit v0.10.2 From f78ce5fd1ef5e99290a4251b95b0c27ba7d2db4f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:48 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index 17cf514..b76b594a 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, -- cgit v0.10.2 From f2d1cafee63167604e8f9fd37a3ff938a852212f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 14:52:49 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index b76b594a..28cf53e 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"); -- cgit v0.10.2 From 6c6e8b1ab21be537fd3ffad5ca1d1b93ed44e5e6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:58:42 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index e11c216..92ec0d6 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: -- cgit v0.10.2 From 00761a9c4b71682ffc6a988d11f96ccf71cebb4e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:58:43 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index 92ec0d6..23bd321 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; -- cgit v0.10.2 From 5050b1353903f71ab81462458100e2927e904d66 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 7 Oct 2015 15:58:44 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index 23bd321..0a4ee8b 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; -- cgit v0.10.2 From c98f4011ebd41ab9ff15e1c52acc446e1ee7e191 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:30:43 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/ii_pci20kc.c b/drivers/staging/comedi/drivers/ii_pci20kc.c index 14ef1f6..4d3f89c 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 -- cgit v0.10.2 From d172b63a5570f8e0c8de859d04aada7514cdedea Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:30:44 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/ii_pci20kc.c b/drivers/staging/comedi/drivers/ii_pci20kc.c index 4d3f89c..1f3eaf6 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; -- cgit v0.10.2 From bb46c4ec04543d8e5a2572e8494aeaca2aa626b3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:30:45 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/ii_pci20kc.c b/drivers/staging/comedi/drivers/ii_pci20kc.c index 1f3eaf6..77e1d89 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"); -- cgit v0.10.2 From dc413f7ad166fcb1f88699616bb2654f42ad72ad Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:47:44 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/addi_apci_2032.c b/drivers/staging/comedi/drivers/addi_apci_2032.c index ad71525..e14545d 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 { -- cgit v0.10.2 From bb7085b1fbc7eee6d254fe978bd00ffcfe959bf6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 10:47:45 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/addi_apci_2032.c b/drivers/staging/comedi/drivers/addi_apci_2032.c index e14545d..50f9eb2 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, -- cgit v0.10.2 From 7db6ed68cae2c5b24d2a41a085c42f092efc3c93 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:09:34 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index fb3043d..8774698 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 */ -- cgit v0.10.2 From eb12dfc93a0e3021fc61959b6887dfe68daa8234 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:09:35 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 8774698..e5e0e1c 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); -- cgit v0.10.2 From 9d9052927ec44b089f406d58538910422e31ee60 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:16 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 8c4f284..a229b73 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 + * 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. + */ -There is code to support AI commands, but it may not work. - -AO commands are not supported. -*/ +/* + * 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. + */ /* - 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. -*/ + * 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 -- cgit v0.10.2 From 6366dd4a77e42bc26f0117ff9720d0a2f6882a9e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:17 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index a229b73..8a20094 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; -- cgit v0.10.2 From f6520a8619760a45dd2f7b9c1f8d5503a4cc8d29 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:18 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 8a20094..f9626e8 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)); } -- cgit v0.10.2 From 5f17915c2806e0fb081456f1218c1c1b65a57b19 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:19 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index f9626e8..05acd8f 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)); -- cgit v0.10.2 From 2ce1514c9dbb213061912a60e9624ac0e21e9c74 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:20 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 05acd8f..f674ca7 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; -- cgit v0.10.2 From 3d5df65076eec71c0a1eb829f176f6e9652fd149 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:21 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index f674ca7..9ff7e95 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); -- cgit v0.10.2 From 2943de6ad54b4a4ecb066f2f8df7c7db0d4c8a99 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:22 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 9ff7e95..fdae78d 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; } -- cgit v0.10.2 From 91644956fd539968c530f7f1cbb4e65887e1f7a3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:23 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index fdae78d..8d6d344 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; -- cgit v0.10.2 From 78c2f455e2efcb079f719e328133b40ee9110e6c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:24 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 8d6d344..1ee3db6 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; - - ret = comedi_alloc_subdev_readback(s); - if (ret) - return ret; + 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; + + } else { + s->type = COMEDI_SUBD_UNUSED; + } s = &dev->subdevices[2]; /* dio subsystem */ -- cgit v0.10.2 From 2e310235ca8f26efdeb150a10855ad8c1e886dad Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:25 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 1ee3db6..2d293e6 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; -- cgit v0.10.2 From 3a7b06f73296684426db4a44429a8376b0dd729d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:26 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 2d293e6..5d1e4bb 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->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->insn_config = dt3k_dio_insn_config; + s->insn_bits = dt3k_dio_insn_bits; s = &dev->subdevices[3]; /* mem subsystem */ -- cgit v0.10.2 From 649c836ea37d30fe5e7c6548ffd22eacec9a29e7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:27 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 5d1e4bb..0610875 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; } -- cgit v0.10.2 From cb3a6194e18eccc928f0973d6b95c8d27472beb8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:28 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 0610875..32bd68d 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); } -- cgit v0.10.2 From e81ca3de4ea65822823c082909cabbc68c723586 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Thu, 8 Oct 2015 10:48:29 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 32bd68d..ab7a332 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"); -- cgit v0.10.2 From 3eb25177b616f1baabdee167e40b577ef8387297 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:53:47 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adq12b.c b/drivers/staging/comedi/drivers/adq12b.c index bc5f97f..6762c21 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 - - 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 + * 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. + */ - 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 -- cgit v0.10.2 From b4fa9199caed382466d7c3e9c8298365baa0d898 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:53:48 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adq12b.c b/drivers/staging/comedi/drivers/adq12b.c index 6762c21..dbb9d58 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 -- cgit v0.10.2 From e8f25f6680a8df64409a1fd8bddfe7848ee7c7e0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 9 Oct 2015 11:53:49 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adq12b.c b/drivers/staging/comedi/drivers/adq12b.c index dbb9d58..3150504 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 */ -- cgit v0.10.2 From c3248fef2abc1dcaefc62b52766865a6a09e8c57 Mon Sep 17 00:00:00 2001 From: David Kershner Date: Tue, 13 Oct 2015 11:37:23 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorbus/vmcallinterface.h b/drivers/staging/unisys/visorbus/vmcallinterface.h index 7a18aa8..c8d8483 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__ */ -- cgit v0.10.2 From 3d53fb9041d7d7bb8e1e1dd8b233cbed187933a7 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Tue, 13 Oct 2015 20:50:23 +0530 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 3a1b24f..058ee91c 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; -- cgit v0.10.2 From ae4dfa572a7e67f53f7f1492bd2baacf39dbdc48 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:26 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ec04aec..15b2770 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; -- cgit v0.10.2 From 8e9f427a3e93a1223d0a065c6f9376cda2fd32d6 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:27 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 15b2770..aeb28a1 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; -- cgit v0.10.2 From 0d17e38201ece45e3e6ffaf4e89ae30c1ffd604a Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:28 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index aeb28a1..203f870 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++) { -- cgit v0.10.2 From 73b2e381d2ee8a8e33c41fcdeb291f3c6b79abba Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:29 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 203f870..9fe4ea9 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); } -- cgit v0.10.2 From 124968fcc0ef7690d80a70ca0051f583b09ea3ff Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:30 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9fe4ea9..18a2723 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; -- cgit v0.10.2 From 248080aa2a31bff5cd4336a15af3c907962be8da Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:31 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 18a2723..29bd5bf 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)); -- cgit v0.10.2 From 0e74c0096271233687e9f206b2a772dce966b279 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:32 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 29bd5bf..eb4e03b 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); } -- cgit v0.10.2 From dacc594dab7a73a987ed2e9b8df725c15bc7ccf4 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:33 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index eb4e03b..5c8af19 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) -- cgit v0.10.2 From e2dfbac54e82e2165049971eaaaeecf68d50260f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:34 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5c8af19..2521987 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; -- cgit v0.10.2 From 6acf2919b31e9be52eaf30ee7569c4b5ef93217b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:35 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2521987..2ebd0cc 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)); -- cgit v0.10.2 From 7b2ebb28b8505358901ed636845834976aa06fd5 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:36 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2ebd0cc..14a01ce 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; -- cgit v0.10.2 From 425688986a086196e52c88106d0646bbd4ba5405 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:37 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 14a01ce..9180ea6 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; -- cgit v0.10.2 From 1e276c8842863aa25c89bd4286909e5ae6739c3a Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:38 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9180ea6..b7eb272 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; -- cgit v0.10.2 From 97b457d7e2ad76e1ce3950a6c46e4d3cd0e350b2 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:39 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b7eb272..1e2a4ec 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); -- cgit v0.10.2 From 82eeb0ad3c6367ba7a4c4a999bb223d207a5c7fe Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:40 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1e2a4ec..49097ad 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); -- cgit v0.10.2 From f97bd9cab8079c791b6387f501fbff2bb73315dd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:41 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 49097ad..205be22 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); -- cgit v0.10.2 From d6f19aa5b58a7465444a995eb9c221887c45b0fc Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:42 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 205be22..4a33d16 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) { -- cgit v0.10.2 From 7b1f76cd036eeea15f42929eed9a7619381cc15c Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4a33d16..a390dee 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); -- cgit v0.10.2 From c17c6da659571a115c7b4983da6c6ac464317c34 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:44 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a390dee..c5cf7d4 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; -- cgit v0.10.2 From 5f2b50c8dbe6c0fa1c969ee068d4fa0d36ce2dd0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c5cf7d4..6926a9e 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); -- cgit v0.10.2 From 629b9ca02231a780920fdc98e9ffdd9e0739a768 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6926a9e..506c73f 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"); -- cgit v0.10.2 From f2fc9f6e957bc0b0207fe31bbb6bf9286628c09f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 506c73f..0296bd9 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; -- cgit v0.10.2 From d79fd35b8c5d927695b48fa35aa586919818cce9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0296bd9..91ea327 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))); -- cgit v0.10.2 From 9254db077a171cd74476b22675a499442d3b9e63 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 91ea327..b450136 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) { -- cgit v0.10.2 From f7bbd9cf99d312f36004ad361e38662d3da3e97b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b450136..3c044d2 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) { -- cgit v0.10.2 From 8b3c9fa68bd8c243033cb04cca48ac6dc4543e44 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3c044d2..80ac60a 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); } -- cgit v0.10.2 From 2ea158c47544b9229cd110fc2947a51aee60c261 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 80ac60a..5d0e412 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; -- cgit v0.10.2 From b59d5c5b57b6ddef538aacef597a3278a7ab09c4 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5d0e412..545f763 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); } -- cgit v0.10.2 From a64fd6772b0457b04b2782294d8fdc7b10e67acf Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 545f763..6e5db9d 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; -- cgit v0.10.2 From 6abcc11dba58e954d3d1a9d3f9722c4358712f08 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 6e5db9d..fc82d46 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 ; -- cgit v0.10.2 From 8f38db897be4f47a3d015e2b8061e013d6abbe18 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fc82d46..0790dcb 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 ; -- cgit v0.10.2 From 61b4fd022f443eb11b17e8a4160c4434b2d4fc7f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0790dcb..695fd5c 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; -- cgit v0.10.2 From 0d1527e65b6ebbf3fe32a453f94d664300067be9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 695fd5c..fbc48ee 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; -- cgit v0.10.2 From f2bed2caaeb847910eb13b527454adc25578875f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:49:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fbc48ee..4af2bd1 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) { -- cgit v0.10.2 From 33722ac768c401890bd4f335b771f28179338914 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4af2bd1..7a91010 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) -- cgit v0.10.2 From f94f4889ad2e3dd494a572ec09a238d3741d3d7b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7a91010..3d0796f 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); -- cgit v0.10.2 From 730ee059d4ea7403d72819c84b864a27464fe60d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3d0796f..cd42364 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)); -- cgit v0.10.2 From 12262ddac66f56e9f901b085db53e71d6ba8fa74 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index cd42364..e6490ef 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); -- cgit v0.10.2 From e76ab7708a9babbfe61d70da0804070ff8f871ac Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e6490ef..03ce060 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) { -- cgit v0.10.2 From 51c6618590f172608e61e29190bbbd865302c7dd Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 03ce060..70ba13f 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; -- cgit v0.10.2 From 8ce528b9a8325cf2b8664ef9ac73eb7ff26a4ca0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 70ba13f..dd07e11 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); -- cgit v0.10.2 From 030c57e28ec8dee488c039b9488f8edb5cfa76de Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:07 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index dd07e11..2a2361a 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); -- cgit v0.10.2 From 7dbcb6d37a070b1c0637183d7d23819c1369b0f5 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2a2361a..42081f8 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; -- cgit v0.10.2 From e51b921639c23c59484b72c932e910522c0cd6ba Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 42081f8..5ee8d54 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++; } } -- cgit v0.10.2 From 8ba1803ff5c9488593d71317d2b3da41e89fab66 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 19:50:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5ee8d54..42f59fa 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)); -- cgit v0.10.2 From bae636eb5a5cb52b67753bd89dc2887cc582f58b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 42f59fa..7ea9e01 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)); -- cgit v0.10.2 From adab2f715b8b5aa9238206f48b2c9e156cd2907b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7ea9e01..9cd42f7 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) -- cgit v0.10.2 From e4839d39b401e783bab57388341d82500662d5b7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9cd42f7..4f7ebdc 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) -- cgit v0.10.2 From 33c70c1b39ad9f8bda41eadf0babf086ee136ca4 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:07 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4f7ebdc..0c44fd0 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; -- cgit v0.10.2 From 937918ff160d8102a6c54897231c32ed2efc2b0f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0c44fd0..97d1bd8 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) -- cgit v0.10.2 From 78675be5a2858e9c6ca33f0f78e140ef8a45a67d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 97d1bd8..8fb6ef5 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; -- cgit v0.10.2 From b021b80b426069b7d599e246c32ac1b326681964 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8fb6ef5..432b275 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 0c5f395..778dbf5 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; }; -- cgit v0.10.2 From 3bffac68bfd76f1e94e0c6efff143ace80f90c0b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Tue, 13 Oct 2015 20:02:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 432b275..392bf08 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 778dbf5..146a60f 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 { -- cgit v0.10.2 From 6bd7e5668644424cb70be79ecde4033e1ae123a2 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Tue, 13 Oct 2015 15:18:38 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 004f441..706912b 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; } } -- cgit v0.10.2 From 7ee8291a2622388c3b732614eb8c4c61a1bdd4dd Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Tue, 13 Oct 2015 17:04:48 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index d3f39557..c731641 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; -- cgit v0.10.2 From 3e127cbb06d6e8aee93e298c39ae2caa33a5eef3 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 13 Oct 2015 18:50:18 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_nfs.c b/drivers/staging/lustre/lustre/llite/llite_nfs.c index 400acacc..f992eda1 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, -- cgit v0.10.2 From 634ffdd9ef91b1a6252347276bed77d3d73b0b9a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Tue, 13 Oct 2015 18:51:10 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/xattr.c b/drivers/staging/lustre/lustre/llite/xattr.c index e051dcc..4b7eb33 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 -- cgit v0.10.2 From 30cc9bd64c67c9b1f70a2779302da2ac05335d47 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 21:07:47 +0530 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index ef4b58b..f341421 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); -- cgit v0.10.2 From 3a1d9489e92a4dd93f6f070aa7e9062beed94c69 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 21:07:48 +0530 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c index d98e229..edbfba1 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 a1dd745..3adc451 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 7bc3e4a..3bd65f5 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, }; -- cgit v0.10.2 From 246ed517ebc90469b7f399e12017a4121b6ec2cc Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 21:07:49 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-sound/sound.c b/drivers/staging/most/aim-sound/sound.c index f08545c..4d33763 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 0045c10..1905547 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); -- cgit v0.10.2 From c29722158c29cb5aad60108268cb8649a171c876 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 22:20:28 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lov/lov_object.c b/drivers/staging/lustre/lustre/lov/lov_object.c index e67df64..1837bbf 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 * @{ -- cgit v0.10.2 From 9faa310f2b813bad7682120d37ac760db14eec93 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Tue, 13 Oct 2015 19:08:03 +0200 Subject: 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 diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index 0a4ee8b..3295bb4 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 = { -- cgit v0.10.2 From 3fd624b37da50ba0c63bb153cfd6e1b97b83cc4a Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Tue, 13 Oct 2015 19:09:21 +0200 Subject: 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 diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c index cf15f80..049adea 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); } -- cgit v0.10.2 From 50ffcb7edca4e2f6e2204058b78cadd3d1a2e04f Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 16:03:40 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index 8ab73ee..3ffffbe 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 904d158..1b472f4 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 354c810..8fbd89e 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 2817e88..1d675006 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 c4d6c56..a9c60ff 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 1a41366..77d987a 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 c80d78e..fcc7401 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 f1dc967..d06ce32 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 19d9175..47c3f37 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 35175fd..cc3e8d1 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 82f1a26..4723034 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 328a278..f6de360 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 277f6b8..c74c809 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 5e4262a..379b2db 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 5a2e5ea..ff6c2c5 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 4c20b1e..d294145 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 f992eda1..e578a11 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 5f0d80c..90b4233 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 08d3202..e7b94f4 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 71be194..377947a 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 b17b7ce..3da4c01 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 b35e02a..dae1f9c 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 cf264de..41947ac 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 7e6a060..397cf81 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 311fc1b..8f9e8ee 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 489227ae..62360d87 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 a6938085..173ae84 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 5c69ce9..c865707 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 f996348..d3c6aa7 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 3e9cca0..76b16f4 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 ef66ac9..6b10435 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 b15c990..0c734f1 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 89ff7f1..cf752aa 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 e8a1558..a1a492f 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 c8a5ff4..ba56187 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 a801b6c..6a6ddb4 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 d19ec15..b526e7e 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 f014015..68cb3df 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 de42acd..0c4dbb1 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 2a16046..1ad07f6 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 62da061..4d23597 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 2af3232..d696b32 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 2ff253f..3b32928 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 86c0303e..e3808c9 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 6aaa5dd..c6c23f9 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 5aaf42f..23d45e8 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 fbb9ce8..5122205 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 6cf9b92..5936132 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 973ff8d..ef33c5b 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 a608165..53bfae1 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 3a6539c..a587c94 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 0f3c693..8a6abbc 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 0131361..2652fc8 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", -- cgit v0.10.2 From 106495c41fb24901bd1c192373c3085961378297 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 16:03:41 +0300 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/linux/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/linux/libcfs.h index 3e2502a..aac5900 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 eb08400..5f78b42 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 3ffffbe..f1799aa 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 b3d1b5d..1d4e7ef 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 1b472f4..1967c21 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 8fbd89e..477b385 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 c3ac676..fdb2b23 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 99f8396..92ca1dd 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 c368cf5..53ad5ef 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 8b843c5..60889eb 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 6badfec..5631f60 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 0357b05..4b56770 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 b70680b..0060ff6 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 ae7ed75..95c832f 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 024aaee..d315dd4 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 acd1312..3f3286c 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 177beaf..f18e500 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 09b8f46..46cbdf0 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 9fc3ce3..162f9d3 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 b7b00c6..6b4a32a 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 4832253..8a77d3f 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 ebd5f79..b98c08a 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 75c59df..b463bc6 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 be5499c..36e7a67 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 6b14406..79d8f93 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 f5d83eb..3420cfd 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 ebe8d68..33e0b99 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 1d675006..468bc28 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 6d127a0..99fe032 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 7dafc28..fa78689 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 b451a88..97cd157 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 ad253c6..06ce8c9 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 a9c60ff..f2f6b7b 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 77d987a..27e31c4 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 fcc7401..eb6b292 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 d06ce32..5e1ac12 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 dfc49e1..7fb22af 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 499f9c8..fee4d2c 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 ff7230e..d8b3db9 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 f3ae02b..49dfbb1 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 4d51c8a..3813055 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 660d290..c1b8c17 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 cc3e8d1..745b53d 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 df557c2..f6d7aae 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 b1b05c8..3da3733 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 93a039d..90edbff 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 26f558e..8f6c0b2 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 76b3a84..aaadf09 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 c8249fb..b5e1155 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 3a63462..a0099d7 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 4723034..f1bcc3c 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 80ab85d..ec14b72c 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 8764df9..ef2e266 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 01bf894..8389a0e 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 05bc4f3..57b997d 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 0c46a06..4310154 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 40d3338..b1bed1e 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 b840200..ccce1e5 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 f39375c..658c878 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 152bdaa..f00e3ba 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 a1fe2c16..0c1965d 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 a4ee591..b85e2d6 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 250cc37..fdf81b8 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 29308ba..94bc007 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 5e185fa..026994a 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 f6de360..5230654 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 64a984b..70a99cf0 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 379b2db..0d9b223 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 ff6c2c5..973c7c2 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 e931f6d..cb7a396 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 02d18f5..e1143a5 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 b866859..80cba04 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 cc6f0f5..0fe0c71 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 51b6bc5..ad02f2b 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 d294145..9096d31 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 a90214b..7df9783 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 c8a450b..b27c3f2 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 90b4233..e6974c3 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 e7b94f4..5bd9fb5 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 a22e252..2ee7d31 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 b8f6a87..9f7449f 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 2162bf6..b5a6661 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 41947ac..37773c1 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 f354e82..f7b1144 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 cb2811b..e13afb7 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 a3cf5ad..92f60c3 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 9e763ce..819d386 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 397cf81..635a93c 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 9a9156e..1c0fe65 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 10317e0..6f89c19 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 0de39cc..bdee0a6 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 62360d87..a5838b7 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 173ae84..1a26496 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 c865707..c3be0b5 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 05651ac..2fb1e97 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 c4596e8..463cadb 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 d3c6aa7..2234321 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 90d9ec3..8cbbfb0 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 57e3629..f2d8852 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 ce0bcdf..227fc9e 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 5c34130..e0b81ee 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 dc234a7..16a5a10 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 76b16f4..780ea81 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 1dace14..2e20cf6 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 6b10435..e67cea7 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 cf752aa..a295403 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 e27062d..2f569ed 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 a1a492f..3e9c246 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 e0b8150..73044c3 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 245ac2e..a055cbb 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 a941518..7cb55ef 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 c63b720..c442cae 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 2b4a70b..3900b9d 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 054fd31..9354f75 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 ba56187..07727db 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 6a6ddb4..0d15bd5 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 b526e7e..fb9147c 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 68cb3df..64e2d1b 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 0c4dbb1..0d324cc 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 ec9ccff..87f1b3a 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 8e9dbc2..69063fa 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 4d23597..b552a56 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 75bfda6..d2d6845 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 8d7eab0..3a4200f 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 c628a25..acffab9 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 d696b32..61eaf71 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 e3808c9..a3a6374 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 183e415..9c2fd34 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 23d45e8..bfa410f 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 36876a8..637fd2a 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 5936132..05270e1 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 d93c6b2..09ddeef 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 3fe96a1..7044e1f 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 ef33c5b..f3cb518 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 e1334c2..2a2a9fb 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 d12e95b..9deeb24 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 a587c94..34d1330 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 c89973c..baf063e 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 520329f..07cf2fe 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 8a6abbc..ebfa609 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 d905b77..f448b45 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 2652fc8..3f6f070 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. */ -- cgit v0.10.2 From c9f6bb961d7afefc238f0e420eb40a155ee9a6e8 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 16:03:42 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/cl_object.h b/drivers/staging/lustre/lustre/include/cl_object.h index b463bc6..73564f8 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 99fe032..6e41129 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 f2f6b7b..0b721c6 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 27e31c4..286e96a 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 7fb22af..0e75a15 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 3813055..f39780a 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 c1b8c17..4e4230e 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 745b53d..428469f 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 90edbff..0127f45 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 5de9776..5e93afc 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 f1bcc3c..ec36c88 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 f00e3ba..ca11511 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 b85e2d6..92c21fd 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 9152423..e09f2cd 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 ae325f7..1d1c671 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 d9b7c6b..ad661a3 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 026994a..5d8d8b7 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 5230654..079d50e 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 e1d8fb0..e3ea477 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 5bd9fb5..190fc44 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 377947a..f79193f 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 8f9e8ee..40cf4d9 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 a5838b7..5e6228b 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 380b827..a0be15c 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 34a9317..8d5bc5a 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 0c734f1..4338aee 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 73044c3..ab0748b 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 07727db..7cc4b55 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 87f1b3a..ef9cb31 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 1ad07f6..053d508 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 448fdf4..5ed30ec 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 637fd2a..d7c4f47 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 05270e1..ec44b3c 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 baf063e..8fce717 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 c96a5c7..fca9aa1 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 a74e2f0..bda9a77 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) -- cgit v0.10.2 From f8d863cbba81eade976368d8c8b96d19210823a5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:28 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index c9df3af..8ce54c0 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 -- cgit v0.10.2 From 68e412987c1c0a277175e2728958446bde8b305f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:29 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index 8ce54c0..dd42bd0a 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); } -- cgit v0.10.2 From 262a07acc6261a2ca2644b37e8392717cb66ddcb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:30 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index dd42bd0a..e6f6e59 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 -- cgit v0.10.2 From 0756f8d778205376811653e61ea02749a382b217 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:31 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index e6f6e59..4996c24 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) -- cgit v0.10.2 From 64a4e72eabd4199d6897f8b1366479b1b8152228 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 10:42:32 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index 4996c24..01d2ee9 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; -- cgit v0.10.2 From a82853304021435f57698ea88cb5ca03fe010aeb Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:30 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 0c6aa96..3340570 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. + */ + +/* + * 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 * - * 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 + * Configuration options: not applicable, uses PCI auto config * - * Options: - * [0] - PCI bus number - if bus number and slot number are 0, - * then driver search for first unused card - * [1] - PCI slot number + * This driver supports AI, AO, DI and DO subdevices. + * AI subdevice supports cmd and insn interface, + * other subdevices support only insn interface. * -*/ -/* -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. -*/ + * 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 -- cgit v0.10.2 From d67e50feb6bde9082bc098e2b02b7ee1c87747f7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:31 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 3340570..e7a6dc5 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. */ -- cgit v0.10.2 From 9fcce6e2d20b9569b3cb09dda132c8fbeec96072 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:32 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index e7a6dc5..0184667 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; -- cgit v0.10.2 From 39363d061d87d434dc0f597b97e3afd01fe3ca49 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:33 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 0184667..4517157 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; } -- cgit v0.10.2 From 3c9b7733958fb861c3df7d56481c8e97613088d3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:34 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 4517157..6382c26 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; } -- cgit v0.10.2 From fff5b04fdf238a82fa1dce0d31eeea133b3e580a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 11:01:35 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 6382c26..399c511 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; -- cgit v0.10.2 From 4dc4f282070b958e599ed4c6f27078fae78605c7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:29 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index fbc3e5a..84f8c49 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; -- cgit v0.10.2 From 471c5d6ccf0ddab58bdf6b5ff72bd71897e2f591 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:30 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 84f8c49..68c721f 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" -- cgit v0.10.2 From 180480ed410645d0e9ed0ba03b914a7a9aab6b3a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:31 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 68c721f..63fb9fde 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"); -- cgit v0.10.2 From ffe4a3173916b7639bd06f61355e14d202ad471f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:32 -0700 Subject: 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 diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index a5f2a3e..ac0f010 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 63fb9fde..0ba557e 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; } -- cgit v0.10.2 From c5fcb7cabc52dfc38ff4b31abc7aac11b54f6bd7 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:33 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 0ba557e..f9a90e5 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); -- cgit v0.10.2 From 1198f6b09f05e1aef96e59c6af359dffa6d926e1 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:34 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index f9a90e5..2262da0 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; -- cgit v0.10.2 From ee4c7709fbb29860c3200b1296a18adff01d2307 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:35 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 2262da0..e76a130 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; -- cgit v0.10.2 From 6db70e3934c02c76f85c128e01585d8b6a8fbe61 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:36 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index e76a130..8d2c494 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; -- cgit v0.10.2 From fbea1876dc8da6fba445d69cfda56c955c9714a8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:37 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 8d2c494..62e526b 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, }, }; -- cgit v0.10.2 From 9f4d30ddfa4acbb1c255375c9fd2357cd7b8d6b2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 12:16:38 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/aio_aio12_8.c b/drivers/staging/comedi/drivers/aio_aio12_8.c index 62e526b..43a0ce5 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; -- cgit v0.10.2 From 6ae49e273272245e28b0b205a54c4a88f84944ca Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index ae84f2c..428b07f 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 -- cgit v0.10.2 From 2845efb967ed9d1e430675ff67b2129a20bfedac Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:03 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 428b07f..ac77b86 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; } -- cgit v0.10.2 From 95ea3e760ef8e0c2171025429f989cf44075a91f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:04 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index ac77b86..15d03a7 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; -- cgit v0.10.2 From 6f2e618c3bd58d6d54e25564b25d18a7a332bd0a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:05 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 15d03a7..7913a87 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; -- cgit v0.10.2 From 1dbe3884bbd041a4a9657df0de9d558e8335a3b6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:06 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 7913a87..6f34508 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; -- cgit v0.10.2 From 090b82a3a7bfc192d01ff8910485757db65b858f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:07 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 6f34508..b3128ef 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 */ -- cgit v0.10.2 From c34f202ba32c1ef10b36b61c1ca236120b8cc4b3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:08 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index b3128ef..0769878 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; } -- cgit v0.10.2 From b93c2862b95d4c4021aeaf6c18b89e11e245ebab Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:09 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 0769878..45db386 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; -- cgit v0.10.2 From e9d8e8d4c4e869b321f1ddf0349144773c059de8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:10 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 45db386..24b61bf 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; -- cgit v0.10.2 From 944fd0c92ab7642dd027c1dac0cfb7199904a56d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 12 Oct 2015 16:07:11 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c index 24b61bf..78d098f 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 { -- cgit v0.10.2 From 322146d5d485cddb93761bd2593fbc932399b0a1 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:47 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index f341421..bd12481 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) || -- cgit v0.10.2 From 274ec5ee5478f1757ba083e366d9490dfaa6bd2f Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:48 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index d45a4b6..4837559 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; -- cgit v0.10.2 From 432fbde739583140c7ee937910786a9d740804c9 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:49 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index 4837559..90c2801 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 cd9437f..3f2c88a 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); -- cgit v0.10.2 From ecf04ed34d65b735bbdfa9ae8ea378ffc0faa9f6 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:50 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index bd12481..42f6971 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; } -- cgit v0.10.2 From 3834234f99a07d1a84918cb15e9431420c5405f4 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:51 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 42f6971..1d6bef2 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; -- cgit v0.10.2 From d5eb3a742109015cd794e536fe0968197b917e05 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Fri, 9 Oct 2015 12:26:52 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 1d6bef2..fe25287 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; } -- cgit v0.10.2 From 970679b04c4b2ae8aaede98e214449eb3e6e6b06 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:20 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index fe25287..bb2e0ae 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; /* -- cgit v0.10.2 From 09d6b9a9ddbbdbf4e45f553fa4405aeacfd12e47 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:21 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index bb2e0ae..c74c50a 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); -- cgit v0.10.2 From fd060c8f4c93ee564510aa86724d27dca31b9e2a Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:22 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index c74c50a..49c4665 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: -- cgit v0.10.2 From 76e8e7d4ffb3300217b62637183282a5225d7394 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:23 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 49c4665..92f5716 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; -- cgit v0.10.2 From 8ea939284d3ebde02d5b46d50406c2b7faae1214 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:24 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 92f5716..f39448a 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); -- cgit v0.10.2 From 42ea907d785d522e5ae661c3774b8a801ac7f00b Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:25 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index f39448a..a979f62 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; -- cgit v0.10.2 From f84e27adfc4cb0c4aa97d830c43f8c82aca0547c Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:26 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index a979f62..88ba0b6 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) { -- cgit v0.10.2 From a8ed75c0836ebc530f7fbf613bba75de3656b105 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:27 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 88ba0b6..190592a 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) { -- cgit v0.10.2 From 39582847757ef79fb9de2661dd9297f1c988478d Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:28 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 190592a..466dc95 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; } -- cgit v0.10.2 From 3c3bea26ad3037924fd066c14fd391a69103dd63 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 17:21:29 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 466dc95..7b4af51 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); -- cgit v0.10.2 From 214e38421c330a1c9a16e65e071c86986cf3952d Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 18:03:24 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 6062493..7a62e97 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; -- cgit v0.10.2 From eb36cc282a9d9cc6c024010e7b65e88d1b088c54 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 12 Oct 2015 18:03:25 +0100 Subject: 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 diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 7a62e97..1158072 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; -- cgit v0.10.2 From 56b3152e5e8b0501ff9ef100b772df8ecb3efd82 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Mon, 12 Oct 2015 21:02:36 -0700 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211.h b/drivers/staging/rtl8192u/ieee80211/ieee80211.h index d481a26..967ef9a 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 9fbce91..49c23c7 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 a76748e..ee1c722 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 eab0d81..678ecf6 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 5277f2e..375ec96 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 a93694f..e07d65d 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 cc8029a..f490e25 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 e5dbaca..7065644 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, -- cgit v0.10.2 From d4c402ff3505be1cba62128b74998492566c35e6 Mon Sep 17 00:00:00 2001 From: Dennis Menschel Date: Wed, 7 Oct 2015 22:15:45 +0200 Subject: 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 diff --git a/drivers/staging/fbtft/Kconfig b/drivers/staging/fbtft/Kconfig index d473010..883ff5b 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 b26efdc..4f9071d 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 0000000..dc7d304 --- /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"); -- cgit v0.10.2 From e9f6806551c3b2f02fa8225582d731994a3f3fa2 Mon Sep 17 00:00:00 2001 From: Dennis Menschel Date: Wed, 7 Oct 2015 22:15:46 +0200 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c index a60f389..0e501d0 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, @@ -313,6 +366,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) { .name = "fb_agm1264k-fl", -- cgit v0.10.2 From 17a7b0b4d9749f80d365d7baff5dec2f54b0e992 Mon Sep 17 00:00:00 2001 From: Lars Svensson Date: Wed, 7 Oct 2015 09:20:12 +0200 Subject: 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 diff --git a/include/linux/fb.h b/include/linux/fb.h index bc9afa7..41a3b11 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 -- cgit v0.10.2 From 4b6dc179dcf8e6fa023fb38a0b4fc456b90186f5 Mon Sep 17 00:00:00 2001 From: Lars Svensson Date: Wed, 7 Oct 2015 09:20:13 +0200 Subject: 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 diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 88718f6..19f6136 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 8b52523..a6b4332 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 5c1d93d..86e43e1 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 568b433..e0b34a4 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 d609f87..2183f98 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 a72f920..4e82814 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 28aa100..212908e 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 be99a9d..f8cb610 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 9712924..9a95fde 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 deccb1d..b1e4516 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); -- cgit v0.10.2 From 6b626c77be5ecf34534a45bb2012f6ed0565a0a7 Mon Sep 17 00:00:00 2001 From: Lars Svensson Date: Wed, 7 Oct 2015 09:20:14 +0200 Subject: 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 diff --git a/drivers/staging/fbtft/fbtft-bus.c b/drivers/staging/fbtft/fbtft-bus.c index 9a95fde..58449ad8 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); -- cgit v0.10.2 From 8c6c463ee96a8c357c43f66d391925e0aae1babb Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Tue, 13 Oct 2015 16:46:53 -0400 Subject: "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 diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index 91b9b75..e237e9f 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 fd13d05..e97a2c3 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); -- cgit v0.10.2 From b156f1ed160d621c1c6c7667c46948b4a061db91 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Tue, 13 Oct 2015 23:07:00 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 392bf08..706b27d 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; -- cgit v0.10.2 From 1a86f2a1b792ea6b8f21dd3448624f053ef1d6f6 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 02:02:11 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 706b27d..04f3bc2 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; -- cgit v0.10.2 From 05489e82f567ce524e4c0c406bdc7ddc61a41412 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 02:23:40 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wlan_cfg.c b/drivers/staging/wilc1000/wilc_wlan_cfg.c index d148d6e..a34a81c 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; -- cgit v0.10.2 From 26368fd7048f2c26d5263a932614351f04436be7 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Tue, 13 Oct 2015 23:55:07 +0300 Subject: 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 diff --git a/drivers/staging/skein/skein_base.c b/drivers/staging/skein/skein_base.c index bfb08fa..25a01ca 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? */ -- cgit v0.10.2 From 784c7d2f0e390bcda734ee4ea8c7289777abf1c6 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 03:29:58 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 04f3bc2..14c8abe 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, -- cgit v0.10.2 From 95f840fb5355eda0bf797a2d7b6e684127128cac Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 14 Oct 2015 07:29:19 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 14c8abe..aa7f7cc 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; -- cgit v0.10.2 From 9b7ecb01886b4ad34e3cbabb08796bff1e1a709d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 14 Oct 2015 20:46:29 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_mon.c b/drivers/staging/wilc1000/linux_mon.c index bde4095..450af1b 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 b1c6b6f..ebacd29 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 706912b..a950b04 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, -- cgit v0.10.2 From f61c5aff3b4213f246e0531b47f7c6d76f2574ea Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 14 Oct 2015 20:46:30 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index ccab89f..b879b8b 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 a950b04..08ba5ba 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 8bcfcc2..373959b 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); -- cgit v0.10.2 From 1a08bc43c4c89e79e7e653bb1c2cdef489843e3a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Wed, 14 Oct 2015 20:46:32 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h index 373959b..c5061fd 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; -- cgit v0.10.2 From 619d27b88ceddae481ecdf313c455e01258b7360 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:42 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index aa7f7cc..5dc7c99 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); -- cgit v0.10.2 From 7a8d51d776b7f145b3a719f6f8f49e45c1075f23 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:43 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 5dc7c99..ee86a69 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)) { -- cgit v0.10.2 From d72b33caee4763d28f5e11cc230ff50b96698582 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:44 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index ee86a69..7c65609 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++) -- cgit v0.10.2 From 99b669453b3e2add47697a2da1e708ff40a1801c Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 7c65609..b472292 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; } -- cgit v0.10.2 From c21047edfa569c05325b7f3511b40b3e3ff4ec53 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b472292..72a84ce 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); -- cgit v0.10.2 From cc179008425b419f7a0fcc0c145d6f69750184ff Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 72a84ce..a4dcc40 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; -- cgit v0.10.2 From 109e6cab4804fd8fa84dfca82746e67a435f8102 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a4dcc40..070dede 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); -- cgit v0.10.2 From 1d8b76b31824c51be48007e4b5c6159a9cc19d6e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 070dede..9550af5 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); -- cgit v0.10.2 From 4fb770d64e0e0a6ce14ff62e53f9ce86ed214d49 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9550af5..b65da9b 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; -- cgit v0.10.2 From c2115d8ef82d84678ec39e3a2f8b745bb018e07c Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b65da9b..b93776a 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_: -- cgit v0.10.2 From cb067dcf211fc3b707ad2feecb2986dd7866da9d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b93776a..72ac25c 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"); -- cgit v0.10.2 From 834e0cb01db0dd33cd9b889dce6a01a05fb6daac Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 72ac25c..53e981d 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); } -- cgit v0.10.2 From 27ff21681b4362fb8e0623c260603e39c8aa41d5 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 53e981d..e3bfad0 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, -- cgit v0.10.2 From 413f930eab1111e7591b0494e689309f1dbd34a0 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 14:07:41 +0800 Subject: staging: wilc1000: hif_sema_driver can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index e3bfad0..3e728b6 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; -- cgit v0.10.2 From 2d25af87768e7bc73dd171933f2bbd1464eba1ec Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3e728b6..452c9be 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; } -- cgit v0.10.2 From 440e8993d1258bc6a7d1522dde8b582dd5a1b7d8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 452c9be..40581bc 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) -- cgit v0.10.2 From 172250024cc4b30efde4666e51540010ecd75ee0 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 14:21:32 +0800 Subject: staging: wilc1000: hif_sema_deinit can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 40581bc..0947e93 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; -- cgit v0.10.2 From 262f55e1543e9f3c837481da695c3531d2c32dcc Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0947e93..fcedceb 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; -- cgit v0.10.2 From 24aadb8bd24999416e75fc301389e102cef5194e Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 14:32:40 +0800 Subject: staging: wilc1000: periodic_rssi can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index fcedceb..639fd5e 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]; -- cgit v0.10.2 From a633c0b5d5633d406354a6eb10df838c6dc24632 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:24:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 639fd5e..cc10e6a 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); -- cgit v0.10.2 From ca8540e4d79c37a7128000990079650e5bb3302a Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index cc10e6a..3e5fcd9 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)); -- cgit v0.10.2 From f64321c6ba1ec92918e0bb1a9f440290a891580a Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 14:46:26 +0800 Subject: staging: wilc1000: scan_while_connected can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3e5fcd9..4b87fba 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; -- cgit v0.10.2 From 144b7b2336443109f921fb00c1fe1b70da885065 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4b87fba..1465f26 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; } -- cgit v0.10.2 From 75327a0244b7ba0ef180601d414af6302821a6ff Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1465f26..8a434e0 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; } -- cgit v0.10.2 From 95ebb0ffe4e26dbcb75cee57b01119c9f23fccba Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8a434e0..c9faf47 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; -- cgit v0.10.2 From 078b1e98be884ae0296aeaae657e65b3f98d4080 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:04 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c9faf47..592b689 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"); -- cgit v0.10.2 From 1e75d01c6da6ac7fc6382f999a0cecb5cff32f0e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:05 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 592b689..f64b205 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; -- cgit v0.10.2 From ad26906ff6a241f8b114966250ab543ebbfcef9b Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:06 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f64b205..1b010ef 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; } -- cgit v0.10.2 From a74c7bf86c62b0cfd02d127ee00192ccbab6a9b1 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:07 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 1b010ef..a2a865f 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; -- cgit v0.10.2 From 7a9adb051cd182d25ba050de8ff99fad83efda7e Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index a2a865f..38fe632 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); -- cgit v0.10.2 From 044a641014b3da1acdd9edc7e7b8716f5b145084 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 38fe632..9b084eb 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; } -- cgit v0.10.2 From ef5991947fda0d4003417c7457386c294c388cb7 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 15:04:15 +0800 Subject: staging: wilc1000: join_req can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9b084eb..4f39f94 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; -- cgit v0.10.2 From 48ce24654e3ae51711fa57ec5e23de6e64036ee9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4f39f94..4095064 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; } } -- cgit v0.10.2 From 1bd9d44c510622bf41bdf2bd77a9d8fb44f2f89c Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 4095064..3d2f0bd 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++; -- cgit v0.10.2 From 23047d5b1e95c003dd6e43d930ace593c53c46ee Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 15:18:34 +0800 Subject: staging: wilc1000: mode_11i can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3d2f0bd..8b41ba1 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; -- cgit v0.10.2 From fba4989eb25a02b21c7a8cfc892917a1747590b8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:12 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 8b41ba1..658417c 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; -- cgit v0.10.2 From 0626baaacfe36bcbc2c65ea7d210752ed29c9293 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:13 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 658417c..681e1de 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; -- cgit v0.10.2 From dfef7b84e8772e297ceeeb388f25e0bc611797f8 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:14 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 681e1de..2ae1078 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; -- cgit v0.10.2 From 5e0e7c2e4594f9ec85f999b98d186c66403ff1b4 Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 15:47:44 +0800 Subject: staging: wilc1000: info_element_size can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 2ae1078..f6c61dd 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 -- cgit v0.10.2 From 870515c113899cc9595cfe507c4262881a2a1df0 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Thu, 15 Oct 2015 13:25:15 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index f6c61dd..0170842 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; } -- cgit v0.10.2 From 23fba59de00aeeb587db16b450aea7c497cde8ed Mon Sep 17 00:00:00 2001 From: kbuild test robot Date: Thu, 15 Oct 2015 15:59:53 +0800 Subject: staging: wilc1000: join_req_drv can be static Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 0170842..3dbb74e 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 -- cgit v0.10.2 From baba7c743a91da1fa5946da98ce86eddfe81a5fb Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:48:29 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 08ba5ba..be5086f 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; -- cgit v0.10.2 From b5c84cd86e86d929a28eb322659f69db353cabb9 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:49:47 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 39e463c..3d45cc3 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 */ -- cgit v0.10.2 From 543f5b1313b758d38f8ac9c2492a36400a0f0966 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 16 Oct 2015 10:47:11 +0530 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 3dbb74e..38fead4 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; } -- cgit v0.10.2 From 7e4e87d32804c6a14e41b83c5b3f70ebdc3f0d9e Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Fri, 16 Oct 2015 16:32:26 +0100 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index be5086f..bcbf1bd 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, -- cgit v0.10.2 From 92af89d37c415c61c676bb28ae7facdef1821477 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 16 Oct 2015 22:05:34 +0200 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan_spi.c b/drivers/staging/wilc1000/linux_wlan_spi.c index 760b72a..039d061 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) -- cgit v0.10.2 From bcc43a4b5ed75285aeacf2cf8d9b96d6379fb429 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 16 Oct 2015 22:45:39 +0200 Subject: 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 diff --git a/drivers/staging/wilc1000/Kconfig b/drivers/staging/wilc1000/Kconfig index 59ccecc..ee51b42 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 -- cgit v0.10.2 From 7751e0e2d2f2dd75e8e7adf96750ac403b799874 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 09:26:44 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 8b8ec14..a27cde9 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); } /* -- cgit v0.10.2 From 7092d76f144dc852b2143fe3daabc66fb794dba6 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 09:26:45 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index a27cde9..77f3e43 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); -- cgit v0.10.2 From b02f9240e0e02a030883e3bb7f712f5e1ea58ac9 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 13 Oct 2015 09:26:46 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 77f3e43..bab3d91 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); -- cgit v0.10.2 From f955a398f2cc5bc896388b8046c3c12fc5ec687b Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 03:06:20 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 8c1ecb3..805a403 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, -- cgit v0.10.2 From ad942cb19b416fc64f17871372ee0932878861c0 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 05:04:00 +0530 Subject: 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 diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c index 049adea..0052a91 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; -- cgit v0.10.2 From 5aebea5590295ab35df87cc0c0a19f0d0241f012 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 15:49:06 +0530 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c index fca22ba..d28f29a 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); -- cgit v0.10.2 From d26a752e198fcd4e3bcd8787a045f6aacb93419d Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:34:41 +0530 Subject: 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 diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c index 0052a91..d5c48a5 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; -- cgit v0.10.2 From fcf7f33866378e51c12bab11826a76658364bd88 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:35:58 +0530 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_wlan_util.c b/drivers/staging/rtl8723au/core/rtw_wlan_util.c index 3c1315fc..5e87360 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; -- cgit v0.10.2 From e847655a29384c4a5275b30b0bc553bd2b152e4f Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:37:09 +0530 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c b/drivers/staging/rtl8723au/core/rtw_recv.c index ad0549c..404b618 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); -- cgit v0.10.2 From d538ae34be092486fea32431232bc5cc58df4545 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:38:21 +0530 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c b/drivers/staging/rtl8723au/core/rtw_ap.c index 65b209a..a7c8b73 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; -- cgit v0.10.2 From adc6b375aae108cf03aa42d4e39e42a08be4e9a8 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 17:32:58 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index f34a963..6805f79 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); -- cgit v0.10.2 From adc08cc4c9a34a81194e81754f4a1c8b558df850 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 17:38:23 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index b755ab4..f70235c 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++; -- cgit v0.10.2 From 7074ed3df1e23acf68dc398207b6b4bc6a26cac7 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 17:48:58 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl8712_io.c b/drivers/staging/rtl8712/rtl8712_io.c index 921fcff..b9abe05 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, -- cgit v0.10.2 From 993c307eb48accf5fc34f703e6c290ddfc251b6e Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 19:10:21 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl8712_xmit.c b/drivers/staging/rtl8712/rtl8712_xmit.c index 86206d3..27b1213 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); -- cgit v0.10.2 From 0b2ea2c7adf0abb528d277889f74243b537b1705 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 19:14:59 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl871x_io.c b/drivers/staging/rtl8712/rtl871x_io.c index e4e5b13c..fbbc635 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); -- cgit v0.10.2 From 28aba5001300c46320bdc4eba26a8aebf4d83694 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 19:24:10 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index 9d0d031..c940722 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; -- cgit v0.10.2 From a90391e4c11c453dfde739f94fac73fe94f1957a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 02:29:55 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index 4fa2540..534dc04 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; -- cgit v0.10.2 From e904cc8f57d0fb7efb90529475a5793d534538b2 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Wed, 14 Oct 2015 23:55:52 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 4e6db88..5618dba 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; -- cgit v0.10.2 From a1b42bef0a4bfea3b6679ef05e9b26eebe0d0682 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Wed, 14 Oct 2015 23:55:53 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 5618dba..e5a52a9 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); -- cgit v0.10.2 From d32c16d2fc5c45f97c77f687d8e61277c543d210 Mon Sep 17 00:00:00 2001 From: Punit Vara Date: Wed, 14 Oct 2015 23:55:54 +0530 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index e5a52a9..a964816 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 */ -- cgit v0.10.2 From afd0fea4e691ff53bff8adb4bc89398010b6f954 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 23:03:50 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index c443e2e..fcbd59f 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; -- cgit v0.10.2 From f3a8fb0729557ac7f9bee7e208a8227abc056e0e Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 22:48:50 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c index 4b5f32d..130c852 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; -- cgit v0.10.2 From 3df82ddccfc80d6f9665daf05a7836874d32a40c Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:11:37 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c b/drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c index 8fce717..cd8a998 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) -- cgit v0.10.2 From 864ef621fa45b5dd6a113d771640fc4984cc8dc6 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:13:30 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index 3f6f070..f45898f 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]; -- cgit v0.10.2 From c54ed23f65407f2d91c358e98b9a639ec0c6ca1d Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:15:23 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/pinger.c b/drivers/staging/lustre/lustre/ptlrpc/pinger.c index 53bfae1..5c719f1 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); -- cgit v0.10.2 From 7f93fca90e09ade58cc1d4221706c0af5ef29076 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:17:08 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c b/drivers/staging/lustre/lustre/ptlrpc/sec_gc.c index 07cf2fe..6e58d5f 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(); -- cgit v0.10.2 From 9581bada1f64003fd8cc7bc6cad3f0643877b439 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:18:33 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index 780ea81..7315733 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; } -- cgit v0.10.2 From 167a47c5207fdfbe633cf54518c0291c88d0d97f Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 00:20:03 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/osc_request.c b/drivers/staging/lustre/lustre/osc/osc_request.c index a3a6374..32c9713 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; -- cgit v0.10.2 From 8ba53beb2ce30f5fd0abe1638440889d10988b7c Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:28 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/connection.c b/drivers/staging/lustre/lustre/ptlrpc/connection.c index ffe36e2..1ba1f5f 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 && -- cgit v0.10.2 From cca3241628f02fe68ce22a71bbc555d16915e6a8 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:22 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index f1799aa..8989e36 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; -- cgit v0.10.2 From ab12717607e363124da88d64eeb3fedce9674dfe Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:21 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c index 7cc4b55..3228fee 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 64e2d1b..38e5e13 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 0d324cc..149c838 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; -- cgit v0.10.2 From b55044062ce243868e9f1dbceda8a453fd61c7d3 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:42:53 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index c6c23f9..9bf13d7 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); -- cgit v0.10.2 From f5ef08d8f1f51f29c9f4f7457e76789e7f10212b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 13:50:19 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index ec36c88..561dcd5 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) { \ -- cgit v0.10.2 From 83d6b8fee71f66ac2c55b98053be53aa3251e8fa Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 18:24:05 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c index e3ea477..e874e63 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) -- cgit v0.10.2 From a3aa95f887f5816c4832f108b2fa4e5f2dba3e11 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 19:46:06 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c index e0b81ee..d4bf34b 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); -- cgit v0.10.2 From 673536c9880867e7d9bacd261c423ee953bf4392 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 16 Oct 2015 01:00:10 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index ec14b72c..abc53f1 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 { \ -- cgit v0.10.2 From fea6fc647b589e5954330f1f0497b6de59b7fe01 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 01:36:31 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index 053d508..cdc7f88 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 */ -- cgit v0.10.2 From e3ce40cb734f2a0edd51f3a7cda913274dab42ed Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 02:17:20 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c b/drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c index ec44b3c..415817c 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) { -- cgit v0.10.2 From bd60ac14db902ed8e5c7a769c85fc9005fd69c26 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 14 Oct 2015 23:46:05 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c index 3bc4223..d0fedb0 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--; -- cgit v0.10.2 From 4a737ec350caf0d04e3706f86887ac716abf584e Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 22:34:27 +0300 Subject: 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 diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c index ff83394..636a7ee 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]; -- cgit v0.10.2 From 0e4f007500397921bda7038fa4afafde68fc0b23 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:12 +0300 Subject: 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 diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c index 3f7715c..d88d85b 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)); -- cgit v0.10.2 From e8ef49f09b26a4c11ad846ef1afa2a726a8c6800 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:13 +0300 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index fe56fb6..5ae7a50 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 edbfba1..6db764e6 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 bf2c801..1e324fe 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 1d48ae3..fbe8237 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 7303983..9c62e94 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 9f03fe3..722bb15 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 48b1c37..4e954d2 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 bcf4ebb..d11c54b 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 d88d85b..f250aaf 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 c538237..712cae0 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; } -- cgit v0.10.2 From 603f102f7887e742ae85939dad80e868c2e64885 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:14 +0300 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 5ae7a50..6adac61 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 6db764e6..01156c7 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 f250aaf..407d4a2 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; -- cgit v0.10.2 From c30685c67cc21490fc6842cbbc68404be90f6859 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:15 +0300 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 6adac61..e7212c8 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 01156c7..2737033 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 1e324fe..5796ed2 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 fbe8237..3537a78 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; } -- cgit v0.10.2 From 5feb8c51dba6813bcfbdeb688cd5fd6bcde2c5da Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:16 +0300 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c index 4e954d2..6636087 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; }; -- cgit v0.10.2 From 779c123e1a6cab6e564366198dcdcea8f273dbcf Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:17 +0300 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7606_par.c b/drivers/staging/iio/adc/ad7606_par.c index 3537a78..adc370e 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 9c62e94..b88f882 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 -- cgit v0.10.2 From 253ed6848f07b910be5a9bbe1a741c6bc679cb54 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:18 +0300 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index e7212c8..f3d793c 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 2737033..d37e8a4 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 722bb15..618b41f 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 6636087..b3dec706 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) -- cgit v0.10.2 From 5f7e280f5ae61450a7aecd9feefe3f032b6a5abf Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 14 Oct 2015 21:14:19 +0300 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index f3d793c..bb76096 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 a0a5b61..7433a43 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 d37e8a4..45df714 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); -- cgit v0.10.2 From 859ba4684ec442b78e7ea8abd3529b9ad7c6024b Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Fri, 16 Oct 2015 10:50:56 +0530 Subject: 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 diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c index 6cd15e6..2c5d277 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) -- cgit v0.10.2 From 3c6b71a503181ccfcbad25f500f18b1253b8a247 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 19:12:06 +0530 Subject: 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 diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index bb76096..5b87049 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; -- cgit v0.10.2 From 561e2967346af25aca786df77a339888574caec2 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 20:50:10 +0530 Subject: 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 diff --git a/drivers/staging/iio/light/tsl2x7x_core.c b/drivers/staging/iio/light/tsl2x7x_core.c index 010e607..bf9627e 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); -- cgit v0.10.2 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: 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 diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c index 9ec3efe..518fbd5 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); -- cgit v0.10.2 From 96c35228559a6e9ec14cb494a3f6807b9f755c50 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 00:21:11 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/rf_cfg.c b/drivers/staging/rtl8188eu/hal/rf_cfg.c index 954cade..067649a 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, -- cgit v0.10.2 From d762c9b4b48acd082eb1d3ffe56401eac92fbef4 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 00:02:14 +0530 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c index 39325a3..82d4e88 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; -- cgit v0.10.2 From 0d04cd1972d0d8c51845c243be160fef9480f219 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:30 +0530 Subject: 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 diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c index 1bbb90c..b1dfa2c 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)); -- cgit v0.10.2 From a787bde8ce7f3c6c5ba50175769827fbde3b42c0 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:29 +0530 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/chip.c b/drivers/staging/rdma/hfi1/chip.c index 1152359..46ebc38 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 b2c1b72..58723fb 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 a43fccd..45f291f 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)); } -- cgit v0.10.2 From 2512233334d9694c42a0da14f5a6393e75c7835e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:27 +0530 Subject: 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 diff --git a/drivers/staging/rdma/amso1100/c2.c b/drivers/staging/rdma/amso1100/c2.c index 7f1e794..35ac536 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 cedda25..eb7a92b 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 3a17d9b..74b32a9 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. -- cgit v0.10.2 From e4c0c6bc0c3baa6ba8cce4db5568fe9db5ad3c5f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:26 +0530 Subject: 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 diff --git a/drivers/staging/comedi/drivers/amplc_pci230.c b/drivers/staging/comedi/drivers/amplc_pci230.c index 5c5c4e2..4b39f69 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 b43e836..b589e17 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; -- cgit v0.10.2 From 759f19dda576703ebb76d7d460dbcbcdc6d0ac2e Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:25 +0530 Subject: 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 diff --git a/drivers/staging/gdm72xx/gdm_qos.c b/drivers/staging/gdm72xx/gdm_qos.c index 72c0f7ef..81feffa 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 69f00cc..d9ddced 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; -- cgit v0.10.2 From dd146d2194eeae078a9a8e5562c8eefa475fa220 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:24 +0530 Subject: 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 diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c index 2025b61..3600176 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; -- cgit v0.10.2 From 7f44582ea77229331c52cdd1374488523796a86f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:23 +0530 Subject: 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 diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c index 94419c3..07594f4 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 41a7bca..c119f20 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 *) -- cgit v0.10.2 From 2594ca30c0ae7f126fc84dc3a795f007c2b2787f Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:20 +0530 Subject: 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 diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index a8d2cff..8a55ec1 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 1cf24e4..97b72a0 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 001348c..655f768 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 ed1a12f..9ceba14 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); -- cgit v0.10.2 From 98b5afd833e8b9549418296ae2e02f273b0e7b01 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Thu, 15 Oct 2015 00:58:19 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index c7e956f..3887631 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; -- cgit v0.10.2 From df18b9304e3c8db6753519068cc2b8fb8cc6a40b Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 01:42:11 +0530 Subject: 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 diff --git a/drivers/staging/wlan-ng/hfa384x_usb.c b/drivers/staging/wlan-ng/hfa384x_usb.c index e109a7f..444ebed 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) { -- cgit v0.10.2 From 51c826f0733479a44407a7bb28b1c160ec1a19f3 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 14 Oct 2015 23:26:15 +0300 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_driver.h b/drivers/staging/dgnc/dgnc_driver.h index c61884c..ce7cd9b 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 -- cgit v0.10.2 From d09c1b96a731639436402bf0d957b974f4eed6b8 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:55:45 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index 4ac9092..48e4b90 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; -- cgit v0.10.2 From f4edff5208df48ebb3099a3b4a521eb58803f877 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:56:52 +0530 Subject: 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 diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c index 619baa9..fc6d298 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 -- cgit v0.10.2 From ed400c9617766daf652bb9cc310005d4b6325413 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 14 Oct 2015 23:27:12 +0300 Subject: 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 diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index eb45b27..cef33e4 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]; -- cgit v0.10.2 From 193ef315246df696e3d51e07745c04525c4919db Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 21:38:34 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c index 19f6136..2a50cf9 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); -- cgit v0.10.2 From e788b70f3bc058b73390e03bd8e58835ac66fa82 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 21:49:01 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c index 86e43e1..b167c50 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; -- cgit v0.10.2 From f1092794c0132cfca2329748983b840ffeae379e Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 21:49:20 +0530 Subject: 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 diff --git a/drivers/staging/fbtft/fb_ssd1331.c b/drivers/staging/fbtft/fb_ssd1331.c index 53cb8e9..bd294f8 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); -- cgit v0.10.2 From 7ea8778ef33438a6509313cc1177a9a8ec44b214 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 14 Oct 2015 23:28:29 +0300 Subject: 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 diff --git a/drivers/staging/speakup/speakup_soft.c b/drivers/staging/speakup/speakup_soft.c index 366358b..b2eb5b1 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 1ef3795..9bb281d 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 95c473a..3116ef7 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 -- cgit v0.10.2 From b5186a9fd2ff333693034cd0d24590dd0bc34ea7 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 03:23:35 +0530 Subject: 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 diff --git a/drivers/staging/speakup/speakup_audptr.c b/drivers/staging/speakup/speakup_audptr.c index ea89e36..a9a6872 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) -- cgit v0.10.2 From b62c535cd0485804ab889fd8f9ac789ede230dd2 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 02:28:36 +0530 Subject: 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 diff --git a/drivers/staging/speakup/varhandlers.c b/drivers/staging/speakup/varhandlers.c index b2afec6..ab4fe8d 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 == ',') -- cgit v0.10.2 From 8f94c5a6829c764cd1a4f8d497ffb201419bed85 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 16 Oct 2015 10:06:46 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 058ee91c..5f28c3d 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); -- cgit v0.10.2 From 1b756c43ce3b1696282670bd1de41d36e5205781 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 16 Oct 2015 10:06:47 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 5f28c3d..9fdaa9c 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, -- cgit v0.10.2 From 7eb1f7a09bcc1c5f10241d85bee65e786558f171 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Wed, 14 Oct 2015 09:45:10 -0400 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index 9fdaa9c..d23c129 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); } /* -- cgit v0.10.2 From 8d53d80b12c9683d51b8649a74b6c09ca0c15f8a Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 03:22:22 +0530 Subject: 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 diff --git a/drivers/staging/unisys/visorinput/visorinput.c b/drivers/staging/unisys/visorinput/visorinput.c index d23c129..5c16f66 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) -- cgit v0.10.2 From 4690ba0d4f4b2699db6802ebcbd4e66358d67849 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:54:35 +0530 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/sysfs.c b/drivers/staging/rdma/hfi1/sysfs.c index b78c728..1dd6727 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) { -- cgit v0.10.2 From 16709962c119a75d140da9dc226eeb9035e2c353 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:53:23 +0530 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/diag.c b/drivers/staging/rdma/hfi1/diag.c index 3d025d7..88414d7 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, -- cgit v0.10.2 From 939cb02e6efd4d2d9f3129c6e6c31f68869ab7b3 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:52:08 +0530 Subject: 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 diff --git a/drivers/staging/rdma/ipath/ipath_init_chip.c b/drivers/staging/rdma/ipath/ipath_init_chip.c index cec1ebb..4aea99c 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) { -- cgit v0.10.2 From 065779434e59efa6252b3ed27df77f2151d47c54 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:50:56 +0530 Subject: 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 diff --git a/drivers/staging/rdma/ipath/ipath_eeprom.c b/drivers/staging/rdma/ipath/ipath_eeprom.c index fc71819..ef84107 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) { -- cgit v0.10.2 From 6618c051b52ec108f5b5a2deacd70fbaed4b4542 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 15:14:41 +0530 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/mad.c b/drivers/staging/rdma/hfi1/mad.c index 58723fb..1de282c 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) { -- cgit v0.10.2 From 0bfe513cac8cf0655489e0e6dd5e7dd3cb2b5927 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Fri, 16 Oct 2015 09:06:52 -0700 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/mr.c b/drivers/staging/rdma/hfi1/mr.c index bd64e4f..0208fc2 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; - - 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; - } + 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; + } } ret = &mr->ibmr; -- cgit v0.10.2 From d32cf44a62716d4fa9e9d8a5d7201a89d936fe5e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:09:08 +0530 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/file_ops.c b/drivers/staging/rdma/hfi1/file_ops.c index 7d28680..cbaf4f7 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? */ -- cgit v0.10.2 From b49f3b23428433dc1e8bf323d1c39be73f1605e5 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:10:25 +0530 Subject: 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 diff --git a/drivers/staging/rdma/amso1100/c2_provider.c b/drivers/staging/rdma/amso1100/c2_provider.c index 956d76b..2563215 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); -- cgit v0.10.2 From 5309c5b8f00b399dd3f80da855d9211944f1ed7e Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:45:39 +0530 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index f842be6..4640b56 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]; -- cgit v0.10.2 From 4b1443a248c5073d0e11e1f26bf7d8522d193b63 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:47:00 +0530 Subject: 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 diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c index a215563..167dca9 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]; -- cgit v0.10.2 From 17accc46ec6e015a48c5afd281381a33d6b1da16 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 15 Oct 2015 13:31:11 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 4640b56..e0bf39e 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; } -- cgit v0.10.2 From 574dddc6d73eedb3177c8db4f61fa7cebcabb128 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:12:35 +0530 Subject: 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 diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c index 167dca9..70685e5 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; } -- cgit v0.10.2 From a8a211c481f806c20d56ddb7b0f8533813e936d0 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:13:29 +0530 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index e0bf39e..5c7f07e 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; -- cgit v0.10.2 From 779fcc8410757386bac35ddf4ba026943f2f24f3 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:44:20 +0530 Subject: 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 diff --git a/drivers/staging/skein/skein_api.c b/drivers/staging/skein/skein_api.c index e6c2b06..46a74fc 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 -- cgit v0.10.2 From 79f2af620ef5ae6a6ddf4a3da65568c90c0c5e25 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Fri, 16 Oct 2015 22:11:36 +0530 Subject: 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 diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index a7e3875..b47da2b 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 { -- cgit v0.10.2 From 05ea2d97b9c7a2273a4f0405c036d6e4b61e2245 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:41:30 +0530 Subject: 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 diff --git a/drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c b/drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c index 5742619..01df068 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); -- cgit v0.10.2 From 3bf3cdee6368a0093584f021aaded582427048dd Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 15 Oct 2015 13:40:08 +0530 Subject: 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 diff --git a/drivers/staging/media/lirc/lirc_sasem.c b/drivers/staging/media/lirc/lirc_sasem.c index d3dedb8..bc78da0 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; -- cgit v0.10.2 From 15aae23e9e5e98a93cf4d942080d17a6ef07d074 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 20:56:22 +0530 Subject: 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 diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 97b72a0..07de99c 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; -- cgit v0.10.2 From 258e7af2954fb68b55fe9253560f6dfaa4896e54 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Fri, 16 Oct 2015 22:09:57 +0530 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index aa3aa72..ca64126 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); -- cgit v0.10.2 From 2f31c4b4188933e812b66f5e78d4cb0be9d5f3d2 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Fri, 16 Oct 2015 11:46:29 -0700 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c b/drivers/staging/rtl8723au/core/rtw_ap.c index a7c8b73..a0b6845 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 */ -- cgit v0.10.2 From 26fc5d01d12323fb9ca231032d47cef4e4cb6bd6 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 16 Oct 2015 21:51:43 +0300 Subject: 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 diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index 3f424d1..d0f86d3 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; -- cgit v0.10.2 From bdf4b8811f02067dc332f635b59f600a869da1a0 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 16 Oct 2015 21:51:44 +0300 Subject: 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 diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index d0f86d3..2c34f61 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); -- cgit v0.10.2 From 5e6731c88b2dc2dd484f5b4177df9f3f95c3f6c9 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Fri, 16 Oct 2015 21:51:45 +0300 Subject: 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 diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index 2c34f61..f45b2ef 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); -- cgit v0.10.2 From b981da12513469324a18ae8250bca2848f8bf787 Mon Sep 17 00:00:00 2001 From: Gavin Thomas Claugus Date: Tue, 13 Oct 2015 17:44:40 -0400 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 930ada0..16be88e 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; -- cgit v0.10.2 From bba76322c3075776f222c4c7dd36f954ed458250 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Thu, 15 Oct 2015 16:12:01 +0530 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 16be88e..212a667 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; } -- cgit v0.10.2 From 9158d33a5d38d1d23717d31c1e5eb11a6ebc982e Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:51 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 0e54830..81dd8de 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 3887631..58a8514 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 8e331a2..c5b10c7 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) -- cgit v0.10.2 From ff466a5bc26af4f2bed11cd6adf625c6e57e0242 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:54 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 212a667..49411b7 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; -- cgit v0.10.2 From bfa1a42ec367afd82d70298e451a1ca1cf4989ce Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:55 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-i2c/hdm_i2c.c b/drivers/staging/most/hdm-i2c/hdm_i2c.c index 9768281..2cce1e5 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; } } -- cgit v0.10.2 From ba170ee2b95f53d6e973b63860a4bb80c3140ff4 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:56 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index a73eb5f..0bf38c4 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]) || -- cgit v0.10.2 From 47af41b0d9c078a8f093d418464de6083bd4e80d Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:57 +0200 Subject: 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 diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c index 1905547..ca32b2147 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; -- cgit v0.10.2 From d58b0ee39abe889dd32718bdf407d13e7dbfb5df Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:58 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index f0d9a43..4334e519 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; -- cgit v0.10.2 From b2db4b245ec8962ac1c1029462770efbf2d54f18 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:28:59 +0200 Subject: 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 diff --git a/drivers/staging/most/mostcore/mostcore.h b/drivers/staging/most/mostcore/mostcore.h index 9bd4c77..e148b32 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 -- cgit v0.10.2 From 1446ff09ff87b9103fdde74962b3451f95b059c9 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Thu, 15 Oct 2015 13:29:00 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index 4334e519..5f0ea9b 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 6e68832..1c94e33 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 ca32b2147..0efc391 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, -- cgit v0.10.2 From 27f88f3f1a7f203f79146a5a2c835c901af100fe Mon Sep 17 00:00:00 2001 From: Ronit Halder Date: Fri, 16 Oct 2015 14:20:20 +0530 Subject: 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 diff --git a/drivers/staging/rts5208/rtsx.c b/drivers/staging/rts5208/rtsx.c index b4e4543..1fe8e3e 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; -- cgit v0.10.2 From dbabedf38eb9cc435450d48cb68b30f1337e1bea Mon Sep 17 00:00:00 2001 From: Sakshi Bansal Date: Thu, 15 Oct 2015 20:05:03 +0530 Subject: 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 diff --git a/drivers/staging/netlogic/xlr_net.h b/drivers/staging/netlogic/xlr_net.h index 2f65ec5..7ae8874 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 -- cgit v0.10.2 From d41af47d9f3adb49c4328f1b6c769926478679c4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:25 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index b589e17..f27090d 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 - -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: + * 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 + */ -analog triggering on 1602 series -*/ +/* + * TODO: + * analog triggering on 1602 series + */ #include #include -- cgit v0.10.2 From 3ab2733b7ce9e20be53f483f626f3d06ff507de3 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:26 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f27090d..dee4f8e 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; -- cgit v0.10.2 From bfd2eb8d2077776fab9dbd2d91082990908480ab Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:27 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index dee4f8e..99f12dc 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; -- cgit v0.10.2 From fe97f142bb18903f91cde3de73c6b14ae031d4b4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:28 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 99f12dc..f6309c9 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) */ -- cgit v0.10.2 From 2743803dc4fce84365204a494ef94edd81c8320b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:29 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f6309c9..46c47ed 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; -- cgit v0.10.2 From c368e6687066c0dcaddacdd1bcdf7999caa21fa4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:30 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 46c47ed..a844103 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; -- cgit v0.10.2 From 9d39f185130432452ba8cead55ec7c4a914133bc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:31 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index a844103..3a17611 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) -- cgit v0.10.2 From 800235b64ef3440a77af019a3f6ffd5a42cff785 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:32 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 3a17611..4782751 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); -- cgit v0.10.2 From 71c1d717b3d0318edafc91c45e84140379c86e8d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:33 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 4782751..3c1b80a 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, -- cgit v0.10.2 From 9846ec3a48e1ef4be619478d0822467dbfe79ec4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:34 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 3c1b80a..f5db76c 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) { -- cgit v0.10.2 From 19aab073245923e8b8b4876dbc2d0287e9e9f700 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:35 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f5db76c..5757dac 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) -- cgit v0.10.2 From 1532421f4128414aa1e86885de8377b28d5bb079 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:36 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 5757dac..df4fd3c 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; -- cgit v0.10.2 From 964db7469f3b7cae5acd49f863fd612271322bf6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:37 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index df4fd3c..8a288ed 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 && -- cgit v0.10.2 From f5c65f0298c9d2776f91a769ba880b4c6704b939 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:38 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 8a288ed..8ed747d 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 */ -- cgit v0.10.2 From 56a160b0ca481c6f2b56894b5a43862b0103fd93 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:39 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 8ed747d..8309046 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; } -- cgit v0.10.2 From 1f9cb9424e406551e32cd203c2fab37c00943935 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:40 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 8309046..72395ea 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; } -- cgit v0.10.2 From 1a55808d6245a294d1785778de7d80cab3d14136 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:41 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 72395ea..423a2e1 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; -- cgit v0.10.2 From 21b6476af98672f8c784a40817793fe17504f978 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:42 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 423a2e1..751cb6f 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 */ -- cgit v0.10.2 From be3a7688753b18986c10de5fb99a40b9c639cc59 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:43 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 751cb6f..2eae705 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; -- cgit v0.10.2 From 53cb50aae6fea6af83bde3c773a34abf3469377c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:44 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 2eae705..2df80f6 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; -- cgit v0.10.2 From 19ce5d61528a464d97f7cfa17f01bcdc86ded8ae Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:45 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 2df80f6..99a95c2 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) -- cgit v0.10.2 From 8c11f4772c54d9bea4448ae9de1d4b99695ee72a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:46 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 99a95c2..84bc3de 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); -- cgit v0.10.2 From 6eb2455dcf1353408c7525ad8617314b3c084efc Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:47 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 84bc3de..3c1a747 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"); -- cgit v0.10.2 From 2285cd513128d8765334083a997eaa4df4e08791 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:48 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 3c1a747..fb10fe6 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; } -- cgit v0.10.2 From eddd2a4c675c95f19da79b5adbf46851b2441212 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:49 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index fb10fe6..c034de3 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; + 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 - register_bits &= ~PCIDAS_CALIB_DATA; - udelay(write_delay); - outw(register_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); + 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, -- cgit v0.10.2 From 2d71464fd137d4a830dddfc799de8158e9ddc97c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:50 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index c034de3..f22611b 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 */ -- cgit v0.10.2 From 873524c8517cf0986768685358d124aae7f7e495 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:51 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f22611b..2c6ef6e 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; } } -- cgit v0.10.2 From fe970e4d2d75497a7fed75cea0acd7150e92ed92 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:52 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 2c6ef6e..fc972e5 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; -- cgit v0.10.2 From e56aaa24a0347d6e0f3be83eb31252855cadba93 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:53 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index fc972e5..b5c7dc3 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 */ -- cgit v0.10.2 From a266cd7992e7d2920a40a27c8192884fee261c21 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:54 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index b5c7dc3..04d12bf 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 { -- cgit v0.10.2 From d9b0cde41992bbd9047b435354bd5e2317158748 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:55 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 04d12bf..f34a615 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) -- cgit v0.10.2 From 73d38effd10b8e399790aa67d6eace855f2d81ce Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:56 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index f34a615..3238cab 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]; -- cgit v0.10.2 From 16ded01b69b10d09659e61f0703979c63dcd385f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:57 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 3238cab..c0ae92d 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; - - 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); + unsigned int status; - 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; + + /* 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); + + /* wait for data to be returned */ + ret = comedi_timeout(dev, s, insn, cb_pcidas_eeprom_ready, 0); + if (ret) + return ret; - data[0] = nvram_data; + data[i] = inb(devpriv->s5933_config + AMCC_OP_REG_MCSR_NVDATA); + } - return 1; + return insn->n; } static void cb_pcidas_calib_write(struct comedi_device *dev, -- cgit v0.10.2 From 8499ad694a20de85a9e37da4a1aa57869f368fb2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:58 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index c0ae92d..5305d60 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); -- cgit v0.10.2 From b4008c7207e832d14414f76774a8ebc7067f2154 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:59 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 5305d60..58f20d5 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; -- cgit v0.10.2 From c5c51b1d6a7629a3efd413fc9f6a6e5d553d5f24 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:48:00 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 58f20d5..4c192fc 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 */ -- cgit v0.10.2 From 790b2f06249602ee2560bb94cce4b934abcba6e4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:48:01 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 4c192fc..268ec77 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]; -- cgit v0.10.2 From edebf6199bfec7cdefc69a4178b760d09165a926 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:48:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 268ec77..4aa27426 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) { -- cgit v0.10.2 From b5f00637784f09e524ca882e8d43d78e36da166b Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 17 Oct 2015 08:55:15 -0700 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c index 658c878..1600375 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; } /** -- cgit v0.10.2 From 350979e4870711912f4a391d7b2fadfedf775fc3 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Sat, 17 Oct 2015 15:25:33 +0300 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 3d45cc3..93f3c75 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; } -- cgit v0.10.2 From 86e4180e122161469f5215aed6a75300a1c406e7 Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Sat, 17 Oct 2015 15:25:34 +0300 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index 93f3c75..cea7c6f 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 */ -- cgit v0.10.2 From 09c02cb5a610b33425169cabae3efed390ff400a Mon Sep 17 00:00:00 2001 From: Aybuke Ozdemir Date: Sat, 17 Oct 2015 15:25:35 +0300 Subject: 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 diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c index cea7c6f..427adfd 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); -- cgit v0.10.2 From 13d0580cd1eabceb1661049d8830d913d1e31098 Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Sat, 17 Oct 2015 23:52:26 +0800 Subject: 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 diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index 1aa449e..cf98228 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; } -- cgit v0.10.2 From a5eabae947af6f6e1f7c5c7a6eeb5fb691c100ba Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sat, 17 Oct 2015 21:20:00 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_display.h b/drivers/staging/sm750fb/ddk750_display.h index 3d2e8b4..ca35aa1 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) -- cgit v0.10.2 From 0924a89b0b06ce569c7f536984d64bf6cd2cb4d4 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:54 +0100 Subject: staging: vt6655: device_main Replace uIdx with idx. Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 673ca47..0ed82a64 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; } -- cgit v0.10.2 From 5137897949ab640910fc3bbb5d46c0d9c8492e9f Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:55 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 271a719..4b8573b 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 */ -- cgit v0.10.2 From 83373ac0be558428d64b60a994e03eb607313f2a Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:56 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 4b8573b..be6c42b 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 */ -- cgit v0.10.2 From 28c777cb1f828197b3896c6d549e6e091e68e36c Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:57 +0100 Subject: staging: vt6655: device.h remove typedef enum Covert values to macros. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index be6c42b..83bb68b 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 */ -- cgit v0.10.2 From bed02d93a1e3d6880982f9429aa75334afd29851 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:58 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 5c7f07e..71c9b97 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 83bb68b..aca6e00 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 0ed82a64..8bca3fc 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; -- cgit v0.10.2 From e06cf9aba8dadb92b1ec12a757d0a824c022176f Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:32:59 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index aca6e00..0002049 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 8bca3fc..aa8f750 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"); -- cgit v0.10.2 From 068b998835168b5107d1e62a346f52b9f44ed10b Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:33:00 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 0002049..8be3e21 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 aa8f750..d305d7a 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; -- cgit v0.10.2 From bc667b99ccb7392c33b9fd46360356b11755979c Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:33:01 +0100 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 71c9b97..c45e494 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 8be3e21..55405e0 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 d305d7a..fefbf82 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; } -- cgit v0.10.2 From 919612444272c00e0322a3d081cc720dbfa956d3 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 17 Oct 2015 11:33:02 +0100 Subject: staging: vt6655: card.c rename pDevice with priv Removing camel case. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index c45e494..76ad036 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: -- cgit v0.10.2 From a1d825e9376b7c3c9a3eaa26d14bb74c3c3ff2d0 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 17 Oct 2015 18:17:05 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 561dcd5..0b4cdbc 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) | -- cgit v0.10.2 From edc6a40e3a75650be003be0e35a54f3edc6b4f7e Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 17 Oct 2015 18:18:34 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index 0b4cdbc..ea2b667 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) \ ({ \ -- cgit v0.10.2 From d811ed6974532cdb47301ba993f766c6e5b3fd5d Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 17 Oct 2015 18:19:46 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index ea2b667..f5d0a98 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) \ ({ \ -- cgit v0.10.2 From fcc74c4dd696ad9cf3f58f8aeb1938d9b6f57261 Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Sat, 17 Oct 2015 18:19:46 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index f5d0a98..bf2bde5 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) | -- cgit v0.10.2 From e405f0e45e854191755d49bff8dfaa6e3c0584da Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Sat, 17 Oct 2015 18:19:46 +0200 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_ieee80211.c b/drivers/staging/rtl8723au/core/rtw_ieee80211.c index cdd7bc4..07a6490 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; -- cgit v0.10.2 From 724e50f7c21abd1f9ac0bc4d56fc08e3b51e8596 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:13 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index d087b4c..a4aa859 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; -- cgit v0.10.2 From ffcd52ef0907f56181a28f4ae5ab6f0b39e3cf58 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:14 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index a4aa859..c3222c6 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; + + resource = dpmcp_dev->resource; + if (WARN_ON(!resource || resource->type != FSL_MC_POOL_DPMCP)) return; - if (WARN_ON(!resource->data)) + + 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)) - return -EINVAL; - - if (WARN_ON(!mc_dev)) + if (WARN_ON(!dpmcp_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 b58b53f..e53acfa 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 939b7d3..bfbecaf 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); -- cgit v0.10.2 From d2f8499153aa78b21881b3ca1fcdc026c3a79079 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:15 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index c3222c6..33f5de4 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 e53acfa..07848a0 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 bfbecaf..d4fb602 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 */ -- cgit v0.10.2 From 6998d6ba8c7a28a77c703242e232240495c144a2 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:16 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index 33f5de4..527cb4b 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; -- cgit v0.10.2 From eceebf8bb35f14d4d4862a47fa6440eaff2698de Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:17 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/include/mc-sys.h b/drivers/staging/fsl-mc/include/mc-sys.h index d4fb602..7d44d8c 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; -- cgit v0.10.2 From 770417bb856e7f82c2906283687143db5f93f0e2 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:18 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/dpmcp-cmd.h b/drivers/staging/fsl-mc/bus/dpmcp-cmd.h index 6cc0fed..a87e9f8 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 */ -- cgit v0.10.2 From 95e9a09af4b55b8a1daa4d62afb287994aecfb8e Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:19 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/include/dpcon-cmd.h b/drivers/staging/fsl-mc/include/dpcon-cmd.h index 2617024..536b2ef 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 -- cgit v0.10.2 From 6958cd44834ecd1e490be94343c44fc64076d391 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:20 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index 527cb4b..e9c3dec 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"); -- cgit v0.10.2 From 09a38ab0b1a67e85b11d363dedc1f5de3d0e17e8 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:21 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index e9c3dec..a45293b 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[] = { -- cgit v0.10.2 From 2379bdbc6c37ad9db6538dbe8f56f18968b566ad Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:22 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c b/drivers/staging/fsl-mc/bus/mc-allocator.c index a45293b..88d1857 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); -- cgit v0.10.2 From a17f4aa62724732b4c3922d5a3a8d22b19ed2901 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:23 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index fd13053..4ac3d07 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); -- cgit v0.10.2 From 4e65f46abafbc98decbc617ca620d44151449e68 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 11:18:24 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 4ac3d07..84db55b 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, }, -- cgit v0.10.2 From c6a3363c13f43599919b82ef64ce32856d836e00 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 15:33:12 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index 07848a0..2c5f109 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: -- cgit v0.10.2 From 140305e77aa449b492af0fdd2c0d51b07a3315b2 Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 15:33:13 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index 2c5f109..c4f5bdd 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -292,27 +292,22 @@ 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: */ for (;;) { @@ -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, -- cgit v0.10.2 From 3f95ad21855f750fe0428853214754f414b82daf Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 15:33:14 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index c4f5bdd..6eeb9fa 100644 --- a/drivers/staging/fsl-mc/bus/mc-sys.c +++ b/drivers/staging/fsl-mc/bus/mc-sys.c @@ -339,20 +339,63 @@ static int mc_polling_wait_preemptible(struct fsl_mc_io *mc_io, } /** + * 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 * * @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; + 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 7d44d8c..15e19af 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; -- cgit v0.10.2 From 63f2be5c3b358db031f86eafa9cd450f6558a55b Mon Sep 17 00:00:00 2001 From: "J. German Rivera" Date: Sat, 17 Oct 2015 15:33:15 -0500 Subject: 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 diff --git a/drivers/staging/fsl-mc/bus/mc-sys.c b/drivers/staging/fsl-mc/bus/mc-sys.c index 6eeb9fa..6e14892 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 15e19af..c5038cc 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, -- cgit v0.10.2 From 064e08350f122dbede94be231e7de9012ae47ec0 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Sat, 17 Oct 2015 22:28:54 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet-rgmii.c b/drivers/staging/octeon/ethernet-rgmii.c index 51dcb61..98ad4cd 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) -- cgit v0.10.2 From 2c265f7479e43a9c0d0f4519adbc6839645c976a Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Sat, 17 Oct 2015 22:28:55 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet-rgmii.c b/drivers/staging/octeon/ethernet-rgmii.c index 98ad4cd..613344b 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 8bceb76..7424dc4 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 c26d1e6..1b9c5f9 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 d6f8a10..44142cf 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 dfb808f..50bb42f 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); -- cgit v0.10.2 From d566e69024ac9d00ab7d0b0442ad2ba3ed4bd668 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Sat, 17 Oct 2015 22:28:56 +0300 Subject: 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 diff --git a/drivers/staging/octeon/Makefile b/drivers/staging/octeon/Makefile index 9012dee..8ca1721 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 1b9c5f9..0000000 --- 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 44142cf..d78fd7b 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 50bb42f..fdf24d1 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); -- cgit v0.10.2 From ac0a36679928e3e8d7cc0b4c2fd02fb368186992 Mon Sep 17 00:00:00 2001 From: Alexey Khoroshilov Date: Sun, 18 Oct 2015 00:33:09 +0300 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index d8a0895..e15c198 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 cf9ca68..96505a6 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 d85647c..d063d02 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 7e599bc..0fea338 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; -- cgit v0.10.2 From c3af8a28f43315fc46753465a4e77e5619dd9f30 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Thu, 8 Oct 2015 22:04:26 -0700 Subject: 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 diff --git a/drivers/staging/rdma/hfi1/hfi.h b/drivers/staging/rdma/hfi1/hfi.h index 8ca171b..a35213e 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 */ -- cgit v0.10.2 From 31390eec7dce6360a96e32d440bf6e0c1bb31d0f Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:08 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 38fead4..066123f 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; } -- cgit v0.10.2 From 7178aed8ec170006ed3264ecb0b78de6d087c9b6 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:09 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 066123f..c61042e 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; -- cgit v0.10.2 From 9f3295a2dd08a28762bc627f5c3d57409b34474d Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:10 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index c61042e..948b986 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) { -- cgit v0.10.2 From 771788078a5c20bb1979e3ad2a6ef6a78e1044f9 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:11 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 948b986..b1bfd9e 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; -- cgit v0.10.2 From 8c8360b3f9397caaf106add76a3374bcd084aba7 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:12 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index b1bfd9e..9ee2d86 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"); -- cgit v0.10.2 From 91109e113c71715cd0f21fd94fb2db95103f4092 Mon Sep 17 00:00:00 2001 From: Leo Kim Date: Mon, 19 Oct 2015 18:26:13 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 9ee2d86..646e7e9 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"); -- cgit v0.10.2 From 080f11bb3782352a05dfec5fd3ecddf94793af0c Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:45 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index b879b8b..191851b 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 bcbf1bd..e463090 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 c5061fd..863571a 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 -- cgit v0.10.2 From c1b30f6a34166af4f1ee8b35906600b55f7fd591 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 191851b..2bea103 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 863571a..a3f18b5 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; -- cgit v0.10.2 From 8259a53e1c88765084a68c38bc6c5ebae563d6e5 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:47 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 2bea103..971b99a 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 e463090..f2c8a45 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 a3f18b5..71cd3de 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; -- cgit v0.10.2 From 7e7fa470efb691058de43e65373aa919e4523fe2 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:48 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 971b99a..9d57962 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 f2c8a45..b39ea18 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 71cd3de..3089129 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; -- cgit v0.10.2 From 7201cd2ca5d03e9b3b6d21e5a23fd82246a3501d Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:49 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 9d57962..493e02c 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 b39ea18..c166d3f 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 3089129..6ac9328 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; }; -- cgit v0.10.2 From 3134a57875e2cb87d6c84088fc634fa4e1c155c4 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:50 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 493e02c..11e26fb 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 c166d3f..2dfc0fd 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 6ac9328..521d3cb 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; }; -- cgit v0.10.2 From 817f3fb988642f050d6e4afce5db0a3e7a345720 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 11e26fb..41a2f09 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 2dfc0fd..264fcb9 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 521d3cb..429b654 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 { -- cgit v0.10.2 From 4875c499dc9b69f64c849677b55f0fc02a461a49 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 41a2f09..74b7cc0 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 ebacd29..e5764fc 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 429b654..b410424 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 -- cgit v0.10.2 From 8b8ad7bc90bca63d6bc00b57af1a5f94c1897e12 Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 74b7cc0..16b1d80 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 b410424..74eb7b6 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; -- cgit v0.10.2 From b46d68825c2d3af70ad18b53dfed6516e393b7fa Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 16b1d80..3cad5b6 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,29 +1043,21 @@ int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic) goto _fail_locks_; } - ret = wlan_initialize_threads(nic); - if (ret < 0) { - PRINT_ER("Initializing Threads FAILED\n"); - ret = -EIO; - 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_; + goto _fail_locks_; } #endif + ret = wlan_initialize_threads(nic); + if (ret < 0) { + PRINT_ER("Initializing Threads FAILED\n"); + ret = -EIO; + goto _fail_wilc_wlan_; + } + #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 e5764fc..1bd7f9b 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 c731641..67b0c52 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) { -- cgit v0.10.2 From 75ce07d4a09e31a8d2c38bce95e92d12031e605a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c index 1bd7f9b..9a45871 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 = { -- cgit v0.10.2 From 12ba5416dc7702cc5bb6d8611d4c288302722c6a Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 14:26:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 3cad5b6..5701e58 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 9a45871..1f8d874 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 74eb7b6..e0c66bc 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 -- cgit v0.10.2 From c0f52fbac74e4ab17014c1625a651689a96896bb Mon Sep 17 00:00:00 2001 From: Tony Cho Date: Tue, 20 Oct 2015 17:10:46 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 646e7e9..4c7e1e4 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))); -- cgit v0.10.2 From 38b3001de95ad5a52cf32ebb9c7fe1fd2b16c396 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:51 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5701e58..8fa6b7c 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 e0c66bc..40a44f8 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 { -- cgit v0.10.2 From 0fa683b66524805c25b5fec3eb79d963e2f4485d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:52 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 8fa6b7c..39341a8 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"); -- cgit v0.10.2 From 38afb390497a0c5f72e936ced1d29ef99a1e9131 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:53 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 39341a8..5fcbfac 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); -- cgit v0.10.2 From f3c1366ebbdf54e85810951e8efc9fcf9e430b99 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:54 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 5fcbfac..ebedffa 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; } -- cgit v0.10.2 From ca64ad6e6436ed69aa6b79eaf39ff833986bcea8 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:55 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index ebedffa..93475aa 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(); } -- cgit v0.10.2 From 299382cf437d5115f8c132dd0bd87aa78ee146b7 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:56 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 264fcb9..422d462 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); -- cgit v0.10.2 From 53dc0cfea3cfec470418730df7abfef401f75a4d Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:57 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 93475aa..2c4673c 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 422d462..33a082f 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 40a44f8..8aa3355 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 -- cgit v0.10.2 From c1ec2c12a3f238a7a7a0397bfd164b596316968a Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:58 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 33a082f..1533804 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, -- cgit v0.10.2 From 7646920087bc523b4ef1fa2b00cbbf3a6c0cc1c1 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:13:59 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 1533804..8aea4b5 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) { -- cgit v0.10.2 From 692e2aceffd00f91a846f6e628277222899b198e Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:14:00 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 8aea4b5..eea7f3b 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; -- cgit v0.10.2 From 1b86935eb98e1afae43616ec7316afbbeb313e51 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:14:01 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index eea7f3b..59db1d5 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; } -- cgit v0.10.2 From 684dc1861c9e4e1c52de5f8410d6ce4ac0e970ab Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:14:02 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 59db1d5..5559aa6 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, -- cgit v0.10.2 From 2c1d05d103f99f3c7979ab37f6431bd641c6bb3f Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Tue, 20 Oct 2015 17:14:03 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 2c4673c..bb5bd81 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_; -- cgit v0.10.2 From 0c07f8c7ca0e2119065f4b3f497ad99304bdd8ea Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 23:31:11 +0800 Subject: staging: wilc1000: fix trivial typos s/regsiter/register/ Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index bb5bd81..1f6b165 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 } -- cgit v0.10.2 From 1ff0c8a97d3ec26ed3c7a26a74851a4b0fb515e3 Mon Sep 17 00:00:00 2001 From: Glen Lee Date: Fri, 23 Oct 2015 14:28:17 +0900 Subject: 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 diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 1f6b165..9f899da 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"); -- cgit v0.10.2 From 4b6a8799f341820e7327fb534f130c7f82fb6356 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sat, 17 Oct 2015 11:39:25 +0100 Subject: 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 diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index fcbd59f..c57fb22 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); } -- cgit v0.10.2 From 34b8dae75fd52e5216456edbaee401f62c8024f5 Mon Sep 17 00:00:00 2001 From: Shraddha Barke Date: Wed, 21 Oct 2015 20:19:18 +0530 Subject: 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 diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 678ecf6..e06864f 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) { -- cgit v0.10.2 From 522f005082ff480da44353e97ce44b308f803ff0 Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Fri, 23 Oct 2015 01:07:38 +0800 Subject: 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 diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index cf98228..dc9877e 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. -- cgit v0.10.2 From 1a25d6da550319dd2d483b5043a416fd12b32aca Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Fri, 23 Oct 2015 01:07:39 +0800 Subject: 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 diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index dc9877e..c00749e 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); -- cgit v0.10.2 From 236276625452545c161448c70d67f0388bb13b4a Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Fri, 23 Oct 2015 01:07:40 +0800 Subject: 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 diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index c00749e..7691417 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; -- cgit v0.10.2 From 74f63bd664b68efdb5b81db8c39765430206f394 Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Sat, 24 Oct 2015 00:13:19 +0800 Subject: 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 diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index 7691417..3d1696c 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 6c8e413..fe6c15a 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; }; -- cgit v0.10.2 From 4cd1a64a3b2a1290e6abb560db0dcc8260d1e274 Mon Sep 17 00:00:00 2001 From: Eva Rachel Retuya Date: Fri, 23 Oct 2015 01:09:56 +0800 Subject: 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 diff --git a/drivers/staging/mt29f_spinand/mt29f_spinand.c b/drivers/staging/mt29f_spinand/mt29f_spinand.c index 3d1696c..a8292a1 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; } -- cgit v0.10.2 From ae127bf301d784e533b353571634e38c6ff6eb59 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Sun, 18 Oct 2015 13:31:57 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index 286e96a..80f8ec5 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) -- cgit v0.10.2 From 9ebafb530be42dea90cb698857ac518058346b7b Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Sun, 18 Oct 2015 18:50:30 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/lproc_osc.c b/drivers/staging/lustre/lustre/osc/lproc_osc.c index cdc7f88..c4d44e7 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 */ -- cgit v0.10.2 From 316bd5e085cbd38176a7c1ea100416322bc1633f Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 22:35:31 +0800 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/lustre_sec.h b/drivers/staging/lustre/lustre/include/lustre_sec.h index aaadf09..dd1033b 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 34d1330..39f5261 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); -- cgit v0.10.2 From 7b318b411cc9dcc6309eaeba56ff822979e2b15c Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Mon, 19 Oct 2015 00:17:13 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/interval_tree.c b/drivers/staging/lustre/lustre/ldlm/interval_tree.c index 3d2d85b..39b5717 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); -- cgit v0.10.2 From ce1c42ed6053c229666a47d9e0d2d82c3e71813e Mon Sep 17 00:00:00 2001 From: Sanne Wouda Date: Mon, 19 Oct 2015 13:56:51 +0200 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ptlrpc/client.c b/drivers/staging/lustre/lustre/ptlrpc/client.c index 9bf13d7..083f99c 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); -- cgit v0.10.2 From 4490ff89b136451940cd8a4a21e2be9396664498 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:44 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index abc53f1..bef80e2 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))) -- cgit v0.10.2 From 131637b811fd8e6c7f2743316f127dcb4407ad7c Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:45 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index ad02f2b..02c9910 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 e31cad8..8ee1eb4 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 e874e63..cfb60c8 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 2ee7d31..e069f31 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 104c92a..f4c7019 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 32c9713..58c4664 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; -- cgit v0.10.2 From 2ba262fb6a15994542d77c662d82484990eb18cb Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:46 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index 02c9910..e724a142 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 8ee1eb4..3f348a3 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 cfb60c8..4a8c759 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 e069f31..2ca2200 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 f4c7019..1a150c2 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 58c4664..57189ad 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 */ -- cgit v0.10.2 From b4fb17e7504316d01c1fd1fe3e5f0f4d9640d227 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:47 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h index bf2bde5..ceb3137 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 */ -- cgit v0.10.2 From bbc63f56fb159deb3203327848968311366b83df Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:48 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/osc/osc_quota.c b/drivers/staging/lustre/lustre/osc/osc_quota.c index 3b32928..98b9bcd 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; -- cgit v0.10.2 From ccaabce1171b3194ded7c3961ed33ff09a5a0739 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:49 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index ef2e266..7794bfa 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 57b997d..644a413 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 1600375..b1a347f 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 e09f2cd..6077ffb 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 e724a142..f590509 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 dc33055..7b5ec41 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 dae1f9c..63949948 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 9f7449f..3fe8e63 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 819d386..ca6cddb 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 6f89c19..ed36797 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 3f51b57..a453cb9 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 1a26496..fe126a77 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 1837bbf..571a06e 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 8cbbfb0..5053bfb 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 62b696d..88373e8 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 f2d8852..5c94d0b 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 4338aee..b9227ab 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 a295403..b7d0f26 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 ab0748b..6fd5889 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 ef9cb31..19d1664 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 b552a56..dae13d9 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 91fdec4..f10757e 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 3a4200f..9f995e7 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 70b1b43..fbeaa1d 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 acffab9..5ed88ae 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 083f99c..bda63aa 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; } -- cgit v0.10.2 From ebbc7c8b920e57c4ab3291b382ada1b92ca70822 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:50 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/llite/remote_perm.c b/drivers/staging/lustre/lustre/llite/remote_perm.c index 7b5ec41..4257d74 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; -- cgit v0.10.2 From 50d3036294e9d4c5763e5fbc6557e5b07c2bdac0 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:51 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index 7794bfa..0b8e4d2 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 f590509..11bf2c6 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 63949948..0131368 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 3fe8e63..d16d6cf 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 ca6cddb..e1e599c 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 ed36797..2e8b566 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 fe126a77..d866791 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 571a06e..c7ff817 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 5053bfb..8bc04c8 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 88373e8..1a3e30a 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 5c94d0b..d775e28 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 b9227ab..5621beb 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 b7d0f26..f59c03c 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 6fd5889..6477aeb 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 19d1664..6751382 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 dae13d9..cfb83bc 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 f10757e..69b523c 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 9f995e7..d413496 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 fbeaa1d..194490d 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 5ed88ae..ba57f8d 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 98b9bcd..df8cfb4 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 bda63aa..a9f1bf5 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); } /** -- cgit v0.10.2 From 5c4d8ed8e880f6f9d6183e31a52cf89528d11784 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:52 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c b/drivers/staging/lustre/lustre/ldlm/ldlm_extent.c index 644a413..c787888 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 b1a347f..7f8c700 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 6077ffb..342c465 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 4257d74..c902133 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 a453cb9..34c1346 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); } -- cgit v0.10.2 From 185938e06f9608de836169c8ff5492154272cec0 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 20 Oct 2015 12:39:53 +0300 Subject: 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 diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h index bef80e2..7e06d22 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) -- cgit v0.10.2 From a1dfc93af0462117db3754846d386e7c47144709 Mon Sep 17 00:00:00 2001 From: Gregoire Pichon Date: Wed, 21 Oct 2015 21:52:39 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h index 478e958..d178e43 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 a627be9..082782b 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 efe5e66..bbfef98 100644 --- a/drivers/staging/lustre/lustre/libcfs/libcfs_string.c +++ b/drivers/staging/lustre/lustre/libcfs/libcfs_string.c @@ -321,6 +321,73 @@ cfs_range_expr_parse(struct cfs_lstr *src, unsigned min, unsigned max, } /** + * 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. * * \retval 1 if \a value matches @@ -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 087449f..a54594a 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); -- cgit v0.10.2 From 47ca6ec2673eff06e6befab2c04528c5b1f3c5bb Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:40 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/Makefile b/drivers/staging/lustre/lnet/lnet/Makefile index 52492fb..e276fe2 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/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c new file mode 100644 index 0000000..81ec3a8 --- /dev/null +++ b/drivers/staging/lustre/lnet/lnet/nidstrings.c @@ -0,0 +1,963 @@ +/* + * 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) 2008, 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. + * + * lnet/lnet/nidstrings.c + * + * Author: Phil Schwan + */ + +#define DEBUG_SUBSYSTEM S_LNET + +#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... + */ + +/* CAVEAT EMPTOR! Racey temporary buffer allocation! + * Choose the number of nidstrings to support the MAXIMUM expected number of + * concurrent users. If there are more, the returned string will be volatile. + * NB this number must allow for a process to be descheduled for a timeslice + * between getting its string and using it. + */ + +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); + +char * +libcfs_next_nidstring(void) +{ + char *str; + unsigned long flags; + + spin_lock_irqsave(&libcfs_nidstring_lock, flags); + + str = libcfs_nidstrings[libcfs_nidstring_idx++]; + if (libcfs_nidstring_idx == ARRAY_SIZE(libcfs_nidstrings)) + libcfs_nidstring_idx = 0; + + 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) +{ + *addr = 0; + return 1; +} + +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) +{ + unsigned int a; + unsigned int b; + unsigned int c; + unsigned int d; + int n = nob; /* XscanfX */ + + /* numeric IP? */ + if (sscanf(str, "%u.%u.%u.%u%n", &a, &b, &c, &d, &n) >= 4 && + n == nob && + (a & ~0xff) == 0 && (b & ~0xff) == 0 && + (c & ~0xff) == 0 && (d & ~0xff) == 0) { + *addr = ((a<<24)|(b<<16)|(c<<8)|d); + return 1; + } + + 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); +} + +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) +{ + int n; + + n = nob; + if (sscanf(str, "0x%x%n", addr, &n) >= 1 && n == nob) + return 1; + + n = nob; + if (sscanf(str, "0X%x%n", addr, &n) >= 1 && n == nob) + return 1; + + n = nob; + if (sscanf(str, "%u%n", addr, &n) >= 1 && n == nob) + return 1; + + return 0; +} + +/** + * Nf_parse_addrlist method for networks using numeric addresses. + * + * Examples of such networks are gm and elan. + * + * \retval 0 if \a str parsed to numeric address + * \retval errno otherwise + */ +static int +libcfs_num_parse(char *str, int len, struct list_head *list) +{ + struct cfs_expr_list *el; + int rc; + + rc = cfs_expr_list_parse(str, len, 0, MAX_NUMERIC_VALUE, &el); + if (rc == 0) + list_add_tail(&el->el_link, 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 + * + * \retval 1 on match + * \retval 0 otherwise + */ +static int +libcfs_num_match(__u32 addr, struct list_head *numaddr) +{ + struct cfs_expr_list *el; + + LASSERT(!list_empty(numaddr)); + el = list_entry(numaddr->next, struct cfs_expr_list, el_link); + + 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", + /* .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_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_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_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_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_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_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_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_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_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_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_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_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}, + /* placeholder for net0 alias. It MUST BE THE LAST ENTRY */ + {/* .nf_type */ -1}, +}; + +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) +{ + int i; + + if (lnd >= 0) + for (i = 0; i < libcfs_nnetstrfns; i++) + if (lnd == libcfs_netstrfns[i].nf_type) + return &libcfs_netstrfns[i]; + + return NULL; +} + +static struct netstrfns * +libcfs_namenum2netstrfns(const char *name) +{ + struct netstrfns *nf; + int i; + + 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))) + return nf; + } + return NULL; +} + +static struct netstrfns * +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)) + return &libcfs_netstrfns[i]; + + return NULL; +} + +int +libcfs_isknown_lnd(int type) +{ + return libcfs_lnd2netstrfns(type) != NULL; +} +EXPORT_SYMBOL(libcfs_isknown_lnd); + +char * +libcfs_lnd2modname(int lnd) +{ + struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); + + return (nf == NULL) ? NULL : nf->nf_modname; +} +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) +{ + struct netstrfns *nf = libcfs_name2netstrfns(str); + + if (nf != NULL) + return nf->nf_type; + + return -1; +} +EXPORT_SYMBOL(libcfs_str2lnd); + +char * +libcfs_net2str(__u32 net) +{ + 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); + else { + nf->nf_addr2str(addr, str); + nob = strlen(str); + if (nnum == 0) + snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s", + nf->nf_name); + else + snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s%d", + nf->nf_name, nnum); + } + + return str; +} +EXPORT_SYMBOL(libcfs_nid2str); + +static struct netstrfns * +libcfs_str2net_internal(const char *str, __u32 *net) +{ + struct netstrfns *uninitialized_var(nf); + int nob; + unsigned int netnum; + int i; + + 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))) + break; + } + + if (i == libcfs_nnetstrfns) + return NULL; + + nob = strlen(nf->nf_name); + + if (strlen(str) == (unsigned int)nob) { + netnum = 0; + } else { + if (nf->nf_type == LOLND) /* net number not allowed */ + return NULL; + + str += nob; + i = strlen(str); + if (sscanf(str, "%u%n", &netnum, &i) < 1 || + i != (int)strlen(str)) + return NULL; + } + + *net = LNET_MKNET(nf->nf_type, netnum); + return nf; +} + +__u32 +libcfs_str2net(const char *str) +{ + __u32 net; + + if (libcfs_str2net_internal(str, &net) != NULL) + return net; + + return LNET_NIDNET(LNET_NID_ANY); +} +EXPORT_SYMBOL(libcfs_str2net); + +lnet_nid_t +libcfs_str2nid(const char *str) +{ + const char *sep = strchr(str, '@'); + struct netstrfns *nf; + __u32 net; + __u32 addr; + + if (sep != NULL) { + nf = libcfs_str2net_internal(sep + 1, &net); + if (nf == NULL) + return LNET_NID_ANY; + } else { + sep = str + strlen(str); + net = LNET_MKNET(SOCKLND, 0); + nf = libcfs_lnd2netstrfns(SOCKLND); + LASSERT(nf != NULL); + } + + if (!nf->nf_str2addr(str, (int)(sep - str), &addr)) + return LNET_NID_ANY; + + return LNET_MKNID(net, addr); +} +EXPORT_SYMBOL(libcfs_str2nid); + +char * +libcfs_id2str(lnet_process_id_t id) +{ + char *str = libcfs_next_nidstring(); + + if (id.pid == LNET_PID_ANY) { + snprintf(str, LNET_NIDSTR_SIZE, + "LNET_PID_ANY-%s", libcfs_nid2str(id.nid)); + return str; + } + + snprintf(str, LNET_NIDSTR_SIZE, "%s%u-%s", + ((id.pid & LNET_PID_USERFLAG) != 0) ? "U" : "", + (id.pid & ~LNET_PID_USERFLAG), libcfs_nid2str(id.nid)); + return str; +} +EXPORT_SYMBOL(libcfs_id2str); + +int +libcfs_str2anynid(lnet_nid_t *nidp, const char *str) +{ + if (!strcmp(str, "*")) { + *nidp = LNET_NID_ANY; + return 1; + } + + *nidp = libcfs_str2nid(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); diff --git a/drivers/staging/lustre/lustre/libcfs/Makefile b/drivers/staging/lustre/lustre/libcfs/Makefile index ec98f44..03d3f3d 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 bbfef98..896185f 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) diff --git a/drivers/staging/lustre/lustre/libcfs/nidstrings.c b/drivers/staging/lustre/lustre/libcfs/nidstrings.c deleted file mode 100644 index a54594a..0000000 --- a/drivers/staging/lustre/lustre/libcfs/nidstrings.c +++ /dev/null @@ -1,958 +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) 2008, 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. - * - * libcfs/libcfs/nidstrings.c - * - * Author: Phil Schwan - */ - -#define DEBUG_SUBSYSTEM S_LNET - -#include "../../include/linux/libcfs/libcfs.h" -#include "../../include/linux/lnet/lnet.h" - -/* 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... - */ - -/* CAVEAT EMPTOR! Racey temporary buffer allocation! - * Choose the number of nidstrings to support the MAXIMUM expected number of - * concurrent users. If there are more, the returned string will be volatile. - * NB this number must allow for a process to be descheduled for a timeslice - * between getting its string and using it. - */ - -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); -} - -static char * -libcfs_next_nidstring(void) -{ - char *str; - unsigned long flags; - - spin_lock_irqsave(&libcfs_nidstring_lock, flags); - - str = libcfs_nidstrings[libcfs_nidstring_idx++]; - if (libcfs_nidstring_idx == ARRAY_SIZE(libcfs_nidstrings)) - libcfs_nidstring_idx = 0; - - spin_unlock_irqrestore(&libcfs_nidstring_lock, flags); - return str; -} - -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) -{ - 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) -{ - unsigned int a; - unsigned int b; - unsigned int c; - unsigned int d; - int n = nob; /* XscanfX */ - - /* numeric IP? */ - if (sscanf(str, "%u.%u.%u.%u%n", &a, &b, &c, &d, &n) >= 4 && - n == nob && - (a & ~0xff) == 0 && (b & ~0xff) == 0 && - (c & ~0xff) == 0 && (d & ~0xff) == 0) { - *addr = ((a<<24)|(b<<16)|(c<<8)|d); - return 1; - } - - 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); -} - -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) -{ - int n; - - n = nob; - if (sscanf(str, "0x%x%n", addr, &n) >= 1 && n == nob) - return 1; - - n = nob; - if (sscanf(str, "0X%x%n", addr, &n) >= 1 && n == nob) - return 1; - - n = nob; - if (sscanf(str, "%u%n", addr, &n) >= 1 && n == nob) - return 1; - - return 0; -} - -/** - * Nf_parse_addrlist method for networks using numeric addresses. - * - * Examples of such networks are gm and elan. - * - * \retval 0 if \a str parsed to numeric address - * \retval errno otherwise - */ -static int -libcfs_num_parse(char *str, int len, struct list_head *list) -{ - struct cfs_expr_list *el; - int rc; - - rc = cfs_expr_list_parse(str, len, 0, MAX_NUMERIC_VALUE, &el); - if (rc == 0) - list_add_tail(&el->el_link, 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 - * - * \retval 1 on match - * \retval 0 otherwise - */ -static int -libcfs_num_match(__u32 addr, struct list_head *numaddr) -{ - struct cfs_expr_list *el; - - LASSERT(!list_empty(numaddr)); - el = list_entry(numaddr->next, struct cfs_expr_list, el_link); - - 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", - /* .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_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_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_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_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_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_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_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_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_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_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_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_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}, - /* placeholder for net0 alias. It MUST BE THE LAST ENTRY */ - {/* .nf_type */ -1}, -}; - -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) -{ - int i; - - if (lnd >= 0) - for (i = 0; i < libcfs_nnetstrfns; i++) - if (lnd == libcfs_netstrfns[i].nf_type) - return &libcfs_netstrfns[i]; - - return NULL; -} - -static struct netstrfns * -libcfs_namenum2netstrfns(const char *name) -{ - struct netstrfns *nf; - int i; - - 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))) - return nf; - } - return NULL; -} - -static struct netstrfns * -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)) - return &libcfs_netstrfns[i]; - - return NULL; -} - -int -libcfs_isknown_lnd(int type) -{ - return libcfs_lnd2netstrfns(type) != NULL; -} -EXPORT_SYMBOL(libcfs_isknown_lnd); - -char * -libcfs_lnd2modname(int lnd) -{ - struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); - - return (nf == NULL) ? NULL : nf->nf_modname; -} -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) -{ - struct netstrfns *nf = libcfs_name2netstrfns(str); - - if (nf != NULL) - return nf->nf_type; - - return -1; -} -EXPORT_SYMBOL(libcfs_str2lnd); - -char * -libcfs_net2str(__u32 net) -{ - 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); - else { - nf->nf_addr2str(addr, str); - nob = strlen(str); - if (nnum == 0) - snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s", - nf->nf_name); - else - snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s%d", - nf->nf_name, nnum); - } - - return str; -} -EXPORT_SYMBOL(libcfs_nid2str); - -static struct netstrfns * -libcfs_str2net_internal(const char *str, __u32 *net) -{ - struct netstrfns *uninitialized_var(nf); - int nob; - unsigned int netnum; - int i; - - 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))) - break; - } - - if (i == libcfs_nnetstrfns) - return NULL; - - nob = strlen(nf->nf_name); - - if (strlen(str) == (unsigned int)nob) { - netnum = 0; - } else { - if (nf->nf_type == LOLND) /* net number not allowed */ - return NULL; - - str += nob; - i = strlen(str); - if (sscanf(str, "%u%n", &netnum, &i) < 1 || - i != (int)strlen(str)) - return NULL; - } - - *net = LNET_MKNET(nf->nf_type, netnum); - return nf; -} - -__u32 -libcfs_str2net(const char *str) -{ - __u32 net; - - if (libcfs_str2net_internal(str, &net) != NULL) - return net; - - return LNET_NIDNET(LNET_NID_ANY); -} -EXPORT_SYMBOL(libcfs_str2net); - -lnet_nid_t -libcfs_str2nid(const char *str) -{ - const char *sep = strchr(str, '@'); - struct netstrfns *nf; - __u32 net; - __u32 addr; - - if (sep != NULL) { - nf = libcfs_str2net_internal(sep + 1, &net); - if (nf == NULL) - return LNET_NID_ANY; - } else { - sep = str + strlen(str); - net = LNET_MKNET(SOCKLND, 0); - nf = libcfs_lnd2netstrfns(SOCKLND); - LASSERT(nf != NULL); - } - - if (!nf->nf_str2addr(str, (int)(sep - str), &addr)) - return LNET_NID_ANY; - - return LNET_MKNID(net, addr); -} -EXPORT_SYMBOL(libcfs_str2nid); - -char * -libcfs_id2str(lnet_process_id_t id) -{ - char *str = libcfs_next_nidstring(); - - if (id.pid == LNET_PID_ANY) { - snprintf(str, LNET_NIDSTR_SIZE, - "LNET_PID_ANY-%s", libcfs_nid2str(id.nid)); - return str; - } - - snprintf(str, LNET_NIDSTR_SIZE, "%s%u-%s", - ((id.pid & LNET_PID_USERFLAG) != 0) ? "U" : "", - (id.pid & ~LNET_PID_USERFLAG), libcfs_nid2str(id.nid)); - return str; -} -EXPORT_SYMBOL(libcfs_id2str); - -int -libcfs_str2anynid(lnet_nid_t *nidp, const char *str) -{ - if (!strcmp(str, "*")) { - *nidp = LNET_NID_ANY; - return 1; - } - - *nidp = libcfs_str2nid(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); -- cgit v0.10.2 From 43049a83b57118753abcd9fa2141a0ce64533680 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:41 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/libcfs.h index 385ced1..4d74e8a 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 81ec3a8..fdbdf06 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 0d9b223..50e8fd2 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); -- cgit v0.10.2 From a620ec637274706370db1b2178d409304a4f66eb Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:42 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h index d178e43..908efaa 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 b09a438..1b3bc83 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 896185f..5166961 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); -- cgit v0.10.2 From 00e27ff1e2de33f7b278b50999e2d587f019b0e8 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:43 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h index 082782b..b32f8cd 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 fdbdf06..6a778b9 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", -- cgit v0.10.2 From c1af01da79ef67868bc95a113a8613cf26d9c931 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:44 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_string.h index 908efaa..d8d2e7d 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 b32f8cd..1536366 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 6a778b9..a02c1f6 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 5166961..d40be53 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); -- cgit v0.10.2 From e8834329bb954fd054db70f03fb4399cea87b462 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:45 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index a02c1f6..1874dfe 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,149 +82,536 @@ libcfs_next_nidstring(void) } EXPORT_SYMBOL(libcfs_next_nidstring); -static int libcfs_lo_str2addr(const char *str, int nob, __u32 *addr) -{ - *addr = 0; - return 1; -} +/** + * Nid range list syntax. + * \verbatim + * + * :== [ ' ' ] + * :== '@' + * :== '*' | + * | + * + * :== ... + * + * :== | + * + * :== '[' [ ',' ] ']' + * :== | + * '-' | + * '-' '/' + * :== | + * :== "lo" | "tcp" | "o2ib" | "cib" | "openib" | "iib" | + * "vib" | "ra" | "elan" | "mx" | "ptl" + * \endverbatim + */ -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); -} +/** + * 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; +}; -static int libcfs_ip_str2addr(const char *str, int nob, __u32 *addr) +/** + * 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) { - unsigned int a; - unsigned int b; - unsigned int c; - unsigned int d; - int n = nob; /* XscanfX */ + struct addrrange *addrrange; - /* numeric IP? */ - if (sscanf(str, "%u.%u.%u.%u%n", &a, &b, &c, &d, &n) >= 4 && - n == nob && - (a & ~0xff) == 0 && (b & ~0xff) == 0 && - (c & ~0xff) == 0 && (d & ~0xff) == 0) { - *addr = ((a<<24)|(b<<16)|(c<<8)|d); - return 1; + if (src->ls_len == 1 && src->ls_str[0] == '*') { + nidrange->nr_all = 1; + return 0; } - 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); } -int -cfs_ip_addr_parse(char *str, int len, struct list_head *list) +/** + * 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 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; - } + struct netstrfns *nf; + struct nidrange *nr; + int endlen; + unsigned netnum; - rc = cfs_expr_list_parse(res.ls_str, res.ls_len, 0, 255, &el); - if (rc != 0) - goto out; + if (src->ls_len >= LNET_NIDSTR_SIZE) + return NULL; - list_add_tail(&el->el_link, list); - i++; + 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; } - if (i == 4) - return 0; - - rc = -EINVAL; -out: - cfs_expr_list_free_list(list); - - return rc; -} + list_for_each_entry(nr, nidlist, nr_link) { + if (nr->nr_netstrfns != nf) + continue; + if (nr->nr_netnum != netnum) + continue; + return nr; + } -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; + 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; - 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; + return nr; } /** - * Matches address (\a addr) against address set encoded in \a list. + * Parses \ token of the syntax. * - * \retval 1 if \a addr matches + * \retval 1 if \a src parses to \ '@' \ * \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); -} - -static void libcfs_hexnum_addr2str(__u32 addr, char *str) +static int +parse_nidrange(struct cfs_lstr *src, struct list_head *nidlist) { - snprintf(str, LNET_NIDSTR_SIZE, "0x%x", addr); -} + struct cfs_lstr addrrange; + struct cfs_lstr net; + struct cfs_lstr tmp; + struct nidrange *nr; -static int libcfs_num_str2addr(const char *str, int nob, __u32 *addr) -{ - int n; + tmp = *src; + if (cfs_gettok(src, '@', &addrrange) == 0) + goto failed; - n = nob; - if (sscanf(str, "0x%x%n", addr, &n) >= 1 && n == nob) - return 1; + if (cfs_gettok(src, '@', &net) == 0 || src->ls_str != NULL) + goto failed; - n = nob; - if (sscanf(str, "0X%x%n", addr, &n) >= 1 && n == nob) - return 1; + nr = add_nidrange(&net, nidlist); + if (nr == NULL) + goto failed; - n = nob; - if (sscanf(str, "%u%n", addr, &n) >= 1 && n == nob) - return 1; + 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; } /** - * Nf_parse_addrlist method for networks using numeric addresses. + * Frees addrrange structures of \a list. * - * Examples of such networks are gm and elan. + * For each struct addrrange structure found on \a list it frees + * cfs_expr_list list attached to it and frees the addrrange itself. * - * \retval 0 if \a str parsed to numeric address + * \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) +{ + snprintf(str, LNET_NIDSTR_SIZE, "%u.%u.%u.%u", + (addr >> 24) & 0xff, (addr >> 16) & 0xff, + (addr >> 8) & 0xff, addr & 0xff); +} + +/* 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; + unsigned int c; + unsigned int d; + int n = nob; /* XscanfX */ + + /* numeric IP? */ + if (sscanf(str, "%u.%u.%u.%u%n", &a, &b, &c, &d, &n) >= 4 && + n == nob && + (a & ~0xff) == 0 && (b & ~0xff) == 0 && + (c & ~0xff) == 0 && (d & ~0xff) == 0) { + *addr = ((a<<24)|(b<<16)|(c<<8)|d); + return 1; + } + + 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) +{ + 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) +{ + 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; +} + +/** + * 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); +} + +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) +{ + int n; + + n = nob; + if (sscanf(str, "0x%x%n", addr, &n) >= 1 && n == nob) + return 1; + + n = nob; + if (sscanf(str, "0X%x%n", addr, &n) >= 1 && n == nob) + return 1; + + n = nob; + if (sscanf(str, "%u%n", addr, &n) >= 1 && n == nob) + return 1; + + return 0; +} + +/** + * Nf_parse_addrlist method for networks using numeric addresses. + * + * Examples of such networks are gm and elan. + * + * \retval 0 if \a str parsed to numeric address * \retval errno otherwise */ static int @@ -373,632 +762,251 @@ static struct netstrfns libcfs_netstrfns[] = { /* .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}, -}; - -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) -{ - int i; - - if (lnd >= 0) - for (i = 0; i < libcfs_nnetstrfns; i++) - if (lnd == libcfs_netstrfns[i].nf_type) - return &libcfs_netstrfns[i]; - - return NULL; -} - -static struct netstrfns * -libcfs_namenum2netstrfns(const char *name) -{ - struct netstrfns *nf; - int i; - - 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))) - return nf; - } - return NULL; -} - -static struct netstrfns * -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)) - return &libcfs_netstrfns[i]; - - return NULL; -} - -int -libcfs_isknown_lnd(int type) -{ - return libcfs_lnd2netstrfns(type) != NULL; -} -EXPORT_SYMBOL(libcfs_isknown_lnd); - -char * -libcfs_lnd2modname(int lnd) -{ - struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); - - return (nf == NULL) ? NULL : nf->nf_modname; -} -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) -{ - struct netstrfns *nf = libcfs_name2netstrfns(str); - - if (nf != NULL) - return nf->nf_type; - - return -1; -} -EXPORT_SYMBOL(libcfs_str2lnd); - -char * -libcfs_net2str(__u32 net) -{ - 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); - else { - nf->nf_addr2str(addr, str); - nob = strlen(str); - if (nnum == 0) - snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s", - nf->nf_name); - else - snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s%d", - nf->nf_name, nnum); - } - - return str; -} -EXPORT_SYMBOL(libcfs_nid2str); - -static struct netstrfns * -libcfs_str2net_internal(const char *str, __u32 *net) -{ - struct netstrfns *uninitialized_var(nf); - int nob; - unsigned int netnum; - int i; - - 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))) - break; - } - - if (i == libcfs_nnetstrfns) - return NULL; - - nob = strlen(nf->nf_name); - - if (strlen(str) == (unsigned int)nob) { - netnum = 0; - } else { - if (nf->nf_type == LOLND) /* net number not allowed */ - return NULL; - - str += nob; - i = strlen(str); - if (sscanf(str, "%u%n", &netnum, &i) < 1 || - i != (int)strlen(str)) - return NULL; - } - - *net = LNET_MKNET(nf->nf_type, netnum); - return nf; -} - -__u32 -libcfs_str2net(const char *str) -{ - __u32 net; - - if (libcfs_str2net_internal(str, &net) != NULL) - return net; - - return LNET_NIDNET(LNET_NID_ANY); -} -EXPORT_SYMBOL(libcfs_str2net); - -lnet_nid_t -libcfs_str2nid(const char *str) -{ - const char *sep = strchr(str, '@'); - struct netstrfns *nf; - __u32 net; - __u32 addr; - - if (sep != NULL) { - nf = libcfs_str2net_internal(sep + 1, &net); - if (nf == NULL) - return LNET_NID_ANY; - } else { - sep = str + strlen(str); - net = LNET_MKNET(SOCKLND, 0); - nf = libcfs_lnd2netstrfns(SOCKLND); - LASSERT(nf != NULL); - } - - if (!nf->nf_str2addr(str, (int)(sep - str), &addr)) - return LNET_NID_ANY; - - return LNET_MKNID(net, addr); -} -EXPORT_SYMBOL(libcfs_str2nid); - -char * -libcfs_id2str(lnet_process_id_t id) -{ - char *str = libcfs_next_nidstring(); - - if (id.pid == LNET_PID_ANY) { - snprintf(str, LNET_NIDSTR_SIZE, - "LNET_PID_ANY-%s", libcfs_nid2str(id.nid)); - return str; - } + /* placeholder for net0 alias. It MUST BE THE LAST ENTRY */ + {/* .nf_type */ -1}, +}; - snprintf(str, LNET_NIDSTR_SIZE, "%s%u-%s", - ((id.pid & LNET_PID_USERFLAG) != 0) ? "U" : "", - (id.pid & ~LNET_PID_USERFLAG), libcfs_nid2str(id.nid)); - return str; -} -EXPORT_SYMBOL(libcfs_id2str); +static const int libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns); -int -libcfs_str2anynid(lnet_nid_t *nidp, const char *str) +static struct netstrfns * +libcfs_lnd2netstrfns(int lnd) { - if (!strcmp(str, "*")) { - *nidp = LNET_NID_ANY; - return 1; - } - - *nidp = libcfs_str2nid(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 - */ + int i; -/** - * 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; -}; + if (lnd >= 0) + for (i = 0; i < libcfs_nnetstrfns; i++) + if (lnd == libcfs_netstrfns[i].nf_type) + return &libcfs_netstrfns[i]; -/** - * 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; -}; + return NULL; +} -/** - * 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) +static struct netstrfns * +libcfs_namenum2netstrfns(const char *name) { - struct addrrange *addrrange; + struct netstrfns *nf; + int i; - if (src->ls_len == 1 && src->ls_str[0] == '*') { - nidrange->nr_all = 1; - return 0; + 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))) + return nf; } - - 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); + return NULL; } -/** - * 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) +static struct netstrfns * +libcfs_name2netstrfns(const char *name) { - struct netstrfns *nf; - struct nidrange *nr; - int endlen; - unsigned netnum; + int i; - if (src->ls_len >= LNET_NIDSTR_SIZE) - return NULL; + for (i = 0; i < libcfs_nnetstrfns; i++) + if (libcfs_netstrfns[i].nf_type >= 0 && + !strcmp(libcfs_netstrfns[i].nf_name, name)) + return &libcfs_netstrfns[i]; - 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; - } + return NULL; +} - list_for_each_entry(nr, nidlist, nr_link) { - if (nr->nr_netstrfns != nf) - continue; - if (nr->nr_netnum != netnum) - continue; - return nr; - } +int +libcfs_isknown_lnd(int type) +{ + return libcfs_lnd2netstrfns(type) != NULL; +} +EXPORT_SYMBOL(libcfs_isknown_lnd); - 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; +char * +libcfs_lnd2modname(int lnd) +{ + struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); - return nr; + return (nf == NULL) ? NULL : nf->nf_modname; } +EXPORT_SYMBOL(libcfs_lnd2modname); -/** - * 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) +char * +libcfs_lnd2str(int lnd) { - struct cfs_lstr addrrange; - struct cfs_lstr net; - struct cfs_lstr tmp; - struct nidrange *nr; + char *str; + struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); - tmp = *src; - if (cfs_gettok(src, '@', &addrrange) == 0) - goto failed; + if (nf != NULL) + return nf->nf_name; - if (cfs_gettok(src, '@', &net) == 0 || src->ls_str != NULL) - goto failed; + str = libcfs_next_nidstring(); + snprintf(str, LNET_NIDSTR_SIZE, "?%d?", lnd); + return str; +} +EXPORT_SYMBOL(libcfs_lnd2str); - nr = add_nidrange(&net, nidlist); - if (nr == NULL) - goto failed; +int +libcfs_str2lnd(const char *str) +{ + struct netstrfns *nf = libcfs_name2netstrfns(str); - if (parse_addrange(&addrrange, nr) != 0) - goto failed; + if (nf != NULL) + return nf->nf_type; - return 1; - failed: - CWARN("can't parse nidrange: \"%.*s\"\n", tmp.ls_len, tmp.ls_str); - return 0; + return -1; } +EXPORT_SYMBOL(libcfs_str2lnd); -/** - * 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) +char * +libcfs_net2str(__u32 net) { - while (!list_empty(list)) { - struct addrrange *ar; + int lnd = LNET_NETTYP(net); + int num = LNET_NETNUM(net); + struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); + char *str = libcfs_next_nidstring(); - ar = list_entry(list->next, struct addrrange, ar_link); + 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); - cfs_expr_list_free_list(&ar->ar_numaddr_ranges); - list_del(&ar->ar_link); - LIBCFS_FREE(ar, sizeof(struct addrrange)); - } + return str; } +EXPORT_SYMBOL(libcfs_net2str); -/** - * 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) +char * +libcfs_nid2str(lnet_nid_t nid) { - struct list_head *pos, *next; - struct nidrange *nr; + __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; - 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)); + 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); + else { + nf->nf_addr2str(addr, str); + nob = strlen(str); + if (nnum == 0) + snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s", + nf->nf_name); + else + snprintf(str + nob, LNET_NIDSTR_SIZE - nob, "@%s%d", + nf->nf_name, nnum); } + + return str; } -EXPORT_SYMBOL(cfs_free_nidlist); +EXPORT_SYMBOL(libcfs_nid2str); -/** - * 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) +static struct netstrfns * +libcfs_str2net_internal(const char *str, __u32 *net) { - struct cfs_lstr src; - struct cfs_lstr res; - int rc; + struct netstrfns *uninitialized_var(nf); + int nob; + unsigned int netnum; + int i; - 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; - } + 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))) + break; } - 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; + if (i == libcfs_nnetstrfns) + return NULL; - 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; + nob = strlen(nf->nf_name); + + if (strlen(str) == (unsigned int)nob) { + netnum = 0; + } else { + if (nf->nf_type == LOLND) /* net number not allowed */ + return NULL; + + str += nob; + i = strlen(str); + if (sscanf(str, "%u%n", &netnum, &i) < 1 || + i != (int)strlen(str)) + return NULL; } - return 0; + + *net = LNET_MKNET(nf->nf_type, netnum); + return nf; } -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) +__u32 +libcfs_str2net(const char *str) { - struct netstrfns *nf = nr->nr_netstrfns; + __u32 net; - 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); + if (libcfs_str2net_internal(str, &net) != NULL) + return net; + + return LNET_NIDNET(LNET_NID_ANY); } +EXPORT_SYMBOL(libcfs_str2net); -/** - * 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) +lnet_nid_t +libcfs_str2nid(const char *str) { - int i = 0; - struct addrrange *ar; - struct netstrfns *nf = nr->nr_netstrfns; + const char *sep = strchr(str, '@'); + struct netstrfns *nf; + __u32 net; + __u32 addr; - 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); + if (sep != NULL) { + nf = libcfs_str2net_internal(sep + 1, &net); + if (nf == NULL) + return LNET_NID_ANY; + } else { + sep = str + strlen(str); + net = LNET_MKNET(SOCKLND, 0); + nf = libcfs_lnd2netstrfns(SOCKLND); + LASSERT(nf != NULL); } - return i; + + if (!nf->nf_str2addr(str, (int)(sep - str), &addr)) + return LNET_NID_ANY; + + return LNET_MKNID(net, addr); } +EXPORT_SYMBOL(libcfs_str2nid); -/** - * 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) +char * +libcfs_id2str(lnet_process_id_t id) { - int i = 0; - struct nidrange *nr; + char *str = libcfs_next_nidstring(); - if (count <= 0) - return 0; + if (id.pid == LNET_PID_ANY) { + snprintf(str, LNET_NIDSTR_SIZE, + "LNET_PID_ANY-%s", libcfs_nid2str(id.nid)); + return str; + } - list_for_each_entry(nr, nidlist, nr_link) { - if (i != 0) - i += scnprintf(buffer + i, count - i, " "); + snprintf(str, LNET_NIDSTR_SIZE, "%s%u-%s", + ((id.pid & LNET_PID_USERFLAG) != 0) ? "U" : "", + (id.pid & ~LNET_PID_USERFLAG), libcfs_nid2str(id.nid)); + return str; +} +EXPORT_SYMBOL(libcfs_id2str); - 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); - } +int +libcfs_str2anynid(lnet_nid_t *nidp, const char *str) +{ + if (!strcmp(str, "*")) { + *nidp = LNET_NID_ANY; + return 1; } - return i; + + *nidp = libcfs_str2nid(str); + return *nidp != LNET_NID_ANY; } -EXPORT_SYMBOL(cfs_print_nidlist); +EXPORT_SYMBOL(libcfs_str2anynid); -- cgit v0.10.2 From 335ea564509045796dc07faa7333162a0b03f214 Mon Sep 17 00:00:00 2001 From: Joshua Walgenbach Date: Wed, 21 Oct 2015 21:52:46 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h index 1536366..4e7c9a5 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 1874dfe..4402b80 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}, }; -- cgit v0.10.2 From 80feb1ef349ed03f121c086c02579ee9a08bb343 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin Date: Wed, 21 Oct 2015 21:52:47 -0400 Subject: 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 diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h index 4e7c9a5..46ad914 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 53ad5ef..3954126 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 4402b80..b7a65da 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) +{ + struct netstrfns *nf; + + nf = libcfs_lnd2netstrfns(lnd); + if (nf == NULL) + 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) { - int lnd = LNET_NETTYP(net); - int num = LNET_NETNUM(net); - struct netstrfns *nf = libcfs_lnd2netstrfns(lnd); - char *str = libcfs_next_nidstring(); + __u32 nnum = LNET_NETNUM(net); + __u32 lnd = LNET_NETTYP(net); + struct netstrfns *nf; + nf = libcfs_lnd2netstrfns(lnd); 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); + snprintf(buf, buf_size, "<%u:%u>", lnd, nnum); + else if (nnum == 0) + snprintf(buf, buf_size, "%s", nf->nf_name); else - snprintf(str, LNET_NIDSTR_SIZE, "%s%d", nf->nf_name, num); + snprintf(buf, buf_size, "%s%u", nf->nf_name, nnum); - return str; + return buf; } -EXPORT_SYMBOL(libcfs_net2str); +EXPORT_SYMBOL(libcfs_net2str_r); char * -libcfs_nid2str(lnet_nid_t nid) +libcfs_nid2str_r(lnet_nid_t nid, char *buf, size_t buf_size) { - __u32 addr = LNET_NIDADDR(nid); - __u32 net = LNET_NIDNET(nid); - int lnd = LNET_NETTYP(net); - int nnum = LNET_NETNUM(net); + __u32 addr = LNET_NIDADDR(nid); + __u32 net = LNET_NIDNET(nid); + __u32 nnum = LNET_NETNUM(net); + __u32 lnd = LNET_NETTYP(net); struct netstrfns *nf; - char *str; - int nob; - if (nid == LNET_NID_ANY) - return ""; + if (nid == LNET_NID_ANY) { + strncpy(buf, "", buf_size); + buf[buf_size - 1] = '\0'; + return buf; + } 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, "%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 4b56770..fe49f1b 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 3228fee..047ced5 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 38e5e13..64753b3 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 149c838..48003d5 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 57189ad..367f83a 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 415817c..bc5437e 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, -- cgit v0.10.2 From 1a1e76c07dacf774cd047aad62e8daa315433967 Mon Sep 17 00:00:00 2001 From: Frederic Saunier Date: Wed, 21 Oct 2015 21:52:48 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index b7a65da..a5cd0ae 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; } -- cgit v0.10.2 From a77ddf7cc0e5d6eee2434ed7035abbb5019f99bf Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 21 Oct 2015 21:52:49 -0400 Subject: 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 diff --git a/drivers/staging/lustre/lnet/lnet/nidstrings.c b/drivers/staging/lustre/lnet/lnet/nidstrings.c index a5cd0ae..80f585a 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); -- cgit v0.10.2 From 017384481135574b0efc61d0f00a3167a93f5726 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Wed, 21 Oct 2015 18:40:40 +0100 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c index c2cc4e4..7c730e3 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; } -- cgit v0.10.2 From 7fc8f5a82b9082fdd738895c103b9f25ea530846 Mon Sep 17 00:00:00 2001 From: Nilesh Kokane Date: Thu, 22 Oct 2015 22:42:43 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c index c3be0b5..1d74d92 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; -- cgit v0.10.2 From daa4d3ea1e353c0f6e7b2bd657d07e0c3f4cd756 Mon Sep 17 00:00:00 2001 From: Nilesh Kokane Date: Fri, 23 Oct 2015 11:02:20 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index 1967c21..86e172b 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 -- cgit v0.10.2 From df5ddcc97e694bfa5dafa838c26e5b974c706929 Mon Sep 17 00:00:00 2001 From: Nilesh Kokane Date: Fri, 23 Oct 2015 11:24:04 +0530 Subject: 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 diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c index 86e172b..ecfe733 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)); -- cgit v0.10.2 From fb1dc957054c6a9823b20b2672f5193e47bc5f6d Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 21 Oct 2015 20:00:51 +0300 Subject: 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 diff --git a/drivers/staging/rdma/amso1100/c2_provider.c b/drivers/staging/rdma/amso1100/c2_provider.c index 2563215..c707e45 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 40f7f05..ea3f21a 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; -- cgit v0.10.2 From a4785ef8102390fa7e0e8865efd44036b7337e22 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:48 +0300 Subject: 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 diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index 8a55ec1..5efc588 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 07de99c..e82f317 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 9ceba14..1c15b9c 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; -- cgit v0.10.2 From b6f6fd8a871cebc8085719c08ea489d1d98bb21e Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:49 +0300 Subject: 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 diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index 5efc588..28107dd 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 e82f317..0408549 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 655f768..ce5202e 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 1c15b9c..f87dd61 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 59a1830..749dd60 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); -- cgit v0.10.2 From ba7f55b705b94e26293971b9fbda183238cdc30c Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:50 +0300 Subject: 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 diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c index 28107dd..79de678 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 0408549..47148cf 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 ce5202e..c1412a8 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 f87dd61..d046769 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 749dd60..92254fd 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; -- cgit v0.10.2 From 7b7df122f894f5b731e0f06777302ec248a7d9f1 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:51 +0300 Subject: 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 diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 47148cf..79af94f 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 c1412a8..e2c0f22 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 d046769..92ea1a1 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; -- cgit v0.10.2 From a487db8b67044b98fddf5433d4a5c96a2ce06d3a Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Sun, 18 Oct 2015 15:51:52 +0300 Subject: 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 diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c index 79af94f..445f836 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) { -- cgit v0.10.2 From 347cf6d109637b337dd3dd3ec777e9fd060d8644 Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 18 Oct 2015 19:25:10 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_help.h b/drivers/staging/sm750fb/ddk750_help.h index 9b2d2d2..5be814e 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 */ -- cgit v0.10.2 From f741554e25e5c94bca1d5157608baab80586f81c Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Sun, 18 Oct 2015 21:27:57 +0530 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_power.c b/drivers/staging/sm750fb/ddk750_power.c index 198ff81..667e4f8 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); -- cgit v0.10.2 From cfac7d6a70b41982c770838edd5c2a3b4dbe55e6 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 22 Oct 2015 09:38:39 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index bab3d91..069d6e5 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 2399b17..fa35926 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 92e194d..8a5a897 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); -- cgit v0.10.2 From a61dc139ceb5e9f0b2033fd1075ec68b53b14283 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 22 Oct 2015 09:38:40 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 069d6e5..7084a4a 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; } -- cgit v0.10.2 From 7a81b9477a0a247148096e8184a2657fdbd04a82 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Thu, 22 Oct 2015 09:38:41 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/ddk750_chip.c b/drivers/staging/sm750fb/ddk750_chip.c index 7084a4a..0331d34 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) { -- cgit v0.10.2 From b108da75862b231ada8f26002138161214ca62d1 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:07 +0300 Subject: staging: sm750fb: remove defintion of offsetof There is no need to redefine offsetof Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h index 52fe945..e74a3e1 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; -- cgit v0.10.2 From 4edd3f3af2f4b9296bccbe8dd7de18b5de683801 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:08 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index 8a5a897..8343d2b 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; -- cgit v0.10.2 From 9b2941e27e364c2c3ef7731dab9c7c8564acb690 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:09 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 805a403..7eca4cb 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 e74a3e1..c188061 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 { -- cgit v0.10.2 From c202beee7f4b2b4f363e21fea714c8afcb08b12e Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:10 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 7eca4cb..24c4f39 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 c188061..6f5e09d 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; }; -- cgit v0.10.2 From 9821ed04795f019bfa14573847c743c6b89d96c4 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Fri, 23 Oct 2015 17:55:11 +0300 Subject: 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 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 24c4f39..cd20629 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 6f5e09d..bf905aa 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); }; -- cgit v0.10.2 From 335c8ea16069aefd929acf6b287b3a23b39db978 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 21:57:08 +0800 Subject: 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 diff --git a/drivers/staging/rdma/ipath/ipath_kernel.h b/drivers/staging/rdma/ipath/ipath_kernel.h index f0f9471..66c934a 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 */ -- cgit v0.10.2 From f1c9e0ca0cfda2e6e93333ff86e086f0b925318e Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 21:57:09 +0800 Subject: 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 diff --git a/drivers/staging/rdma/ipath/ipath_driver.c b/drivers/staging/rdma/ipath/ipath_driver.c index 46d9898..dfcfaa5 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 e568971..0403fa2 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 b2c6766..280cd2d 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 1f95bba..2296832 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 e8a2a91..33fcfe2 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 1da1252..d29b4da 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 e82b3ee..8c12e3c 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 6216ea9..72d476f 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" -- cgit v0.10.2 From 9ac23b344e72f21cc832c5f02744ab86e9210d12 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:39 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index 5f0ea9b..f268d7d 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 4d33763..9c64580 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 345a824..0d75258 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 81dd8de..6440d0a 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 2cce1e5..8fe06ac 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 0bf38c4..a56df13 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 0efc391..276ca24 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 -- cgit v0.10.2 From 16dc374338b0124c937c0dda4588b06a4c9bd708 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:40 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 6440d0a..4c1104d 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 58a8514..c912a6e 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; -- cgit v0.10.2 From a64557bae30d5d9f8c3e32e22c5e4cbfdf1ca083 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:41 +0200 Subject: staging: most: removed redundant code This patch removes redundant code. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index 0d75258..228971a 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 4c1104d..53b34a7 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) -- cgit v0.10.2 From c6c3f3458f456d53da0f2ed587a0227b8b950eda Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:42 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c index 53b34a7..096eb8b 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); -- cgit v0.10.2 From edaa1e33e21ab38c683be0037605e3408f2a5a02 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:43 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 49411b7..be81a6a 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 096eb8b..c915c44 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 c912a6e..ba4fbb1 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 8fe06ac..711fdbc 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 276ca24..8768475 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; -- cgit v0.10.2 From 9deba73de56ce5782ca46460b1ca5a5de82439c1 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:44 +0200 Subject: 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 diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index ba4fbb1..a08af5e 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 711fdbc..79448a5 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 a56df13..c8a74bc 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 8768475..ca0b3b2 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; } -- cgit v0.10.2 From 9cbe5aa65d5d4e90c8bb661d021b50131eb963c6 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:45 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index be81a6a..7bf4f61 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 c8a74bc..747d22e 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 ca0b3b2..d5e0572 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) /** -- cgit v0.10.2 From df8da2e3e400b2f4601bdba4ecd424c212fe7d5c Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:47 +0200 Subject: staging: most: remove unnecessary parentheses This patch simply removes unnecessary parentheses. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index a08af5e..558a5c8 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); -- cgit v0.10.2 From 623d800252111942d357d8d8592d578d3783ff67 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:48 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 7bf4f61..4dd1434 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 d5e0572..3e1cc5a 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; -- cgit v0.10.2 From 2aa9b96ff6b3bbeedf8e0a042e6f24f71775c58a Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:49 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index f268d7d..3c7beb0 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 79448a5..ba0263b 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 3e1cc5a..19852ca 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; -- cgit v0.10.2 From 181a2aa185c092b840a2bc089e83629619f5b1ab Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:50 +0200 Subject: 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 diff --git a/drivers/staging/most/aim-v4l2/video.c b/drivers/staging/most/aim-v4l2/video.c index 228971a..13abf7c 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; -- cgit v0.10.2 From f96d48aaa915178995b4bf246793168376fd0576 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Wed, 21 Oct 2015 17:50:51 +0200 Subject: staging: most: remove comparison to NULL Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index 747d22e..b5fb1a7 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; -- cgit v0.10.2 From bff1d83d78db66d3307f856344fd2202b8b77ce3 Mon Sep 17 00:00:00 2001 From: Muhammad Falak R Wani Date: Sat, 24 Oct 2015 07:45:44 +0530 Subject: 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 diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c index b5fb1a7..41690f8 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; -- cgit v0.10.2 From 6fd9a2a19c241ce22f05cdc82b8eefb7f8a3e92f Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 22:35:32 +0800 Subject: 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 diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c index 5a6251a4..89f5b55 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) -- cgit v0.10.2 From d8acac9421fedb008f2ef04763c3912d138ac936 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 20:21:22 +0530 Subject: 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 diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index 2b233af..0b8bbd7 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); -- cgit v0.10.2 From 3fc27711dea034db381b6a5c532f384721e9ca73 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 22:16:19 +0530 Subject: 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 diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index 0b8bbd7..7982f07 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, -- cgit v0.10.2 From 0d46afbce659f8ca4feef61451c719275698e7fc Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 22:17:24 +0530 Subject: 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 diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index 7982f07..af91523 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) -- cgit v0.10.2 From 076e235856d1fbb026fd13dbf9139efb86a7b496 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 22:18:26 +0530 Subject: 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 diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index af91523..be30c13 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; } -- cgit v0.10.2 From c3a56f750d430115f07d703858b8f3af31e17a87 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Thu, 22 Oct 2015 22:20:15 +0530 Subject: 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 diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index be30c13..879a7e6 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) -- cgit v0.10.2 From 1e6e63283691a2a9048a35d9c6c59cf0abd342e4 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sun, 18 Oct 2015 22:14:48 -0500 Subject: 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 diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c index 4c63baa..d1ff7c9 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)}, -- cgit v0.10.2 From c1ccdddc2e60e73011d0a5e2f06913be84b8bafb Mon Sep 17 00:00:00 2001 From: Ksenija Stanojevic Date: Mon, 19 Oct 2015 18:49:12 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 2e3c25c..8f989a9 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); -- cgit v0.10.2 From abfe2196e03d7026776a0bfb94f93ae1227b23d0 Mon Sep 17 00:00:00 2001 From: Geliang Tang Date: Sun, 18 Oct 2015 22:35:30 +0800 Subject: 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 diff --git a/drivers/staging/comedi/drivers/ni_tio.c b/drivers/staging/comedi/drivers/ni_tio.c index c20c51b..b74e44e 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; } } -- cgit v0.10.2 From 7d783469871f48c765c5684dc99fcc409b944754 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:43:56 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 4aa27426..403405b 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; } -- cgit v0.10.2 From 46c95d970fc2a2c9e7abc0560bbba7155f615982 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:43:57 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 403405b..c334e4b 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; } -- cgit v0.10.2 From 042bac563b28c8067fa958470dd5c1dc31d42cb2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:43:58 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index c334e4b..b763f25 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); -- cgit v0.10.2 From f92738ca2fa4f8ca30424ac2b770e2c8a8a7b364 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:43:59 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index b763f25..1e43c1a 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) { -- cgit v0.10.2 From ef7e20934ec906e7986566d45ea8ae652a64ba09 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:44:00 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 1e43c1a..9e82fd2 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; } -- cgit v0.10.2 From d52688055c9cdc81475882009e437248f073edf9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:44:01 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 9e82fd2..58ba553 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; } -- cgit v0.10.2 From 64289a650656d7307832376fdfaf1e7131236a4b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 09:44:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 58ba553..3cd008a 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"); -- cgit v0.10.2 From 9aed06693df75c0e81ae2a25c3ed51dbb4d4ac61 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 13:16:33 +0300 Subject: staging: comedi: Fix return flow Simplify function return flow. Issue found with coccinelle. Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c index 611b0a3..57ab668 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) -- cgit v0.10.2 From 323538b825d4b1eb6c8a9022998822898ab52dff Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:12:56 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index e5e0e1c..a7c9744 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; -- cgit v0.10.2 From 7c999314efef94be997b762bc22f0be55e139df8 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:12:57 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index a7c9744..dcfe5cc 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"); -- cgit v0.10.2 From 0f3cb85ac85a6819248544113b495af27921e454 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:12:58 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index dcfe5cc..08cd046 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; - } - 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; - } + 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; } + } - 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); - - /* check and setup channel list */ - if (!check_channel_list(dev, s, cmd->chanlist_len, - cmd->chanlist, devpriv->ai_add_front, - devpriv->ai_add_back)) + 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); + + 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; } -- cgit v0.10.2 From 766957f6f1841e5d435798741852f2697ad0b2ad Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:12:59 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 08cd046..493bdef 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), -- cgit v0.10.2 From dd2907c3e7a759e1ea2ea5587704515d907dd937 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:00 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 493bdef..87c2ddd 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; -- cgit v0.10.2 From ad1a9646b72ab58649b0e75bda794f7ca79ae497 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:01 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 87c2ddd..6582349 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); } } -- cgit v0.10.2 From 9459ff2b6bd103bd4bd0e31f5144a7b2b6e76bae Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:02 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 6582349..ac1d298 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 */ -- cgit v0.10.2 From 5c912f1f285e91c9059f8b3cf2ff170ee42d604d Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:03 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index ac1d298..be0d2a7 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) -- cgit v0.10.2 From 45037a9569183b49a9c9cf9faea294228c3963d2 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:04 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index be0d2a7..e2302cb 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); -- cgit v0.10.2 From eb96c7fc24fb89d7e3382260e1b391c05895cfa6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Mon, 19 Oct 2015 13:13:05 -0700 Subject: 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 diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index e2302cb..0dff1db 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; + } } } } -- cgit v0.10.2 From 6512edec48b2ccfe9bb969ce26ebbbcd49de6c4b Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Wed, 21 Oct 2015 18:42:37 -0700 Subject: 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 diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index 39d9505..5d3b86a 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 e4f33d9..30918ed 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 c54b4e8..0000000 --- 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 3e98777..0000000 --- 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 1d346bc..0000000 --- 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 715de3f..0000000 --- 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 e4a6985..0000000 --- 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 e1861cf..0000000 --- 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 aad3c80..0000000 Binary files a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.img and /dev/null differ diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_cs.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_cs.c deleted file mode 100644 index e5cc5be..0000000 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_cs.c +++ /dev/null @@ -1,158 +0,0 @@ -/*--------------------------------------------------------------------------- - FT1000 driver for Flarion Flash OFDM NIC Device - - Copyright (C) 1999 David A. Hinds. All Rights Reserved. - 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. - - The initial developer of the original code is David A. Hinds - . 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 612ac0b..0000000 --- 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 eecfa37..0000000 --- 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 7c4b784..0000000 --- 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 f241a3a..0000000 --- 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 cf85021..0000000 --- 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 9ea32ce..0000000 --- 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 e9472be..0000000 --- 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 d1ba0b8..0000000 --- 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 9b5050f..0000000 --- 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 7bef6bd..0000000 Binary files a/drivers/staging/ft1000/ft1000-usb/ft3000.img and /dev/null differ diff --git a/drivers/staging/ft1000/ft1000.h b/drivers/staging/ft1000/ft1000.h deleted file mode 100644 index 8a2e4ca..0000000 --- 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; -}; -- cgit v0.10.2 From 5a602ac4d6ecda412746fe249423d6455e32a264 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sun, 18 Oct 2015 22:59:18 +0100 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 0492747..26c8d5b 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) { -- cgit v0.10.2 From ba57f5fadb79f35e9e2a75617dccd62415db5252 Mon Sep 17 00:00:00 2001 From: Navya Sri Nizamkari Date: Mon, 19 Oct 2015 12:24:39 +0530 Subject: 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 diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 26c8d5b..4e6c16a 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; -- cgit v0.10.2 From 62d46eaac6c64c48413d62aae285a013439c51b9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:15 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index efa57d8..c993f20 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++) { -- cgit v0.10.2 From 1afacec6636dcf7b77ed0fdd34b7d09afaf3b323 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:16 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index 6f5839f..d74d038 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; -- cgit v0.10.2 From 2e74c73c9837171c380f4c2ce4c749a0b62e4b8c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:17 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index d74d038..e602604 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 31303a1..1acf099 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 -- cgit v0.10.2 From d15fe3e01989df34c5afc0d61fb53337484872b0 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:18 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index e602604..b151837 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 1acf099..67b3f60 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 c993f20..ef03242 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++) { -- cgit v0.10.2 From c008fa83c416bbdcca9a49fb2d6f3fbc50daf421 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:19 +0200 Subject: staging: rtl8192e: cmdpkt: Pass data as const void* Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index b151837..5ff7f2d 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 67b3f60..7dd15d9 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 -- cgit v0.10.2 From 1e7da09afd129d9b75b561808d5ed9209d6d2f2c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:20 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index 5ff7f2d..3de1b25 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 dab67c1..f88e112 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 10aac8c..186c65d 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 1ddf42a..a7777a3 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 -- cgit v0.10.2 From c0f6479165ed0380e8588f50ff728b76131c4383 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:21 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c index 3de1b25..f9003a2 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; -- cgit v0.10.2 From 292f4b47baf8e45b4196dab432ee787fd1eeca88 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:22 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index f88e112..eb1f1bb4 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 186c65d..4dde93e 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); -- cgit v0.10.2 From 6167a6c88c07f5efe9fb86603f2b095b7ccc941a Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:23 +0200 Subject: staging: rtl8192e: Rename rt_firmware::firmware_status to status Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index dad63c2..e9c4f97 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 eb1f1bb4..528b68a 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 4dde93e..b48ec94 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]; }; -- cgit v0.10.2 From 58533b221730c0ccbcd7d7694b2111679f11d99d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:24 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 528b68a..42eabce 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); } } -- cgit v0.10.2 From 51dac5f09577e8300602e378d115075cf656a32c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:25 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 42eabce..2ac7484 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; -- cgit v0.10.2 From 09b1893831d23bac5d6a0a84ac578fdec7099b7d Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:26 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 2ac7484..b1ee65d 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; - - rc = request_firmware(&fw_entry, - fw_name[i], - &priv->pdev->dev); - if (rc < 0) { - RT_TRACE(COMP_FIRMWARE, - "request firmware fail!\n"); - 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); + int pad = 0; + + 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 (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); } } -- cgit v0.10.2 From f4c807d6d5fa653dc060a75e963cb2834f697ed4 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:27 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index b1ee65d..7c7c195 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; -- cgit v0.10.2 From 15d140664c94f56e67e4cf3107c000471ae72a9c Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:28 +0200 Subject: staging: rtl8192e: Remove _rtl92e_fw_download_code() Reuse rtl92e_send_cmd_pkt() instead. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 7c7c195..cbd23c0 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; -- cgit v0.10.2 From 91d7b8cf7cfef7a1e3e344e5bbbaf664505eb2c9 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:29 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index cbd23c0..becf062 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: -- cgit v0.10.2 From b0dcce5fbfac9cb238c4666b8798065eb982bb82 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 19 Oct 2015 22:00:30 +0200 Subject: 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 diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index becf062..9aaa855 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, -- cgit v0.10.2 From 9c68ed09fe11cdd45cd84f8dcf634c2ca4075a52 Mon Sep 17 00:00:00 2001 From: Anish Bhatt Date: Sun, 18 Oct 2015 22:51:41 -0700 Subject: 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 diff --git a/drivers/staging/rtl8188eu/core/rtw_efuse.c b/drivers/staging/rtl8188eu/core/rtw_efuse.c index 7b99ea9..685ce98 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 4eb982b..264d7e3 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 46be4de..2c25d3b 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 36afe45..3dd6cff 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 d3c6873..0be6c05 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 2eafa50..bb3c777 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 d528140..2d88c5a 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 a6295ca..29353bf 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 81d691d..564cf53 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 1ef878f..7e72259 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 20e6b40..e058162 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 e73c634..1b1c102 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 73ef9c7..bc970ca 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 914f831..e939096 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 89bc46b..7f10b69 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 96505a6..e24fe8c 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 43db92d..8c876c6 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 e99179a..beeee4a6 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 580e850..3a62ed0 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); -- cgit v0.10.2 From 7346489110da94ed5792a8f1ef3116e0bd1961f6 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Wed, 21 Oct 2015 18:29:59 +0100 Subject: 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 diff --git a/drivers/staging/rtl8188eu/hal/rf_cfg.c b/drivers/staging/rtl8188eu/hal/rf_cfg.c index 067649a..a3f1aba 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 && -- cgit v0.10.2 From cf31378ba705945fb7b7d6e6c96e47a8a6ce4503 Mon Sep 17 00:00:00 2001 From: Muhammad Falak R Wani Date: Mon, 19 Oct 2015 22:37:51 +0530 Subject: 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 diff --git a/drivers/staging/android/ion/ion_heap.c b/drivers/staging/android/ion/ion_heap.c index e97a2c3..ca15a87 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; -- cgit v0.10.2 From 1ca96884b12dd2d57e0339d9f4a29e4888edc0e2 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Mon, 19 Oct 2015 18:14:29 +0100 Subject: 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 diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index 6805f79..92ab59d 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 f70235c..39b6320 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 d957169..13d4b8d 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 b9abe05..4148d48 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 ada8d5d..48d744d 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 534dc04..83cdb61 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 27b1213..2965919 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 ef71829..8331781 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 50339e6..4e71361 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 a964816..a7f5816 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 ac0baff..d8e62ec 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 22262b3..67a2695 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 fbcb248..c1890f5 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 08d6c98..61e0eb7 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 77f01bf..7b00c35 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 9bc04f4..bf10d6d 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 046a46c..8a54436 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 8627928..48b0557 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 6ae8cdc..400dfb6 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 2e4fa88..d414139 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 d1ff7c9..91d33e7 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 c940722..e33eeed 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 d15fb1a..d398183 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; -- cgit v0.10.2 From 168a2c10288d78f1e8504d132f59bb407f4fb9a6 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Mon, 19 Oct 2015 18:15:29 +0100 Subject: 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 diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c index e0ae57d..8008efe 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 261a973..3c38fcb 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 39b6320..ac6c22f 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 13d4b8d..4dcc826 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 48d744d..79981b5 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 83cdb61..b6b2b42 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 2965919..02140b0 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 8331781..1f6e69b 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 a7f5816..e70513d 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 d8e62ec..b10b3e8 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 67a2695..ab84a40 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 c1890f5..98113c4 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 26201ea..6783055 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 7b00c35..26786ad 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 8a54436..e9dc1f4 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 48b0557..1d7888a 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 400dfb6..162e61c 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 d414139..eb41f76 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 b4ae11a..944df85 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 91d33e7..de447da 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 e33eeed..f35b3b6 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; } -- cgit v0.10.2 From 4ef2de5ae0377bc88c1f5021c3797db3c62bc384 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Mon, 19 Oct 2015 18:16:01 +0100 Subject: 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 diff --git a/drivers/staging/rtl8712/ieee80211.c b/drivers/staging/rtl8712/ieee80211.c index 3c38fcb..974ca02 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 6d253bf..e4e4bde 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 92ab59d..b89e2d3 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 ac6c22f..9b91609 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 4dcc826..eaa93fb 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 79981b5..9055827 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 b6b2b42..d187508 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 02140b0..b21a60e 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 1f6e69b..562a102 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 e70513d..edfc680 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 b10b3e8..7c346a4 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 ab84a40..f772675 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 98113c4..b22dbd5 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 6783055..e1cb149 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 26786ad..b98a596 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 e9dc1f4..4ff5301 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 1d7888a..0924242 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 eb41f76..68d65d2 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 944df85..ad21df1 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 de447da..c71333f 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 c03508d..856f257 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 f35b3b6..489a9e6 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; -- cgit v0.10.2 From 192b6a8475f8312f0d1f19a010fcca322018d14f Mon Sep 17 00:00:00 2001 From: Muhammad Falak R Wani Date: Tue, 20 Oct 2015 00:57:38 +0530 Subject: 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 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index d78fd7b..f69fb5c 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; } -- cgit v0.10.2 From ffca44fb93e755e3af822966ddf0a5d041d8bd93 Mon Sep 17 00:00:00 2001 From: Muhammad Falak R Wani Date: Tue, 20 Oct 2015 00:57:39 +0530 Subject: 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 diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c index 3a5d8f5..c053c4a 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++; -- cgit v0.10.2 From 73eee567cbdc3e2f70843a1090786ceb0391061e Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 21 Oct 2015 20:00:50 +0300 Subject: 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 diff --git a/drivers/staging/octeon-usb/octeon-hcd.c b/drivers/staging/octeon-usb/octeon-hcd.c index 6194028..6f28717 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 */ -- cgit v0.10.2 From 9a28617fbc99fa8276ebe88faa3d46f8fa451378 Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Fri, 23 Oct 2015 00:01:35 +0300 Subject: 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 diff --git a/drivers/staging/octeon/ethernet-defines.h b/drivers/staging/octeon/ethernet-defines.h index 7164005..13e4cee 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__ */ -- cgit v0.10.2 From 78b987879726ed61630e3ea0f567360138723e07 Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Thu, 22 Oct 2015 16:25:08 +0300 Subject: 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 diff --git a/drivers/staging/skein/skein_block.c b/drivers/staging/skein/skein_block.c index dda5c00..45b4732 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 -- cgit v0.10.2 From 9efbbfada99cd553fa16f66a49b98acf011080a9 Mon Sep 17 00:00:00 2001 From: Anton Tatuev Date: Thu, 22 Oct 2015 18:37:30 +0300 Subject: skein: fix coding style Added spaces around binary operators. Signed-off-by: Tatuev Anton Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/skein/skein_api.c b/drivers/staging/skein/skein_api.c index 46a74fc..36f849f 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; } -- cgit v0.10.2 From d59b7b68344df4a2a9eb31e0d667692bfa43a690 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:40 +0300 Subject: staging: iio: light: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/iio/light/isl29018.c b/drivers/staging/iio/light/isl29018.c index 019ba52..73109dd 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 df60203..3100d96 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 bf9627e..9dfd048 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; -- cgit v0.10.2 From 062f782b37059f7156e59f46c71225ba4a5efa06 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:41 +0300 Subject: staging: iio: meter: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c index 3d2e50c..188830d 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 8552c76..664c6e5 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 23e7392..11c1edc 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 9b255a5..da77486 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); -- cgit v0.10.2 From eee587ea87343777f51825c532462635dd2e4157 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:42 +0300 Subject: staging: iio: accel: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/iio/accel/sca3000_ring.c b/drivers/staging/iio/accel/sca3000_ring.c index 23685e7..6d19e12 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; -- cgit v0.10.2 From e6e65f97db4ebd6a9aec26eccca2992eb638afd3 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:43 +0300 Subject: staging: iio: cdc: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c index 636a7ee..e8d0ff2 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 c3d5531..485d0a5 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; } -- cgit v0.10.2 From 97deb1bc1183f8d91f0ebde1403980e5f9429f6e Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:44 +0300 Subject: staging: iio: frequency: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/iio/frequency/ad9834.c b/drivers/staging/iio/frequency/ad9834.c index d02bb44..fcffe2c 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; -- cgit v0.10.2 From ac1640fbd833b6dfaab1cc8e08ec1e511be189a8 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:45 +0300 Subject: staging: iio: trigger: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c index 9fe48ef..035dd45 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 2db8857..00d1393 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; -- cgit v0.10.2 From 05824120e4ff5f431370db106d1a034b3923e0db Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:46 +0300 Subject: staging: iio: gyro: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/iio/gyro/adis16060_core.c b/drivers/staging/iio/gyro/adis16060_core.c index 4c5869d..80783e7 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); -- cgit v0.10.2 From cd857a158abcf2ad0134e9f044ba74b2bd0b468a Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Tue, 20 Oct 2015 22:55:47 +0300 Subject: staging: iio: magnetometer: Remove explicit comparisons Remove comparisons to 0 or NULL Signed-off-by: Cristina Moraru Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/iio/magnetometer/hmc5843_core.c b/drivers/staging/iio/magnetometer/hmc5843_core.c index 4aab022..394bc14 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++) -- cgit v0.10.2 From fb795c68479f9ada8e5a0d5b54af18fd54a951a5 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:52 +0300 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index ca64126..2d36ea5 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 */ -- cgit v0.10.2 From 629c7349a2e5bc6c5680c00b3e822b2384bf0523 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:53 +0300 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 2d36ea5..f7850f4 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; -- cgit v0.10.2 From 181225530e2f625869fb8ad242444d8efa8a478b Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:54 +0300 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index f7850f4..3cda302 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; -- cgit v0.10.2 From 44209c93299efbc84eb8c29827b3132bf06f7e42 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:55 +0300 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 3cda302..5fb4554 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; -- cgit v0.10.2 From a9108b71b1f7335149d68fbd166af7236ed60373 Mon Sep 17 00:00:00 2001 From: Ioana Ciornei Date: Wed, 21 Oct 2015 23:17:56 +0300 Subject: 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 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 5fb4554..bad3551 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)) -- cgit v0.10.2 From 614a2910900084d93fe80611a3d14c62edc0ea10 Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Tue, 20 Oct 2015 23:29:31 +0300 Subject: 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 diff --git a/drivers/staging/netlogic/platform_net.c b/drivers/staging/netlogic/platform_net.c index e914147..7806c2b 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, -- cgit v0.10.2 From ada40ba4e5b5f6a668a4d684e12a8b097fbafee3 Mon Sep 17 00:00:00 2001 From: Cristina Moraru Date: Wed, 21 Oct 2015 20:00:49 +0300 Subject: 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 diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c index b22dbd5..a4a002b 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; -- cgit v0.10.2 From 8c182ae20791d638c07ff499709c4a1d4697bd7c Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Wed, 21 Oct 2015 18:32:38 +0100 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_wlan_util.c b/drivers/staging/rtl8723au/core/rtw_wlan_util.c index 5e87360..cc2b84b 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; -- cgit v0.10.2 From 0cddeac382a2ac846adef88eac7e254f38046d4b Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Thu, 22 Oct 2015 00:48:29 +0300 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index 76ad036..b31a618 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); -- cgit v0.10.2 From 68535a16bb6a8878ad8731867a85f8acd9337e7d Mon Sep 17 00:00:00 2001 From: Burcin Akalin Date: Thu, 22 Oct 2015 15:15:39 +0300 Subject: 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 diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index b31a618..b6730a8 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; -- cgit v0.10.2 From 0d07fc1b027403d05b223c7c99ace996de8cad7b Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Tue, 20 Oct 2015 23:06:45 -0700 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_cmd.c b/drivers/staging/rtl8723au/core/rtw_cmd.c index 46aea16..d3479e1 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; -- cgit v0.10.2 From c12e8dba0ebfcfe398e520ecbb3f1cb97b6d1a6c Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Tue, 20 Oct 2015 23:08:27 -0700 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_cmd.c b/drivers/staging/rtl8723au/core/rtw_cmd.c index d3479e1..f8f6376 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); } -- cgit v0.10.2 From 164e265b63db867b77d0f57ddf2324bbdaa151f3 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Tue, 20 Oct 2015 23:09:37 -0700 Subject: 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 diff --git a/drivers/staging/rtl8723au/core/rtw_cmd.c b/drivers/staging/rtl8723au/core/rtw_cmd.c index f8f6376..3035bb8 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: -- cgit v0.10.2 From 598af18afc6dd5753622b8e4c9a6cd185f4223a4 Mon Sep 17 00:00:00 2001 From: Dennis Menschel Date: Wed, 21 Oct 2015 23:16:53 +0200 Subject: 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 diff --git a/drivers/staging/fbtft/fb_st7789v.c b/drivers/staging/fbtft/fb_st7789v.c index dc7d304..22a7b5b 100644 --- a/drivers/staging/fbtft/fb_st7789v.c +++ b/drivers/staging/fbtft/fb_st7789v.c @@ -18,6 +18,7 @@ #include #include #include +#include