[PATCH 5/6] staging: ks7010: Fix line over 80 characters.

2018-03-16 Thread Quytelda Kahja
There is no reason for comment describing the BSSID check for loop
to be spaced so far to the right.  Move it above the for loop.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 2de4dbbcd9de..6fc2c3647908 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -844,7 +844,8 @@ void hostif_scan_indication(struct ks_wlan_private *priv)
ap_info = (struct ap_info_t *)(priv->rxp);
 
if (priv->scan_ind_count) {
-   for (i = 0; i < priv->aplist.size; i++) {   /* bssid check 
*/
+   /* bssid check */
+   for (i = 0; i < priv->aplist.size; i++) {
if (memcmp(ap_info->bssid,
   priv->aplist.ap[i].bssid, ETH_ALEN) != 0)
continue;
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/6] staging: ks7010: Factor out code into helper methods.

2018-03-16 Thread Quytelda Kahja
Some cases in the switch statement in get_ap_information() are indented
as much as five levels, which makes the code difficult to read because
of all the wrapping.  Factor them out into helper methods.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 46 +-
 1 file changed, 26 insertions(+), 20 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index a946ce76f899..948d45280d18 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -238,6 +238,30 @@ static u8 read_ie(unsigned char *bp, u8 max, u8 *body, 
char *name)
return size;
 }
 
+static void read_ie_ext_supp_rates(struct local_ap_t *ap, unsigned char *bp)
+{
+   if ((*(bp + 1) + ap->rate_set.size) <= RATE_SET_MAX_SIZE) {
+   memcpy(>rate_set.body[ap->rate_set.size],
+  bp + 2, *(bp + 1));
+   ap->rate_set.size += *(bp + 1);
+   } else {
+   DPRINTK(1, "size over :: rate size=%d\n",
+   (*(bp + 1) + ap->rate_set.size));
+   memcpy(>rate_set.body[ap->rate_set.size], bp + 2,
+  RATE_SET_MAX_SIZE - ap->rate_set.size);
+   ap->rate_set.size += (RATE_SET_MAX_SIZE - ap->rate_set.size);
+   }
+}
+
+static void read_ie_wpa(struct local_ap_t *ap, unsigned char *bp)
+{
+   if (memcmp(bp + 2, CIPHER_ID_WPA_WEP40, 4) == 0) { /* WPA OUI check */
+   ap->wpa_ie.id = *bp;
+   ap->wpa_ie.size = read_ie(bp, RSN_IE_BODY_MAX,
+ ap->wpa_ie.body, "wpa");
+   }
+}
+
 static
 int get_ap_information(struct ks_wlan_private *priv, struct ap_info_t *ap_info,
   struct local_ap_t *ap)
@@ -273,20 +297,7 @@ int get_ap_information(struct ks_wlan_private *priv, 
struct ap_info_t *ap_info,
break;
case WLAN_EID_SUPP_RATES:
case WLAN_EID_EXT_SUPP_RATES:
-   if ((*(bp + 1) + ap->rate_set.size) <=
-   RATE_SET_MAX_SIZE) {
-   memcpy(>rate_set.body[ap->rate_set.size],
-  bp + 2, *(bp + 1));
-   ap->rate_set.size += *(bp + 1);
-   } else {
-   DPRINTK(1, "size over :: rate size=%d\n",
-   (*(bp + 1) + ap->rate_set.size));
-   memcpy(>rate_set.body[ap->rate_set.size],
-  bp + 2,
-  RATE_SET_MAX_SIZE - ap->rate_set.size);
-   ap->rate_set.size +=
-   (RATE_SET_MAX_SIZE - ap->rate_set.size);
-   }
+   read_ie_ext_supp_rates(ap, bp);
break;
case WLAN_EID_DS_PARAMS:
break;
@@ -296,12 +307,7 @@ int get_ap_information(struct ks_wlan_private *priv, 
struct ap_info_t *ap_info,
  ap->rsn_ie.body, "rsn");
break;
case WLAN_EID_VENDOR_SPECIFIC: /* WPA */
-   if (memcmp(bp + 2, CIPHER_ID_WPA_WEP40, 4) == 0) { /* 
WPA OUI check */
-   ap->wpa_ie.id = *bp;
-   ap->wpa_ie.size = read_ie(bp, RSN_IE_BODY_MAX,
- ap->wpa_ie.body,
- "wpa");
-   }
+   read_ie_wpa(ap, bp);
break;
 
case WLAN_EID_FH_PARAMS:
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 6/6] staging: ks7010: Factor out repeated request initialization code.

2018-03-16 Thread Quytelda Kahja
The code to initialize various different types of request structs
is repeated multiple times.  Factor this code out into a macro
called INIT_REQUEST.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 55 +++---
 1 file changed, 16 insertions(+), 39 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 6fc2c3647908..3e5016aad029 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -40,6 +40,17 @@ static inline unsigned int cnt_smeqbody(struct 
ks_wlan_private *priv)
 
 #define KS_WLAN_MEM_FLAG (GFP_ATOMIC)
 
+#define INIT_REQUEST(pp, priv)
+{(
+   pp->phy_type = cpu_to_le16((uint16_t)(priv->reg.phy_type));
+   pp->cts_mode = cpu_to_le16((uint16_t)(priv->reg.cts_mode));
+   pp->scan_type = cpu_to_le16((uint16_t)(priv->reg.scan_type));
+   pp->rate_set.size = priv->reg.rate_set.size;
+   pp->capability = ks_wlan_cap(priv);
+   memcpy(>rate_set.body[0], >reg.rate_set.body[0],
+  priv->reg.rate_set.size);
+)}
+
 static
 inline u8 get_BYTE(struct ks_wlan_private *priv)
 {
@@ -1412,14 +1423,7 @@ void hostif_ps_adhoc_set_request(struct ks_wlan_private 
*priv)
if (!pp)
return;
 
-   pp->phy_type = cpu_to_le16((uint16_t)(priv->reg.phy_type));
-   pp->cts_mode = cpu_to_le16((uint16_t)(priv->reg.cts_mode));
-   pp->scan_type = cpu_to_le16((uint16_t)(priv->reg.scan_type));
-   pp->channel = cpu_to_le16((uint16_t)(priv->reg.channel));
-   pp->rate_set.size = priv->reg.rate_set.size;
-   pp->capability = ks_wlan_cap(priv);
-   memcpy(>rate_set.body[0], >reg.rate_set.body[0],
-  priv->reg.rate_set.size);
+   INIT_REQUEST(pp, priv);
 
/* send to device request */
ps_confirm_wait_inc(priv);
@@ -1437,16 +1441,9 @@ void hostif_infrastructure_set_request(struct 
ks_wlan_private *priv)
if (!pp)
return;
 
-   pp->phy_type = cpu_to_le16((uint16_t)(priv->reg.phy_type));
-   pp->cts_mode = cpu_to_le16((uint16_t)(priv->reg.cts_mode));
-   pp->scan_type = cpu_to_le16((uint16_t)(priv->reg.scan_type));
-
-   pp->rate_set.size = priv->reg.rate_set.size;
-   memcpy(>rate_set.body[0], >reg.rate_set.body[0],
-  priv->reg.rate_set.size);
+   INIT_REQUEST(pp, priv);
pp->ssid.size = priv->reg.ssid.size;
memcpy(>ssid.body[0], >reg.ssid.body[0], priv->reg.ssid.size);
-   pp->capability = ks_wlan_cap(priv);
pp->beacon_lost_count =
cpu_to_le16((uint16_t)(priv->reg.beacon_lost_count));
pp->auth_type = cpu_to_le16((uint16_t)(priv->reg.authenticate_type));
@@ -1486,16 +1483,9 @@ static void hostif_infrastructure_set2_request(struct 
ks_wlan_private *priv)
if (!pp)
return;
 
-   pp->phy_type = cpu_to_le16((uint16_t)(priv->reg.phy_type));
-   pp->cts_mode = cpu_to_le16((uint16_t)(priv->reg.cts_mode));
-   pp->scan_type = cpu_to_le16((uint16_t)(priv->reg.scan_type));
-
-   pp->rate_set.size = priv->reg.rate_set.size;
-   memcpy(>rate_set.body[0], >reg.rate_set.body[0],
-  priv->reg.rate_set.size);
+   INIT_REQUEST(pp, priv);
pp->ssid.size = priv->reg.ssid.size;
memcpy(>ssid.body[0], >reg.ssid.body[0], priv->reg.ssid.size);
-   pp->capability = ks_wlan_cap(priv);
pp->beacon_lost_count =
cpu_to_le16((uint16_t)(priv->reg.beacon_lost_count));
pp->auth_type = cpu_to_le16((uint16_t)(priv->reg.authenticate_type));
@@ -1538,16 +1528,9 @@ void hostif_adhoc_set_request(struct ks_wlan_private 
*priv)
if (!pp)
return;
 
-   pp->phy_type = cpu_to_le16((uint16_t)(priv->reg.phy_type));
-   pp->cts_mode = cpu_to_le16((uint16_t)(priv->reg.cts_mode));
-   pp->scan_type = cpu_to_le16((uint16_t)(priv->reg.scan_type));
-   pp->channel = cpu_to_le16((uint16_t)(priv->reg.channel));
-   pp->rate_set.size = priv->reg.rate_set.size;
-   memcpy(>rate_set.body[0], >reg.rate_set.body[0],
-  priv->reg.rate_set.size);
+   INIT_REQUEST(pp, priv);
pp->ssid.size = priv->reg.ssid.size;
memcpy(>ssid.body[0], >reg.ssid.body[0], priv->reg.ssid.size);
-   pp->capability = ks_wlan_cap(priv);
 
/* send to device request */
ps_confirm_wait_inc(priv);
@@ -1565,15 +1548,9 @@ void hostif_adhoc_set2_request(struct ks_wlan_private 
*priv)
if (!pp)
return;
 
-   pp->phy_type = cpu_to_le16((uint16_t)(priv->reg.phy_type));
-   pp->cts_mode = cpu_to_le16((uint16_t)(priv->reg.cts_mode));
-   pp->sc

[PATCH 3/6] staging: ks7010: Remove unnecessary parentheses.

2018-03-16 Thread Quytelda Kahja
Remove unnecessary parentheses highlighted by checkpatch.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 948d45280d18..00b97e8e9b4f 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -45,7 +45,7 @@ inline u8 get_BYTE(struct ks_wlan_private *priv)
 {
u8 data;
 
-   data = *(priv->rxp)++;
+   data = *priv->rxp++;
/* length check in advance ! */
--(priv->rx_size);
return data;
@@ -860,7 +860,7 @@ void hostif_scan_indication(struct ks_wlan_private *priv)
DPRINTK(4, " scan_ind_count=%d :: aplist.size=%d\n",
priv->scan_ind_count, priv->aplist.size);
get_ap_information(priv, (struct ap_info_t *)(priv->rxp),
-  &(priv->aplist.ap[priv->scan_ind_count - 
1]));
+  >aplist.ap[priv->scan_ind_count - 1]);
priv->aplist.size = priv->scan_ind_count;
} else {
DPRINTK(4, " count over :: scan_ind_count=%d\n",
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/6] staging: ks7010: Factor out repeated code.

2018-03-16 Thread Quytelda Kahja
Some of the code for reading IEs is replicated multiple times in the
switch statement for get_ap_information().  Factor that code out into
read_ie().

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 48 +-
 1 file changed, 22 insertions(+), 26 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 05f7be4638fe..a946ce76f899 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -223,6 +223,21 @@ int get_current_ap(struct ks_wlan_private *priv, struct 
link_ap_info_t *ap_info)
return 0;
 }
 
+static u8 read_ie(unsigned char *bp, u8 max, u8 *body, char *name)
+{
+   u8 size;
+
+   if (*(bp + 1) <= max) {
+   size = *(bp + 1);
+   } else {
+   DPRINTK(1, "size over :: %s size=%d\n", name, *(bp + 1));
+   size = max;
+   }
+
+   memcpy(body, bp + 2, size);
+   return size;
+}
+
 static
 int get_ap_information(struct ks_wlan_private *priv, struct ap_info_t *ap_info,
   struct local_ap_t *ap)
@@ -253,14 +268,8 @@ int get_ap_information(struct ks_wlan_private *priv, 
struct ap_info_t *ap_info,
while (bsize > offset) {
switch (*bp) { /* Information Element ID */
case WLAN_EID_SSID:
-   if (*(bp + 1) <= IEEE80211_MAX_SSID_LEN) {
-   ap->ssid.size = *(bp + 1);
-   } else {
-   DPRINTK(1, "size over :: ssid size=%d\n",
-   *(bp + 1));
-   ap->ssid.size = IEEE80211_MAX_SSID_LEN;
-   }
-   memcpy(ap->ssid.body, bp + 2, ap->ssid.size);
+   ap->ssid.size = read_ie(bp, IEEE80211_MAX_SSID_LEN,
+   ap->ssid.body, "ssid");
break;
case WLAN_EID_SUPP_RATES:
case WLAN_EID_EXT_SUPP_RATES:
@@ -283,28 +292,15 @@ int get_ap_information(struct ks_wlan_private *priv, 
struct ap_info_t *ap_info,
break;
case WLAN_EID_RSN:
ap->rsn_ie.id = *bp;
-   if (*(bp + 1) <= RSN_IE_BODY_MAX) {
-   ap->rsn_ie.size = *(bp + 1);
-   } else {
-   DPRINTK(1, "size over :: rsn size=%d\n",
-   *(bp + 1));
-   ap->rsn_ie.size = RSN_IE_BODY_MAX;
-   }
-   memcpy(ap->rsn_ie.body, bp + 2, ap->rsn_ie.size);
+   ap->rsn_ie.size = read_ie(bp, RSN_IE_BODY_MAX,
+ ap->rsn_ie.body, "rsn");
break;
case WLAN_EID_VENDOR_SPECIFIC: /* WPA */
if (memcmp(bp + 2, CIPHER_ID_WPA_WEP40, 4) == 0) { /* 
WPA OUI check */
ap->wpa_ie.id = *bp;
-   if (*(bp + 1) <= RSN_IE_BODY_MAX) {
-   ap->wpa_ie.size = *(bp + 1);
-   } else {
-   DPRINTK(1,
-   "size over :: wpa size=%d\n",
-   *(bp + 1));
-   ap->wpa_ie.size = RSN_IE_BODY_MAX;
-   }
-   memcpy(ap->wpa_ie.body, bp + 2,
-  ap->wpa_ie.size);
+   ap->wpa_ie.size = read_ie(bp, RSN_IE_BODY_MAX,
+ ap->wpa_ie.body,
+ "wpa");
}
break;
 
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: most: Remove unnecessary usage of BUG_ON().

2018-03-06 Thread Quytelda Kahja
There is no need for the calls to BUG_ON() in this driver, which are
used to check if mbo or mbo->context are NULL; mbo is never NULL, and
if mbo->context is NULL it would have already been dereferenced and
oopsed before reaching the BUG_ON().

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index 0ab2de5ecf18..3afc25a61643 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -915,7 +915,6 @@ static void arm_mbo(struct mbo *mbo)
unsigned long flags;
struct most_channel *c;
 
-   BUG_ON((!mbo) || (!mbo->context));
c = mbo->context;
 
if (c->is_poisoned) {
@@ -1018,8 +1017,6 @@ static void most_write_completion(struct mbo *mbo)
 {
struct most_channel *c;
 
-   BUG_ON((!mbo) || (!mbo->context));
-
c = mbo->context;
if (mbo->status == MBO_E_INVAL)
pr_info("WARN: Tx MBO status: invalid\n");
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: ks7010: Replace literal with constant.

2018-03-06 Thread Quytelda Kahja
Replace literal bytestring with CIPHER_ID_WPA_WEP40 constant.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 7935ba56bb1d..05f7be4638fe 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -293,7 +293,7 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
memcpy(ap->rsn_ie.body, bp + 2, ap->rsn_ie.size);
break;
case WLAN_EID_VENDOR_SPECIFIC: /* WPA */
-   if (memcmp(bp + 2, "\x00\x50\xf2\x01", 4) == 0) { /* 
WPA OUI check */
+   if (memcmp(bp + 2, CIPHER_ID_WPA_WEP40, 4) == 0) { /* 
WPA OUI check */
ap->wpa_ie.id = *bp;
if (*(bp + 1) <= RSN_IE_BODY_MAX) {
ap->wpa_ie.size = *(bp + 1);
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 2/2] staging: most: Indent function parameter.

2018-03-06 Thread Quytelda Kahja
Indent the parameters for a function call that extends past 80 characters.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index 67e2d7f29967..8d311970225e 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -1473,7 +1473,8 @@ void most_deregister_interface(struct most_interface 
*iface)
int i;
struct most_channel *c;
 
-   pr_info("deregistering device %s (%s)\n", dev_name(>dev), 
iface->description);
+   pr_info("deregistering device %s (%s)\n", dev_name(>dev),
+   iface->description);
for (i = 0; i < iface->num_channels; i++) {
c = iface->p->channel[i];
if (c->pipe0.comp)
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 2/4] staging: most: Replace calls to BUG_ON() with WARN_ONCE() and return.

2018-03-06 Thread Quytelda Kahja
> Are you sure this will work?
Well, my goal was just to replace the code that could crash the kernel
and let somebody with a better understanding of this particular driver
write the recovery code, if necessary.  It seemed from context that
the BUG_ON() calls were being used like assert() though, so I assumed
there wasn't really much recovery to be made from that problem.  If
you feel this doesn't improve the behavior of the driver, just drop
the patch.

Thank you,
Quytelda Kahja

On Thu, Mar 1, 2018 at 8:21 AM, Greg KH <gre...@linuxfoundation.org> wrote:
> On Fri, Feb 23, 2018 at 11:58:33PM -0800, Quytelda Kahja wrote:
>> Replace calls to BUG_ON() used to check for NULL pointers with WARN_ONCE()
>> followed by a return.
>
> Are you sure this will work?
>
>>
>> Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
>> ---
>>  drivers/staging/most/core.c | 13 ++---
>>  1 file changed, 10 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
>> index 18157dd80324..3f65390a6e17 100644
>> --- a/drivers/staging/most/core.c
>> +++ b/drivers/staging/most/core.c
>> @@ -916,7 +916,11 @@ static void arm_mbo(struct mbo *mbo)
>>   unsigned long flags;
>>   struct most_channel *c;
>>
>> - BUG_ON((!mbo) || (!mbo->context));
>> + if (WARN_ONCE(!mbo || !mbo->context,
>> +   "Bad mbo or missing channel reference.\n")) {
>> + return;
>
> How is the code supposed to recover from this major problem?
>
>> + }
>> +
>>   c = mbo->context;
>>
>>   if (c->is_poisoned) {
>> @@ -1001,7 +1005,7 @@ static int arm_mbo_chain(struct most_channel *c, int 
>> dir,
>>  void most_submit_mbo(struct mbo *mbo)
>>  {
>>   if (WARN_ONCE(!mbo || !mbo->context,
>> -   "bad mbo or missing channel reference\n"))
>> +   "Bad mbo or missing channel reference.\n"))
>
> You did something different here that you did not describe in your
> changelog :(
>
> thanks,
>
> greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 1/2] staging: most: Add a blank line.

2018-03-06 Thread Quytelda Kahja
Use a blank line after components_show() function declaration.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index 0ab2de5ecf18..67e2d7f29967 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -583,6 +583,7 @@ static ssize_t components_show(struct device_driver *drv, 
char *buf)
}
return offs;
 }
+
 /**
  * split_string - parses buf and extracts ':' separated substrings.
  *
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/2] staging: most: Fix a coding style problem

2018-03-01 Thread Quytelda Kahja
Indent the parameters for a function call that extends past 80 characters.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index 67e2d7f29967..8d311970225e 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -1473,7 +1473,8 @@ void most_deregister_interface(struct most_interface 
*iface)
int i;
struct most_channel *c;
 
-   pr_info("deregistering device %s (%s)\n", dev_name(>dev), 
iface->description);
+   pr_info("deregistering device %s (%s)\n", dev_name(>dev),
+   iface->description);
for (i = 0; i < iface->num_channels; i++) {
c = iface->p->channel[i];
if (c->pipe0.comp)
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/2] staging: most: Fix a coding style problem.

2018-03-01 Thread Quytelda Kahja
Use a blank line after components_show() function declaration.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index 0ab2de5ecf18..67e2d7f29967 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -583,6 +583,7 @@ static ssize_t components_show(struct device_driver *drv, 
char *buf)
}
return offs;
 }
+
 /**
  * split_string - parses buf and extracts ':' separated substrings.
  *
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 3/5] staging: ks7010: Factor out repeated code into function 'ks_wlan_cap()'.

2018-03-01 Thread Quytelda Kahja
Tobin,
I understand your point, and I've read submitting-patches.rst.  I made
that wording choice because I was looking at some older commits that
were worded like that.  I'm fairly new to the kernel workflow, so I
was just trying to emulate something established, and it sounded less
stilted than my imperative attempts.  However, I will word my change
logs in the imperative as best I can in the future.

Thank you,
Quytelda Kahja

On Thu, Mar 1, 2018 at 12:54 PM, Tobin C. Harding <m...@tobin.cc> wrote:
> On Thu, Mar 01, 2018 at 02:15:00PM +0300, Dan Carpenter wrote:
>> On Thu, Mar 01, 2018 at 05:37:21PM +1100, Tobin C. Harding wrote:
>> > On Wed, Feb 28, 2018 at 09:19:09PM -0800, Quytelda Kahja wrote:
>> > > The code that generates a WLAN capability mask is repeated in five
>> > > functions.  This change refactors that code into a new function, which is
>> > > called now in each of those functions.
>> >
>> > Perhaps in future something like:
>> >
>> > Code to generate the WLAN capability mask is duplicated five times
>> >
>> > Add helper function to generate WLAN capability mask, refactor code to
>> > use newly defined function.
>> >
>>
>> I honestly don't see the difference between that and what Quytelda
>> wrote?  I understood the original changelog just fine.
>>
>> regards,
>> dan carpenter
>
> I had a feeling that the sentiment of the suggestion I was trying to get
> at didn't come across, thanks for pointing it out.  I was intending to
> suggest not using sentences like this
>
> > This change refactors that code into a new function, which is
> > called now in each of those functions.
>
> And instead use, as suggested in submitting-patches.rst, imperative mood
>
> Refactor code into new function ...
>
> FTR I find the English bits of kernel dev (and programming in general)
> the most difficult even though English is my first language.  I would
> like to write it better.
>
>
> Hope this helps,
> Tobin.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/5] staging: ks7010: Replace SSID_MAX_SIZE with IEEE80211_MAX_SSID_LEN.

2018-02-28 Thread Quytelda Kahja
SSID_MAX_SIZE is a constant defined locally in ks_hostif.h, but it should
be replaced with IEEE80211_MAX_SSID_LEN from the kernel's 802.11 header,
of which it is just a copy.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 4 ++--
 drivers/staging/ks7010/ks_hostif.h | 3 +--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 67cf32433023..59f7c4e422d3 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -253,12 +253,12 @@ int get_ap_information(struct ks_wlan_private *priv, 
struct ap_info_t *ap_info,
while (bsize > offset) {
switch (*bp) { /* Information Element ID */
case WLAN_EID_SSID:
-   if (*(bp + 1) <= SSID_MAX_SIZE) {
+   if (*(bp + 1) <= IEEE80211_MAX_SSID_LEN) {
ap->ssid.size = *(bp + 1);
} else {
DPRINTK(1, "size over :: ssid size=%d\n",
*(bp + 1));
-   ap->ssid.size = SSID_MAX_SIZE;
+   ap->ssid.size = IEEE80211_MAX_SSID_LEN;
}
memcpy(ap->ssid.body, bp + 2, ap->ssid.size);
break;
diff --git a/drivers/staging/ks7010/ks_hostif.h 
b/drivers/staging/ks7010/ks_hostif.h
index 9ac317e4b507..b46aa94c0d48 100644
--- a/drivers/staging/ks7010/ks_hostif.h
+++ b/drivers/staging/ks7010/ks_hostif.h
@@ -225,10 +225,9 @@ struct hostif_start_confirm_t {
__le16 result_code;
 } __packed;
 
-#define SSID_MAX_SIZE 32
 struct ssid_t {
u8 size;
-   u8 body[SSID_MAX_SIZE];
+   u8 body[IEEE80211_MAX_SSID_LEN];
u8 ssid_pad;
 } __packed;
 
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 4/5] staging: ks7010: Replace local capability constants with kernel constants.

2018-02-28 Thread Quytelda Kahja
This driver defined constants BSS_CAP_* to represent WLAN capability
codes; however, these constants are already defined in the header
'linux/ieee80211.h' as WLAN_CAPABILITY_*.  This change removes the locally
defined constants and substitutes the kernel's constants.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c   |  8 
 drivers/staging/ks7010/ks_hostif.h   | 10 --
 drivers/staging/ks7010/ks_wlan_net.c |  6 +++---
 3 files changed, 7 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 4d11627a3d72..f425975fbcbc 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -1386,14 +1386,14 @@ static __le16 ks_wlan_cap(struct ks_wlan_private *priv)
u16 capability = 0x;
 
if (priv->reg.preamble == SHORT_PREAMBLE) {
-   capability |= BSS_CAP_SHORT_PREAMBLE;
+   capability |= WLAN_CAPABILITY_SHORT_PREAMBLE;
}
 
-   capability &= ~(BSS_CAP_PBCC);  /* pbcc not support */
+   capability &= ~(WLAN_CAPABILITY_PBCC);  /* pbcc not support */
 
if (priv->reg.phy_type != D_11B_ONLY_MODE) {
-   capability |= BSS_CAP_SHORT_SLOT_TIME;
-   capability &= ~(BSS_CAP_DSSS_OFDM);
+   capability |= WLAN_CAPABILITY_SHORT_SLOT_TIME;
+   capability &= ~(WLAN_CAPABILITY_DSSS_OFDM);
}
 
return cpu_to_le16((uint16_t)capability);
diff --git a/drivers/staging/ks7010/ks_hostif.h 
b/drivers/staging/ks7010/ks_hostif.h
index b46aa94c0d48..8f08e1e58991 100644
--- a/drivers/staging/ks7010/ks_hostif.h
+++ b/drivers/staging/ks7010/ks_hostif.h
@@ -284,16 +284,6 @@ struct ap_info_t {
u8 pad0;/* +09 */
__le16 beacon_period;   /* +10 */
__le16 capability;  /* +12 */
-#define BSS_CAP_ESS BIT(0)
-#define BSS_CAP_IBSSBIT(1)
-#define BSS_CAP_CF_POLABLE  BIT(2)
-#define BSS_CAP_CF_POLL_REQ BIT(3)
-#define BSS_CAP_PRIVACY BIT(4)
-#define BSS_CAP_SHORT_PREAMBLE  BIT(5)
-#define BSS_CAP_PBCCBIT(6)
-#define BSS_CAP_CHANNEL_AGILITY BIT(7)
-#define BSS_CAP_SHORT_SLOT_TIME BIT(10)
-#define BSS_CAP_DSSS_OFDM   BIT(13)
u8 frame_type;  /* +14 */
u8 ch_info; /* +15 */
 #define FRAME_TYPE_BEACON  0x80
diff --git a/drivers/staging/ks7010/ks_wlan_net.c 
b/drivers/staging/ks7010/ks_wlan_net.c
index e48c55769c94..91acf87ab8dd 100644
--- a/drivers/staging/ks7010/ks_wlan_net.c
+++ b/drivers/staging/ks7010/ks_wlan_net.c
@@ -1366,8 +1366,8 @@ static inline char *ks_wlan_translate_scan(struct 
net_device *dev,
/* Add mode */
iwe.cmd = SIOCGIWMODE;
capabilities = ap->capability;
-   if (capabilities & (BSS_CAP_ESS | BSS_CAP_IBSS)) {
-   if (capabilities & BSS_CAP_ESS)
+   if (capabilities & (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS)) {
+   if (capabilities & WLAN_CAPABILITY_ESS)
iwe.u.mode = IW_MODE_INFRA;
else
iwe.u.mode = IW_MODE_ADHOC;
@@ -1396,7 +1396,7 @@ static inline char *ks_wlan_translate_scan(struct 
net_device *dev,
 
/* Add encryption capability */
iwe.cmd = SIOCGIWENCODE;
-   if (capabilities & BSS_CAP_PRIVACY)
+   if (capabilities & WLAN_CAPABILITY_PRIVACY)
iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
else
iwe.u.data.flags = IW_ENCODE_DISABLED;
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/5] staging: ks7010: Use constants from ieee80211_eid instead of literal ints.

2018-02-28 Thread Quytelda Kahja
The case statement in get_ap_information() should not use literal integers
to parse information element IDs when these values are provided by name
in 'enum ieee80211_eid' in the header 'linux/ieee80211.h'.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 31 +++
 drivers/staging/ks7010/ks_hostif.h |  1 +
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 74a08417bd0b..67cf32433023 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -251,9 +251,8 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
offset = 0;
 
while (bsize > offset) {
-   /* DPRINTK(4, "Element ID=%d\n",*bp); */
-   switch (*bp) {
-   case 0: /* ssid */
+   switch (*bp) { /* Information Element ID */
+   case WLAN_EID_SSID:
if (*(bp + 1) <= SSID_MAX_SIZE) {
ap->ssid.size = *(bp + 1);
} else {
@@ -263,8 +262,8 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
}
memcpy(ap->ssid.body, bp + 2, ap->ssid.size);
break;
-   case 1: /* rate */
-   case 50:/* ext rate */
+   case WLAN_EID_SUPP_RATES:
+   case WLAN_EID_EXT_SUPP_RATES:
if ((*(bp + 1) + ap->rate_set.size) <=
RATE_SET_MAX_SIZE) {
memcpy(>rate_set.body[ap->rate_set.size],
@@ -280,9 +279,9 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
(RATE_SET_MAX_SIZE - ap->rate_set.size);
}
break;
-   case 3: /* DS parameter */
+   case WLAN_EID_DS_PARAMS:
break;
-   case 48:/* RSN(WPA2) */
+   case WLAN_EID_RSN:
ap->rsn_ie.id = *bp;
if (*(bp + 1) <= RSN_IE_BODY_MAX) {
ap->rsn_ie.size = *(bp + 1);
@@ -293,8 +292,8 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
}
memcpy(ap->rsn_ie.body, bp + 2, ap->rsn_ie.size);
break;
-   case 221:   /* WPA */
-   if (memcmp(bp + 2, "\x00\x50\xf2\x01", 4) == 0) {   
/* WPA OUI check */
+   case WLAN_EID_VENDOR_SPECIFIC: /* WPA */
+   if (memcmp(bp + 2, "\x00\x50\xf2\x01", 4) == 0) { /* 
WPA OUI check */
ap->wpa_ie.id = *bp;
if (*(bp + 1) <= RSN_IE_BODY_MAX) {
ap->wpa_ie.size = *(bp + 1);
@@ -309,18 +308,18 @@ int get_ap_information(struct ks_wlan_private *priv, 
struct ap_info_t *ap_info,
}
break;
 
-   case 2: /* FH parameter */
-   case 4: /* CF parameter */
-   case 5: /* TIM */
-   case 6: /* IBSS parameter */
-   case 7: /* Country */
-   case 42:/* ERP information */
-   case 47:/* Reserve ID 47 Broadcom AP */
+   case WLAN_EID_FH_PARAMS:
+   case WLAN_EID_CF_PARAMS:
+   case WLAN_EID_TIM:
+   case WLAN_EID_IBSS_PARAMS:
+   case WLAN_EID_COUNTRY:
+   case WLAN_EID_ERP_INFO:
break;
default:
DPRINTK(4, "unknown Element ID=%d\n", *bp);
break;
}
+
offset += 2;/* id & size field */
offset += *(bp + 1);/* +size offset */
bp += (*(bp + 1) + 2);  /* pointer update */
diff --git a/drivers/staging/ks7010/ks_hostif.h 
b/drivers/staging/ks7010/ks_hostif.h
index 5bae8d468e23..9ac317e4b507 100644
--- a/drivers/staging/ks7010/ks_hostif.h
+++ b/drivers/staging/ks7010/ks_hostif.h
@@ -13,6 +13,7 @@
 #define _KS_HOSTIF_H_
 
 #include 
+#include 
 
 /*
  * HOST-MAC I/F events
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 5/5] staging: ks7010: Replace local frame type constants with kernel constants.

2018-02-28 Thread Quytelda Kahja
This driver defined constants FRAME_TYPE_* to represent frame control
field codes; however, these constants are already defined in the header
'linux/ieee80211.h' as  IEEE80211_STYPE_*.  This change removes the locally
defined constants and substitutes the kernel's constants.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 2 +-
 drivers/staging/ks7010/ks_hostif.h | 6 --
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index f425975fbcbc..7935ba56bb1d 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -847,7 +847,7 @@ void hostif_scan_indication(struct ks_wlan_private *priv)
   priv->aplist.ap[i].bssid, ETH_ALEN) != 0)
continue;
 
-   if (ap_info->frame_type == FRAME_TYPE_PROBE_RESP)
+   if (ap_info->frame_type == IEEE80211_STYPE_PROBE_RESP)
get_ap_information(priv, ap_info,
   >aplist.ap[i]);
return;
diff --git a/drivers/staging/ks7010/ks_hostif.h 
b/drivers/staging/ks7010/ks_hostif.h
index 8f08e1e58991..166d83e4885c 100644
--- a/drivers/staging/ks7010/ks_hostif.h
+++ b/drivers/staging/ks7010/ks_hostif.h
@@ -286,8 +286,6 @@ struct ap_info_t {
__le16 capability;  /* +12 */
u8 frame_type;  /* +14 */
u8 ch_info; /* +15 */
-#define FRAME_TYPE_BEACON  0x80
-#define FRAME_TYPE_PROBE_RESP  0x50
__le16 body_size;   /* +16 */
u8 body[1024];  /* +18 */
/* +1032 */
@@ -465,8 +463,6 @@ struct last_associate_t {
 
 struct association_request_t {
u8 type;
-#define FRAME_TYPE_ASSOC_REQ   0x00
-#define FRAME_TYPE_REASSOC_REQ 0x20
u8 pad;
__le16 capability;
__le16 listen_interval;
@@ -476,8 +472,6 @@ struct association_request_t {
 
 struct association_response_t {
u8 type;
-#define FRAME_TYPE_ASSOC_RESP  0x10
-#define FRAME_TYPE_REASSOC_RESP0x30
u8 pad;
__le16 capability;
__le16 status;
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 3/5] staging: ks7010: Factor out repeated code into function 'ks_wlan_cap()'.

2018-02-28 Thread Quytelda Kahja
The code that generates a WLAN capability mask is repeated in five
functions.  This change refactors that code into a new function, which is
called now in each of those functions.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 88 ++
 1 file changed, 23 insertions(+), 65 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 59f7c4e422d3..4d11627a3d72 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -1381,11 +1381,28 @@ void hostif_start_request(struct ks_wlan_private *priv, 
unsigned char mode)
priv->scan_ind_count = 0;
 }
 
+static __le16 ks_wlan_cap(struct ks_wlan_private *priv)
+{
+   u16 capability = 0x;
+
+   if (priv->reg.preamble == SHORT_PREAMBLE) {
+   capability |= BSS_CAP_SHORT_PREAMBLE;
+   }
+
+   capability &= ~(BSS_CAP_PBCC);  /* pbcc not support */
+
+   if (priv->reg.phy_type != D_11B_ONLY_MODE) {
+   capability |= BSS_CAP_SHORT_SLOT_TIME;
+   capability &= ~(BSS_CAP_DSSS_OFDM);
+   }
+
+   return cpu_to_le16((uint16_t)capability);
+}
+
 static
 void hostif_ps_adhoc_set_request(struct ks_wlan_private *priv)
 {
struct hostif_ps_adhoc_set_request_t *pp;
-   u16 capability;
 
DPRINTK(3, "\n");
 
@@ -1398,21 +1415,10 @@ void hostif_ps_adhoc_set_request(struct ks_wlan_private 
*priv)
pp->scan_type = cpu_to_le16((uint16_t)(priv->reg.scan_type));
pp->channel = cpu_to_le16((uint16_t)(priv->reg.channel));
pp->rate_set.size = priv->reg.rate_set.size;
+   pp->capability = ks_wlan_cap(priv);
memcpy(>rate_set.body[0], >reg.rate_set.body[0],
   priv->reg.rate_set.size);
 
-   capability = 0x;
-   if (priv->reg.preamble == SHORT_PREAMBLE) {
-   /* short preamble */
-   capability |= BSS_CAP_SHORT_PREAMBLE;
-   }
-   capability &= ~(BSS_CAP_PBCC);  /* pbcc not support */
-   if (priv->reg.phy_type != D_11B_ONLY_MODE) {
-   capability |= BSS_CAP_SHORT_SLOT_TIME;  /* ShortSlotTime 
support */
-   capability &= ~(BSS_CAP_DSSS_OFDM); /* DSSS OFDM */
-   }
-   pp->capability = cpu_to_le16((uint16_t)capability);
-
/* send to device request */
ps_confirm_wait_inc(priv);
ks_wlan_hw_tx(priv, pp, hif_align_size(sizeof(*pp)), NULL, NULL);
@@ -1422,7 +1428,6 @@ static
 void hostif_infrastructure_set_request(struct ks_wlan_private *priv)
 {
struct hostif_infrastructure_set_request_t *pp;
-   u16 capability;
 
DPRINTK(3, "ssid.size=%d\n", priv->reg.ssid.size);
 
@@ -1439,18 +1444,7 @@ void hostif_infrastructure_set_request(struct 
ks_wlan_private *priv)
   priv->reg.rate_set.size);
pp->ssid.size = priv->reg.ssid.size;
memcpy(>ssid.body[0], >reg.ssid.body[0], priv->reg.ssid.size);
-
-   capability = 0x;
-   if (priv->reg.preamble == SHORT_PREAMBLE) {
-   /* short preamble */
-   capability |= BSS_CAP_SHORT_PREAMBLE;
-   }
-   capability &= ~(BSS_CAP_PBCC);  /* pbcc not support */
-   if (priv->reg.phy_type != D_11B_ONLY_MODE) {
-   capability |= BSS_CAP_SHORT_SLOT_TIME;  /* ShortSlotTime 
support */
-   capability &= ~(BSS_CAP_DSSS_OFDM); /* DSSS OFDM not 
support */
-   }
-   pp->capability = cpu_to_le16((uint16_t)capability);
+   pp->capability = ks_wlan_cap(priv);
pp->beacon_lost_count =
cpu_to_le16((uint16_t)(priv->reg.beacon_lost_count));
pp->auth_type = cpu_to_le16((uint16_t)(priv->reg.authenticate_type));
@@ -1483,7 +1477,6 @@ void hostif_infrastructure_set_request(struct 
ks_wlan_private *priv)
 static void hostif_infrastructure_set2_request(struct ks_wlan_private *priv)
 {
struct hostif_infrastructure_set2_request_t *pp;
-   u16 capability;
 
DPRINTK(2, "ssid.size=%d\n", priv->reg.ssid.size);
 
@@ -1500,18 +1493,7 @@ static void hostif_infrastructure_set2_request(struct 
ks_wlan_private *priv)
   priv->reg.rate_set.size);
pp->ssid.size = priv->reg.ssid.size;
memcpy(>ssid.body[0], >reg.ssid.body[0], priv->reg.ssid.size);
-
-   capability = 0x;
-   if (priv->reg.preamble == SHORT_PREAMBLE) {
-   /* short preamble */
-   capability |= BSS_CAP_SHORT_PREAMBLE;
-   }
-   capability &= ~(BSS_CAP_PBCC);  /* pbcc not support */
-   if (priv->reg.phy_type != D_11B_ONLY_MODE) {
-   capability |= BSS_CAP_SHORT_SLOT_TIME;  /* ShortSlotTime 
support */
-   capability &= ~(BSS_CAP_DSSS_OFDM); /* DSSS OFDM not 
support 

Re: [PATCH v2] Staging: bcm2048: Fix function argument alignment in radio-bcm2048.c.

2018-02-26 Thread Quytelda Kahja
Hans,

Thank you very much for your input on the patch; however this patch
has already been applied to the staging tree.  Additionally:

> What coding style problem? You should give a short description of
> what you are fixing.
The subject of the patch (which becomes the subject of the email when
using `git format-patch`) describes the change more fully: "Staging:
bcm2048: Fix function argument alignment in radio-bcm2048.c".  It's a
really trivial patch, so there's not too much to say.  That extra
comment is just redundant, I suppose.

> Just drop this change: it will replace one warning (non-aligned) with
> another (> 80 cols).
Breaking the 80 character line limit is arguably excusable for this
code because of the 36 character function name and 30 character
constant name; additionally, it has been said that the 80 character
line limit will probably be increased in the future since we run
modern machines that aren't limited to 80 character terminals anymore,
so this warning may soon be irrelevant anyway.

Thank you,
Quytelda Kahja

On Mon, Feb 26, 2018 at 5:51 AM, Hans Verkuil <hverk...@xs4all.nl> wrote:
> On 02/20/2018 07:53 AM, Quytelda Kahja wrote:
>> Fix a coding style problem.
>
> What coding style problem? You should give a short description of
> what you are fixing.
>
>>
>> Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
>> ---
>> This is the patch without the unnecessary fixes for line length.
>>
>>  drivers/staging/media/bcm2048/radio-bcm2048.c | 22 +++---
>>  1 file changed, 11 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/staging/media/bcm2048/radio-bcm2048.c 
>> b/drivers/staging/media/bcm2048/radio-bcm2048.c
>> index 06d1920150da..f38a4f2acdde 100644
>> --- a/drivers/staging/media/bcm2048/radio-bcm2048.c
>> +++ b/drivers/staging/media/bcm2048/radio-bcm2048.c
>> @@ -1864,7 +1864,7 @@ static int bcm2048_probe(struct bcm2048_device *bdev)
>>   goto unlock;
>>
>>   err = bcm2048_set_fm_search_rssi_threshold(bdev,
>> - BCM2048_DEFAULT_RSSI_THRESHOLD);
>> +
>> BCM2048_DEFAULT_RSSI_THRESHOLD);
>>   if (err < 0)
>>   goto unlock;
>>
>
> Just drop this change: it will replace one warning (non-aligned) with
> another (> 80 cols).
>
> This code is fine as it is.
>
> Regards,
>
> Hans
>
>> @@ -1942,9 +1942,9 @@ static irqreturn_t bcm2048_handler(int irq, void *dev)
>>   */
>>  #define property_write(prop, type, mask, check) 
>>  \
>>  static ssize_t bcm2048_##prop##_write(struct device *dev,\
>> - struct device_attribute *attr,  \
>> - const char *buf,\
>> - size_t count)   \
>> +   struct device_attribute *attr,\
>> +   const char *buf,  \
>> +   size_t count) \
>>  {\
>>   struct bcm2048_device *bdev = dev_get_drvdata(dev); \
>>   type value; \
>> @@ -1966,8 +1966,8 @@ static ssize_t bcm2048_##prop##_write(struct device 
>> *dev,   \
>>
>>  #define property_read(prop, mask)\
>>  static ssize_t bcm2048_##prop##_read(struct device *dev, \
>> - struct device_attribute *attr,  \
>> - char *buf)  \
>> +  struct device_attribute *attr, \
>> +  char *buf) \
>>  {\
>>   struct bcm2048_device *bdev = dev_get_drvdata(dev); \
>>   int value;  \
>> @@ -1985,8 +1985,8 @@ static ssize_t bcm2048_##prop##_read(struct device 
>> *dev,\
>>
>>  #define property_signed_read(prop, size, mask)  
>>  \
>>  static ssize_t bcm2048_##prop##_read(struct device *dev, \
>> - struct device_attribute *attr,  \
>> - char *buf)

[PATCH 1/4] staging: most: Fix coding style problems.

2018-02-24 Thread Quytelda Kahja
Makes two very minor changes indicated by checkpatch:
1) Add a newline after components_show() definition.
2) Fix a line over the 80 character limit.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index 3dda8d81bf0b..18157dd80324 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -583,6 +583,7 @@ static ssize_t components_show(struct device_driver *drv, 
char *buf)
}
return offs;
 }
+
 /**
  * split_string - parses buf and extracts ':' separated substrings.
  *
@@ -1474,7 +1475,9 @@ void most_deregister_interface(struct most_interface 
*iface)
int i;
struct most_channel *c;
 
-   pr_info("deregistering device %s (%s)\n", dev_name(>dev), 
iface->description);
+   pr_info("deregistering device %s (%s)\n",
+   dev_name(>dev),
+   iface->description);
for (i = 0; i < iface->num_channels; i++) {
c = iface->p->channel[i];
if (c->pipe0.comp)
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/4] staging: most: Replace calls to BUG_ON() with WARN_ONCE() and return.

2018-02-24 Thread Quytelda Kahja
Replace calls to BUG_ON() used to check for NULL pointers with WARN_ONCE()
followed by a return.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.c | 13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index 18157dd80324..3f65390a6e17 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -916,7 +916,11 @@ static void arm_mbo(struct mbo *mbo)
unsigned long flags;
struct most_channel *c;
 
-   BUG_ON((!mbo) || (!mbo->context));
+   if (WARN_ONCE(!mbo || !mbo->context,
+ "Bad mbo or missing channel reference.\n")) {
+   return;
+   }
+
c = mbo->context;
 
if (c->is_poisoned) {
@@ -1001,7 +1005,7 @@ static int arm_mbo_chain(struct most_channel *c, int dir,
 void most_submit_mbo(struct mbo *mbo)
 {
if (WARN_ONCE(!mbo || !mbo->context,
- "bad mbo or missing channel reference\n"))
+ "Bad mbo or missing channel reference.\n"))
return;
 
nq_hdm_mbo(mbo);
@@ -1019,7 +1023,10 @@ static void most_write_completion(struct mbo *mbo)
 {
struct most_channel *c;
 
-   BUG_ON((!mbo) || (!mbo->context));
+   if (WARN_ONCE(!mbo || !mbo->context,
+ "Bad mbo or missing channel reference.\n")) {
+   return;
+   }
 
c = mbo->context;
if (mbo->status == MBO_E_INVAL)
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 3/4] staging: most: Remove unnecessary OOM messages.

2018-02-24 Thread Quytelda Kahja
It isn't necessary for the driver to log out-of-memory errors, so
these have been removed and the functions simply return -ENOMEM.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index 3f65390a6e17..b8792d70db8b 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -1210,7 +1210,6 @@ int most_start_channel(struct most_interface *iface, int 
id,
num_buffer = arm_mbo_chain(c, c->cfg.direction,
   most_write_completion);
if (unlikely(!num_buffer)) {
-   pr_info("failed to allocate memory\n");
ret = -ENOMEM;
goto error;
}
@@ -1389,7 +1388,6 @@ int most_register_interface(struct most_interface *iface)
 
iface->p = kzalloc(sizeof(*iface->p), GFP_KERNEL);
if (!iface->p) {
-   pr_info("Failed to allocate interface instance\n");
ida_simple_remove(_id, id);
return -ENOMEM;
}
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 4/4] staging: most: Fix missing identifier in function definition argument.

2018-02-24 Thread Quytelda Kahja
The function pointer 'complete' in 'struct mbo' should use an identifier
for its argument.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/most/core.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/most/core.h b/drivers/staging/most/core.h
index 74a29163b68a..884bd71fafce 100644
--- a/drivers/staging/most/core.h
+++ b/drivers/staging/most/core.h
@@ -184,7 +184,7 @@ struct mbo {
u16 buffer_length;
u16 processed_length;
enum mbo_status_flags status;
-   void (*complete)(struct mbo *);
+   void (*complete)(struct mbo *mbo);
 };
 
 /**
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/4] Staging: gdm724x: hci: Changed camel-case to snake-case.

2018-02-22 Thread Quytelda Kahja
Changed a variable name from camel to snake case to fix a coding style
issue.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/hci_packet.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/gdm724x/hci_packet.h 
b/drivers/staging/gdm724x/hci_packet.h
index 22ce8b9477b6..f8837c7103ac 100644
--- a/drivers/staging/gdm724x/hci_packet.h
+++ b/drivers/staging/gdm724x/hci_packet.h
@@ -50,7 +50,7 @@ struct tlv {
 struct sdu_header {
__dev16 cmd_evt;
__dev16 len;
-   __dev32 dftEpsId;
+   __dev32 dft_eps_ID;
__dev32 bearer_ID;
__dev32 nic_type;
 } __packed;
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 4/4] Staging: gdm724x: LTE: Refactor gdm_lte_pdn_table().

2018-02-22 Thread Quytelda Kahja
Mostly this change just reverses the primary conditional so most of
the code can be pulled back a tab, which fixes some code style
warnings.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_lte.c | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_lte.c 
b/drivers/staging/gdm724x/gdm_lte.c
index 92cb9d115fe3..4f3c518304f2 100644
--- a/drivers/staging/gdm724x/gdm_lte.c
+++ b/drivers/staging/gdm724x/gdm_lte.c
@@ -730,21 +730,21 @@ static void gdm_lte_pdn_table(struct net_device *dev, 
char *buf, int len)
 {
struct nic *nic = netdev_priv(dev);
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
-   u8 ed;
+   u8 ed = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
 
-   if (pdn_table->activate) {
-   nic->pdn_table.activate = pdn_table->activate;
-
-   ed = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
-   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(ed, 
pdn_table->dft_eps_id);
-   nic->pdn_table.nic_type = gdm_dev32_to_cpu(ed, 
pdn_table->nic_type);
-
-   netdev_info(dev, "pdn activated, nic_type=0x%x\n",
-   nic->pdn_table.nic_type);
-   } else {
+   if (!pdn_table->activate) {
memset(>pdn_table, 0x00, sizeof(struct pdn_table));
netdev_info(dev, "pdn deactivated\n");
+
+   return;
}
+
+   nic->pdn_table.activate = pdn_table->activate;
+   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(ed, pdn_table->dft_eps_id);
+   nic->pdn_table.nic_type = gdm_dev32_to_cpu(ed, pdn_table->nic_type);
+
+   netdev_info(dev, "pdn activated, nic_type=0x%x\n",
+   nic->pdn_table.nic_type);
 }
 
 static int gdm_lte_receive_pkt(struct phy_dev *phy_dev, char *buf, int len)
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 3/4] Staging: gdm724x: Simplify the struct gdm_endian to a variable.

2018-02-22 Thread Quytelda Kahja
Since the testing for host endianness and in-driver conversion were
removed in 77e8a50149a2, the gdm_endian struct contains only one member,
and can therefore be simplified to a single u8 variable.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_endian.c | 24 
 drivers/staging/gdm724x/gdm_endian.h | 13 -
 drivers/staging/gdm724x/gdm_lte.c|  7 +++
 drivers/staging/gdm724x/gdm_lte.h|  2 +-
 drivers/staging/gdm724x/gdm_usb.c| 30 +++---
 drivers/staging/gdm724x/gdm_usb.h|  2 +-
 6 files changed, 32 insertions(+), 46 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_endian.c 
b/drivers/staging/gdm724x/gdm_endian.c
index d0b43e20ec06..4200391b1a97 100644
--- a/drivers/staging/gdm724x/gdm_endian.c
+++ b/drivers/staging/gdm724x/gdm_endian.c
@@ -14,41 +14,33 @@
 #include 
 #include "gdm_endian.h"
 
-void gdm_set_endian(struct gdm_endian *ed, u8 dev_endian)
+__dev16 gdm_cpu_to_dev16(u8 dev_ed, u16 x)
 {
-   if (dev_endian == ENDIANNESS_BIG)
-   ed->dev_ed = ENDIANNESS_BIG;
-   else
-   ed->dev_ed = ENDIANNESS_LITTLE;
-}
-
-__dev16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x)
-{
-   if (ed->dev_ed == ENDIANNESS_LITTLE)
+   if (dev_ed == ENDIANNESS_LITTLE)
return (__force __dev16)cpu_to_le16(x);
else
return (__force __dev16)cpu_to_be16(x);
 }
 
-u16 gdm_dev16_to_cpu(struct gdm_endian *ed, __dev16 x)
+u16 gdm_dev16_to_cpu(u8 dev_ed, __dev16 x)
 {
-   if (ed->dev_ed == ENDIANNESS_LITTLE)
+   if (dev_ed == ENDIANNESS_LITTLE)
return le16_to_cpu((__force __le16)x);
else
return be16_to_cpu((__force __be16)x);
 }
 
-__dev32 gdm_cpu_to_dev32(struct gdm_endian *ed, u32 x)
+__dev32 gdm_cpu_to_dev32(u8 dev_ed, u32 x)
 {
-   if (ed->dev_ed == ENDIANNESS_LITTLE)
+   if (dev_ed == ENDIANNESS_LITTLE)
return (__force __dev32)cpu_to_le32(x);
else
return (__force __dev32)cpu_to_be32(x);
 }
 
-u32 gdm_dev32_to_cpu(struct gdm_endian *ed, __dev32 x)
+u32 gdm_dev32_to_cpu(u8 dev_ed, __dev32 x)
 {
-   if (ed->dev_ed == ENDIANNESS_LITTLE)
+   if (dev_ed == ENDIANNESS_LITTLE)
return le32_to_cpu((__force __le32)x);
else
return be32_to_cpu((__force __be32)x);
diff --git a/drivers/staging/gdm724x/gdm_endian.h 
b/drivers/staging/gdm724x/gdm_endian.h
index a785f30bb369..e58d29f868ba 100644
--- a/drivers/staging/gdm724x/gdm_endian.h
+++ b/drivers/staging/gdm724x/gdm_endian.h
@@ -32,14 +32,9 @@ enum {
ENDIANNESS_MAX
 };
 
-struct gdm_endian {
-   u8 dev_ed;
-};
-
-void gdm_set_endian(struct gdm_endian *ed, u8 dev_endian);
-__dev16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x);
-u16 gdm_dev16_to_cpu(struct gdm_endian *ed, __dev16 x);
-__dev32 gdm_cpu_to_dev32(struct gdm_endian *ed, u32 x);
-u32 gdm_dev32_to_cpu(struct gdm_endian *ed, __dev32 x);
+__dev16 gdm_cpu_to_dev16(u8 dev_ed, u16 x);
+u16 gdm_dev16_to_cpu(u8 dev_ed, __dev16 x);
+__dev32 gdm_cpu_to_dev32(u8 dev_ed, u32 x);
+u32 gdm_dev32_to_cpu(u8 dev_ed, __dev32 x);
 
 #endif /*__GDM_ENDIAN_H__*/
diff --git a/drivers/staging/gdm724x/gdm_lte.c 
b/drivers/staging/gdm724x/gdm_lte.c
index 8d492d6d6a12..92cb9d115fe3 100644
--- a/drivers/staging/gdm724x/gdm_lte.c
+++ b/drivers/staging/gdm724x/gdm_lte.c
@@ -685,7 +685,7 @@ static void gdm_lte_multi_sdu_pkt(struct phy_dev *phy_dev, 
char *buf, int len)
struct net_device *dev;
struct multi_sdu *multi_sdu = (struct multi_sdu *)buf;
struct sdu *sdu = NULL;
-   struct gdm_endian *endian = phy_dev->get_endian(phy_dev->priv_dev);
+   u8 endian = phy_dev->get_endian(phy_dev->priv_dev);
u8 *data = (u8 *)multi_sdu->data;
u16 i = 0;
u16 num_packet;
@@ -730,10 +730,9 @@ static void gdm_lte_pdn_table(struct net_device *dev, char 
*buf, int len)
 {
struct nic *nic = netdev_priv(dev);
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
+   u8 ed;
 
if (pdn_table->activate) {
-   struct gdm_endian *ed;
-
nic->pdn_table.activate = pdn_table->activate;
 
ed = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
@@ -752,9 +751,9 @@ static int gdm_lte_receive_pkt(struct phy_dev *phy_dev, 
char *buf, int len)
 {
struct hci_packet *hci = (struct hci_packet *)buf;
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
-   struct gdm_endian *endian = phy_dev->get_endian(phy_dev->priv_dev);
struct sdu *sdu;
struct net_device *dev;
+   u8 endian = phy_dev->get_endian(phy_dev->priv_dev);
int ret = 0;
u16 cmd_evt;
u32 nic_type;
diff --git a/drivers/staging/gdm724x/gdm_lte.h 
b/drivers/staging/gdm724x/gdm_lte.h
index 3ecaf

[PATCH 1/4] Staging: gdm724x: LTE: Fix trailing open parentheses.

2018-02-22 Thread Quytelda Kahja
Fix lines with a trailing open parenthesis, which is a coding style issue.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_lte.c | 44 +++
 1 file changed, 21 insertions(+), 23 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_lte.c 
b/drivers/staging/gdm724x/gdm_lte.c
index a6608637035a..8d492d6d6a12 100644
--- a/drivers/staging/gdm724x/gdm_lte.c
+++ b/drivers/staging/gdm724x/gdm_lte.c
@@ -185,6 +185,7 @@ static __sum16 icmp6_checksum(struct ipv6hdr *ipv6, u16 
*ptr, int len)
unsigned short *w = ptr;
__wsum sum = 0;
int i;
+   u16 pa;
 
union {
struct {
@@ -204,9 +205,10 @@ static __sum16 icmp6_checksum(struct ipv6hdr *ipv6, u16 
*ptr, int len)
pseudo_header.ph.ph_nxt = ipv6->nexthdr;
 
w = (u16 *)_header;
-   for (i = 0; i < ARRAY_SIZE(pseudo_header.pa); i++)
-   sum = csum_add(sum, csum_unfold(
-   (__force __sum16)pseudo_header.pa[i]));
+   for (i = 0; i < ARRAY_SIZE(pseudo_header.pa); i++) {
+   pa = pseudo_header.pa[i];
+   sum = csum_add(sum, csum_unfold((__force __sum16)pa));
+   }
 
w = ptr;
while (len > 1) {
@@ -509,8 +511,9 @@ static struct net_device_stats *gdm_lte_stats(struct 
net_device *dev)
 
 static int gdm_lte_event_send(struct net_device *dev, char *buf, int len)
 {
-   struct nic *nic = netdev_priv(dev);
+   struct phy_dev *phy_dev = ((struct nic *)netdev_priv(dev))->phy_dev;
struct hci_packet *hci = (struct hci_packet *)buf;
+   int length;
int idx;
int ret;
 
@@ -518,11 +521,9 @@ static int gdm_lte_event_send(struct net_device *dev, char 
*buf, int len)
if (ret != 1)
return -EINVAL;
 
-   return netlink_send(lte_event.sock, idx, 0, buf,
-   gdm_dev16_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev), hci->len)
-   + HCI_HEADER_SIZE);
+   length = gdm_dev16_to_cpu(phy_dev->get_endian(phy_dev->priv_dev),
+ hci->len) + HCI_HEADER_SIZE;
+   return netlink_send(lte_event.sock, idx, 0, buf, length);
 }
 
 static void gdm_lte_event_rcv(struct net_device *dev, u16 type,
@@ -731,15 +732,13 @@ static void gdm_lte_pdn_table(struct net_device *dev, 
char *buf, int len)
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
 
if (pdn_table->activate) {
+   struct gdm_endian *ed;
+
nic->pdn_table.activate = pdn_table->activate;
-   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev),
-   pdn_table->dft_eps_id);
-   nic->pdn_table.nic_type = gdm_dev32_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev),
-   pdn_table->nic_type);
+
+   ed = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
+   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(ed, 
pdn_table->dft_eps_id);
+   nic->pdn_table.nic_type = gdm_dev32_to_cpu(ed, 
pdn_table->nic_type);
 
netdev_info(dev, "pdn activated, nic_type=0x%x\n",
nic->pdn_table.nic_type);
@@ -897,12 +896,11 @@ int register_lte_device(struct phy_dev *phy_dev,
nic->phy_dev = phy_dev;
nic->nic_id = index;
 
-   form_mac_address(
-   net->dev_addr,
-   nic->src_mac_addr,
-   nic->dest_mac_addr,
-   mac_address,
-   index);
+   form_mac_address(net->dev_addr,
+nic->src_mac_addr,
+nic->dest_mac_addr,
+mac_address,
+index);
 
SET_NETDEV_DEV(net, dev);
SET_NETDEV_DEVTYPE(net, _type);
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 1/2] Staging: gdm724x: Simplify the struct gdm_endian to a variable.

2018-02-22 Thread Quytelda Kahja
Sorry, it depends on the several patches I submitted earlier in that
email thread, since they were in response to several suggestions for
earlier patches.  I will resend all of the patches in that thread as a
consecutive patch series in response to this email to minimize
confusion.

Thank you,
Quytelda Kahja

On Thu, Feb 22, 2018 at 6:02 AM, Greg KH <gre...@linuxfoundation.org> wrote:
> On Wed, Feb 21, 2018 at 05:12:36AM -0800, Quytelda Kahja wrote:
>> Since the testing for host endianness and in-driver conversion were
>> removed in 77e8a50149a2, the gdm_endian struct contains only one member,
>> and can therefore be simplified to a single u8 variable.
>>
>> Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
>
> This patch series does not apply to my tree :(
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/2] Staging: gdm724x: LTE: Refactor gdm_lte_pdn_table().

2018-02-21 Thread Quytelda Kahja
Mostly this change just reverses the primary conditional so most of
the code can be pulled back a tab, which fixes some code style
warnings.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_lte.c | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_lte.c 
b/drivers/staging/gdm724x/gdm_lte.c
index 92cb9d115fe3..4f3c518304f2 100644
--- a/drivers/staging/gdm724x/gdm_lte.c
+++ b/drivers/staging/gdm724x/gdm_lte.c
@@ -730,21 +730,21 @@ static void gdm_lte_pdn_table(struct net_device *dev, 
char *buf, int len)
 {
struct nic *nic = netdev_priv(dev);
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
-   u8 ed;
+   u8 ed = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
 
-   if (pdn_table->activate) {
-   nic->pdn_table.activate = pdn_table->activate;
-
-   ed = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
-   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(ed, 
pdn_table->dft_eps_id);
-   nic->pdn_table.nic_type = gdm_dev32_to_cpu(ed, 
pdn_table->nic_type);
-
-   netdev_info(dev, "pdn activated, nic_type=0x%x\n",
-   nic->pdn_table.nic_type);
-   } else {
+   if (!pdn_table->activate) {
memset(>pdn_table, 0x00, sizeof(struct pdn_table));
netdev_info(dev, "pdn deactivated\n");
+
+   return;
}
+
+   nic->pdn_table.activate = pdn_table->activate;
+   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(ed, pdn_table->dft_eps_id);
+   nic->pdn_table.nic_type = gdm_dev32_to_cpu(ed, pdn_table->nic_type);
+
+   netdev_info(dev, "pdn activated, nic_type=0x%x\n",
+   nic->pdn_table.nic_type);
 }
 
 static int gdm_lte_receive_pkt(struct phy_dev *phy_dev, char *buf, int len)
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/2] Staging: gdm724x: Simplify the struct gdm_endian to a variable.

2018-02-21 Thread Quytelda Kahja
Since the testing for host endianness and in-driver conversion were
removed in 77e8a50149a2, the gdm_endian struct contains only one member,
and can therefore be simplified to a single u8 variable.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_endian.c | 24 
 drivers/staging/gdm724x/gdm_endian.h | 13 -
 drivers/staging/gdm724x/gdm_lte.c|  7 +++
 drivers/staging/gdm724x/gdm_lte.h|  2 +-
 drivers/staging/gdm724x/gdm_usb.c| 30 +++---
 drivers/staging/gdm724x/gdm_usb.h|  2 +-
 6 files changed, 32 insertions(+), 46 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_endian.c 
b/drivers/staging/gdm724x/gdm_endian.c
index d0b43e20ec06..4200391b1a97 100644
--- a/drivers/staging/gdm724x/gdm_endian.c
+++ b/drivers/staging/gdm724x/gdm_endian.c
@@ -14,41 +14,33 @@
 #include 
 #include "gdm_endian.h"
 
-void gdm_set_endian(struct gdm_endian *ed, u8 dev_endian)
+__dev16 gdm_cpu_to_dev16(u8 dev_ed, u16 x)
 {
-   if (dev_endian == ENDIANNESS_BIG)
-   ed->dev_ed = ENDIANNESS_BIG;
-   else
-   ed->dev_ed = ENDIANNESS_LITTLE;
-}
-
-__dev16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x)
-{
-   if (ed->dev_ed == ENDIANNESS_LITTLE)
+   if (dev_ed == ENDIANNESS_LITTLE)
return (__force __dev16)cpu_to_le16(x);
else
return (__force __dev16)cpu_to_be16(x);
 }
 
-u16 gdm_dev16_to_cpu(struct gdm_endian *ed, __dev16 x)
+u16 gdm_dev16_to_cpu(u8 dev_ed, __dev16 x)
 {
-   if (ed->dev_ed == ENDIANNESS_LITTLE)
+   if (dev_ed == ENDIANNESS_LITTLE)
return le16_to_cpu((__force __le16)x);
else
return be16_to_cpu((__force __be16)x);
 }
 
-__dev32 gdm_cpu_to_dev32(struct gdm_endian *ed, u32 x)
+__dev32 gdm_cpu_to_dev32(u8 dev_ed, u32 x)
 {
-   if (ed->dev_ed == ENDIANNESS_LITTLE)
+   if (dev_ed == ENDIANNESS_LITTLE)
return (__force __dev32)cpu_to_le32(x);
else
return (__force __dev32)cpu_to_be32(x);
 }
 
-u32 gdm_dev32_to_cpu(struct gdm_endian *ed, __dev32 x)
+u32 gdm_dev32_to_cpu(u8 dev_ed, __dev32 x)
 {
-   if (ed->dev_ed == ENDIANNESS_LITTLE)
+   if (dev_ed == ENDIANNESS_LITTLE)
return le32_to_cpu((__force __le32)x);
else
return be32_to_cpu((__force __be32)x);
diff --git a/drivers/staging/gdm724x/gdm_endian.h 
b/drivers/staging/gdm724x/gdm_endian.h
index a785f30bb369..e58d29f868ba 100644
--- a/drivers/staging/gdm724x/gdm_endian.h
+++ b/drivers/staging/gdm724x/gdm_endian.h
@@ -32,14 +32,9 @@ enum {
ENDIANNESS_MAX
 };
 
-struct gdm_endian {
-   u8 dev_ed;
-};
-
-void gdm_set_endian(struct gdm_endian *ed, u8 dev_endian);
-__dev16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x);
-u16 gdm_dev16_to_cpu(struct gdm_endian *ed, __dev16 x);
-__dev32 gdm_cpu_to_dev32(struct gdm_endian *ed, u32 x);
-u32 gdm_dev32_to_cpu(struct gdm_endian *ed, __dev32 x);
+__dev16 gdm_cpu_to_dev16(u8 dev_ed, u16 x);
+u16 gdm_dev16_to_cpu(u8 dev_ed, __dev16 x);
+__dev32 gdm_cpu_to_dev32(u8 dev_ed, u32 x);
+u32 gdm_dev32_to_cpu(u8 dev_ed, __dev32 x);
 
 #endif /*__GDM_ENDIAN_H__*/
diff --git a/drivers/staging/gdm724x/gdm_lte.c 
b/drivers/staging/gdm724x/gdm_lte.c
index 8d492d6d6a12..92cb9d115fe3 100644
--- a/drivers/staging/gdm724x/gdm_lte.c
+++ b/drivers/staging/gdm724x/gdm_lte.c
@@ -685,7 +685,7 @@ static void gdm_lte_multi_sdu_pkt(struct phy_dev *phy_dev, 
char *buf, int len)
struct net_device *dev;
struct multi_sdu *multi_sdu = (struct multi_sdu *)buf;
struct sdu *sdu = NULL;
-   struct gdm_endian *endian = phy_dev->get_endian(phy_dev->priv_dev);
+   u8 endian = phy_dev->get_endian(phy_dev->priv_dev);
u8 *data = (u8 *)multi_sdu->data;
u16 i = 0;
u16 num_packet;
@@ -730,10 +730,9 @@ static void gdm_lte_pdn_table(struct net_device *dev, char 
*buf, int len)
 {
struct nic *nic = netdev_priv(dev);
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
+   u8 ed;
 
if (pdn_table->activate) {
-   struct gdm_endian *ed;
-
nic->pdn_table.activate = pdn_table->activate;
 
ed = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
@@ -752,9 +751,9 @@ static int gdm_lte_receive_pkt(struct phy_dev *phy_dev, 
char *buf, int len)
 {
struct hci_packet *hci = (struct hci_packet *)buf;
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
-   struct gdm_endian *endian = phy_dev->get_endian(phy_dev->priv_dev);
struct sdu *sdu;
struct net_device *dev;
+   u8 endian = phy_dev->get_endian(phy_dev->priv_dev);
int ret = 0;
u16 cmd_evt;
u32 nic_type;
diff --git a/drivers/staging/gdm724x/gdm_lte.h 
b/drivers/staging/gdm724x/gdm_lte.h
index 3ecaf

Re: [PATCH] Staging: gdm724x: hci: Changed camel-case to snake-case.

2018-02-21 Thread Quytelda Kahja
That could be the case, though I'm not sure where to find any specs.
Though looking through the history of this driver, it seems that some
of the variable names have been slowly changing from camel case to
snake case.

Thanks,
Quytelda Kahja

On Wed, Feb 21, 2018 at 2:45 AM, Dan Carpenter <dan.carpen...@oracle.com> wrote:
> On Wed, Feb 21, 2018 at 02:39:28AM -0800, Quytelda Kahja wrote:
>> Changed a variable name from camel to snake case to fix a coding style
>> issue.
>>
>> Signed-off-by: Quytelda Kahja <quyte...@gmail.com>
>> ---
>>  drivers/staging/gdm724x/hci_packet.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/gdm724x/hci_packet.h 
>> b/drivers/staging/gdm724x/hci_packet.h
>> index 22ce8b9477b6..f8837c7103ac 100644
>> --- a/drivers/staging/gdm724x/hci_packet.h
>> +++ b/drivers/staging/gdm724x/hci_packet.h
>> @@ -50,7 +50,7 @@ struct tlv {
>>  struct sdu_header {
>>   __dev16 cmd_evt;
>>   __dev16 len;
>> - __dev32 dftEpsId;
>> + __dev32 dft_eps_ID;
>
> I bet this is a part of the user space ABI or there is a specific reason
> for the name to match the spec or something so it can't be changed...
>
> regards,
> dan carpenter
>
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: gdm724x: hci: Changed camel-case to snake-case.

2018-02-21 Thread Quytelda Kahja
Changed a variable name from camel to snake case to fix a coding style
issue.

Signed-off-by: Quytelda Kahja <quyte...@gmail.com>
---
 drivers/staging/gdm724x/hci_packet.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/gdm724x/hci_packet.h 
b/drivers/staging/gdm724x/hci_packet.h
index 22ce8b9477b6..f8837c7103ac 100644
--- a/drivers/staging/gdm724x/hci_packet.h
+++ b/drivers/staging/gdm724x/hci_packet.h
@@ -50,7 +50,7 @@ struct tlv {
 struct sdu_header {
__dev16 cmd_evt;
__dev16 len;
-   __dev32 dftEpsId;
+   __dev32 dft_eps_ID;
__dev32 bearer_ID;
__dev32 nic_type;
 } __packed;
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: gdm724x: LTE: Fix trailing open parentheses.

2018-02-21 Thread Quytelda Kahja
Fix lines with a trailing open parenthesis, which is a coding style issue.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_lte.c | 44 +++
 1 file changed, 21 insertions(+), 23 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_lte.c 
b/drivers/staging/gdm724x/gdm_lte.c
index a6608637035a..8d492d6d6a12 100644
--- a/drivers/staging/gdm724x/gdm_lte.c
+++ b/drivers/staging/gdm724x/gdm_lte.c
@@ -185,6 +185,7 @@ static __sum16 icmp6_checksum(struct ipv6hdr *ipv6, u16 
*ptr, int len)
unsigned short *w = ptr;
__wsum sum = 0;
int i;
+   u16 pa;
 
union {
struct {
@@ -204,9 +205,10 @@ static __sum16 icmp6_checksum(struct ipv6hdr *ipv6, u16 
*ptr, int len)
pseudo_header.ph.ph_nxt = ipv6->nexthdr;
 
w = (u16 *)_header;
-   for (i = 0; i < ARRAY_SIZE(pseudo_header.pa); i++)
-   sum = csum_add(sum, csum_unfold(
-   (__force __sum16)pseudo_header.pa[i]));
+   for (i = 0; i < ARRAY_SIZE(pseudo_header.pa); i++) {
+   pa = pseudo_header.pa[i];
+   sum = csum_add(sum, csum_unfold((__force __sum16)pa));
+   }
 
w = ptr;
while (len > 1) {
@@ -509,8 +511,9 @@ static struct net_device_stats *gdm_lte_stats(struct 
net_device *dev)
 
 static int gdm_lte_event_send(struct net_device *dev, char *buf, int len)
 {
-   struct nic *nic = netdev_priv(dev);
+   struct phy_dev *phy_dev = ((struct nic *)netdev_priv(dev))->phy_dev;
struct hci_packet *hci = (struct hci_packet *)buf;
+   int length;
int idx;
int ret;
 
@@ -518,11 +521,9 @@ static int gdm_lte_event_send(struct net_device *dev, char 
*buf, int len)
if (ret != 1)
return -EINVAL;
 
-   return netlink_send(lte_event.sock, idx, 0, buf,
-   gdm_dev16_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev), hci->len)
-   + HCI_HEADER_SIZE);
+   length = gdm_dev16_to_cpu(phy_dev->get_endian(phy_dev->priv_dev),
+ hci->len) + HCI_HEADER_SIZE;
+   return netlink_send(lte_event.sock, idx, 0, buf, length);
 }
 
 static void gdm_lte_event_rcv(struct net_device *dev, u16 type,
@@ -731,15 +732,13 @@ static void gdm_lte_pdn_table(struct net_device *dev, 
char *buf, int len)
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
 
if (pdn_table->activate) {
+   struct gdm_endian *ed;
+
nic->pdn_table.activate = pdn_table->activate;
-   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev),
-   pdn_table->dft_eps_id);
-   nic->pdn_table.nic_type = gdm_dev32_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev),
-   pdn_table->nic_type);
+
+   ed = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
+   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(ed, 
pdn_table->dft_eps_id);
+   nic->pdn_table.nic_type = gdm_dev32_to_cpu(ed, 
pdn_table->nic_type);
 
netdev_info(dev, "pdn activated, nic_type=0x%x\n",
nic->pdn_table.nic_type);
@@ -897,12 +896,11 @@ int register_lte_device(struct phy_dev *phy_dev,
nic->phy_dev = phy_dev;
nic->nic_id = index;
 
-   form_mac_address(
-   net->dev_addr,
-   nic->src_mac_addr,
-   nic->dest_mac_addr,
-   mac_address,
-   index);
+   form_mac_address(net->dev_addr,
+nic->src_mac_addr,
+nic->dest_mac_addr,
+mac_address,
+index);
 
SET_NETDEV_DEV(net, dev);
SET_NETDEV_DEVTYPE(net, _type);
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2] Staging: bcm2048: Fix function argument alignment in radio-bcm2048.c.

2018-02-19 Thread Quytelda Kahja
Fix a coding style problem.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
This is the patch without the unnecessary fixes for line length.

 drivers/staging/media/bcm2048/radio-bcm2048.c | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/media/bcm2048/radio-bcm2048.c 
b/drivers/staging/media/bcm2048/radio-bcm2048.c
index 06d1920150da..f38a4f2acdde 100644
--- a/drivers/staging/media/bcm2048/radio-bcm2048.c
+++ b/drivers/staging/media/bcm2048/radio-bcm2048.c
@@ -1864,7 +1864,7 @@ static int bcm2048_probe(struct bcm2048_device *bdev)
goto unlock;
 
err = bcm2048_set_fm_search_rssi_threshold(bdev,
-   BCM2048_DEFAULT_RSSI_THRESHOLD);
+  
BCM2048_DEFAULT_RSSI_THRESHOLD);
if (err < 0)
goto unlock;
 
@@ -1942,9 +1942,9 @@ static irqreturn_t bcm2048_handler(int irq, void *dev)
  */
 #define property_write(prop, type, mask, check)
\
 static ssize_t bcm2048_##prop##_write(struct device *dev,  \
-   struct device_attribute *attr,  \
-   const char *buf,\
-   size_t count)   \
+ struct device_attribute *attr,\
+ const char *buf,  \
+ size_t count) \
 {  \
struct bcm2048_device *bdev = dev_get_drvdata(dev); \
type value; \
@@ -1966,8 +1966,8 @@ static ssize_t bcm2048_##prop##_write(struct device *dev, 
\
 
 #define property_read(prop, mask)  \
 static ssize_t bcm2048_##prop##_read(struct device *dev,   \
-   struct device_attribute *attr,  \
-   char *buf)  \
+struct device_attribute *attr, \
+char *buf) \
 {  \
struct bcm2048_device *bdev = dev_get_drvdata(dev); \
int value;  \
@@ -1985,8 +1985,8 @@ static ssize_t bcm2048_##prop##_read(struct device *dev,  
\
 
 #define property_signed_read(prop, size, mask) \
 static ssize_t bcm2048_##prop##_read(struct device *dev,   \
-   struct device_attribute *attr,  \
-   char *buf)  \
+struct device_attribute *attr, \
+char *buf) \
 {  \
struct bcm2048_device *bdev = dev_get_drvdata(dev); \
size value; \
@@ -2005,8 +2005,8 @@ property_read(prop, mask) 
\
 
 #define property_str_read(prop, size)  \
 static ssize_t bcm2048_##prop##_read(struct device *dev,   \
-   struct device_attribute *attr,  \
-   char *buf)  \
+struct device_attribute *attr, \
+char *buf) \
 {  \
struct bcm2048_device *bdev = dev_get_drvdata(dev); \
int count;  \
@@ -2175,7 +2175,7 @@ static int bcm2048_fops_release(struct file *file)
 }
 
 static __poll_t bcm2048_fops_poll(struct file *file,
- struct poll_table_struct *pts)
+ struct poll_table_struct *pts)
 {
struct bcm2048_device *bdev = video_drvdata(file);
__poll_t retval = 0;
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 3/3] Staging: ks7010: hostif: Convert the ps_confirm_wait_inc() macro to a real function.

2018-02-19 Thread Quytelda Kahja
Convert the unsafe macro into an inline function.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index f554477fe6bc..74a08417bd0b 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -1308,11 +1308,11 @@ int hostif_data_request(struct ks_wlan_private *priv, 
struct sk_buff *skb)
return ret;
 }
 
-#define ps_confirm_wait_inc(priv)   \
-   do { \
-   if (atomic_read(>psstatus.status) > PS_ACTIVE_SET) \
-   atomic_inc(>psstatus.confirm_wait);\
-   } while (0)
+static inline void ps_confirm_wait_inc(struct ks_wlan_private *priv)
+{
+   if (atomic_read(>psstatus.status) > PS_ACTIVE_SET)
+   atomic_inc(>psstatus.confirm_wait);
+}
 
 static
 void hostif_mib_get_request(struct ks_wlan_private *priv,
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 2/3] Staging: ks7010: hostif: Convert SME queue macros to real functions.

2018-02-19 Thread Quytelda Kahja
Convert the unsafe macros into inline functions.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 23 ---
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 975dbbb3abd0..f554477fe6bc 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -21,13 +21,22 @@
 /* Include Wireless Extension definition and check version */
 #include /* New driver API */
 
-/* macro */
-#define inc_smeqhead(priv) \
-   (priv->sme_i.qhead = (priv->sme_i.qhead + 1) % SME_EVENT_BUFF_SIZE)
-#define inc_smeqtail(priv) \
-   (priv->sme_i.qtail = (priv->sme_i.qtail + 1) % SME_EVENT_BUFF_SIZE)
-#define cnt_smeqbody(priv) \
-   (((priv->sme_i.qtail + SME_EVENT_BUFF_SIZE) - (priv->sme_i.qhead)) % 
SME_EVENT_BUFF_SIZE)
+static inline void inc_smeqhead(struct ks_wlan_private *priv)
+{
+   priv->sme_i.qhead = (priv->sme_i.qhead + 1) % SME_EVENT_BUFF_SIZE;
+}
+
+static inline void inc_smeqtail(struct ks_wlan_private *priv)
+{
+   priv->sme_i.qtail = (priv->sme_i.qtail + 1) % SME_EVENT_BUFF_SIZE;
+}
+
+static inline unsigned int cnt_smeqbody(struct ks_wlan_private *priv)
+{
+   unsigned int sme_cnt = priv->sme_i.qtail - priv->sme_i.qhead;
+
+   return (sme_cnt + SME_EVENT_BUFF_SIZE) % SME_EVENT_BUFF_SIZE;
+}
 
 #define KS_WLAN_MEM_FLAG (GFP_ATOMIC)
 
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 1/3] Staging: ks7010: sdio: Convert RX/TX queue macros into real functions.

2018-02-19 Thread Quytelda Kahja
Convert the unsafe macros into inline functions.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks7010_sdio.c | 46 ++--
 1 file changed, 33 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/ks7010/ks7010_sdio.c 
b/drivers/staging/ks7010/ks7010_sdio.c
index 8cfdff198334..7de78d1758b8 100644
--- a/drivers/staging/ks7010/ks7010_sdio.c
+++ b/drivers/staging/ks7010/ks7010_sdio.c
@@ -32,19 +32,39 @@ static const struct sdio_device_id ks7010_sdio_ids[] = {
 };
 MODULE_DEVICE_TABLE(sdio, ks7010_sdio_ids);
 
-#define inc_txqhead(priv) \
-   (priv->tx_dev.qhead = (priv->tx_dev.qhead + 1) % TX_DEVICE_BUFF_SIZE)
-#define inc_txqtail(priv) \
-   (priv->tx_dev.qtail = (priv->tx_dev.qtail + 1) % TX_DEVICE_BUFF_SIZE)
-#define cnt_txqbody(priv) \
-   (((priv->tx_dev.qtail + TX_DEVICE_BUFF_SIZE) - (priv->tx_dev.qhead)) % 
TX_DEVICE_BUFF_SIZE)
-
-#define inc_rxqhead(priv) \
-   (priv->rx_dev.qhead = (priv->rx_dev.qhead + 1) % RX_DEVICE_BUFF_SIZE)
-#define inc_rxqtail(priv) \
-   (priv->rx_dev.qtail = (priv->rx_dev.qtail + 1) % RX_DEVICE_BUFF_SIZE)
-#define cnt_rxqbody(priv) \
-   (((priv->rx_dev.qtail + RX_DEVICE_BUFF_SIZE) - (priv->rx_dev.qhead)) % 
RX_DEVICE_BUFF_SIZE)
+static inline void inc_txqhead(struct ks_wlan_private *priv)
+{
+   priv->tx_dev.qhead = (priv->tx_dev.qhead + 1) % TX_DEVICE_BUFF_SIZE;
+}
+
+static inline void inc_txqtail(struct ks_wlan_private *priv)
+{
+   priv->tx_dev.qtail = (priv->tx_dev.qtail + 1) % TX_DEVICE_BUFF_SIZE;
+}
+
+static inline unsigned int cnt_txqbody(struct ks_wlan_private *priv)
+{
+   unsigned int tx_cnt = priv->tx_dev.qtail - priv->tx_dev.qhead;
+
+   return (tx_cnt + TX_DEVICE_BUFF_SIZE) % TX_DEVICE_BUFF_SIZE;
+}
+
+static inline void inc_rxqhead(struct ks_wlan_private *priv)
+{
+   priv->rx_dev.qhead = (priv->rx_dev.qhead + 1) % RX_DEVICE_BUFF_SIZE;
+}
+
+static inline void inc_rxqtail(struct ks_wlan_private *priv)
+{
+   priv->rx_dev.qtail = (priv->rx_dev.qtail + 1) % RX_DEVICE_BUFF_SIZE;
+}
+
+static inline unsigned int cnt_rxqbody(struct ks_wlan_private *priv)
+{
+   unsigned int rx_cnt = priv->rx_dev.qtail - priv->rx_dev.qhead;
+
+   return (rx_cnt + RX_DEVICE_BUFF_SIZE) % RX_DEVICE_BUFF_SIZE;
+}
 
 /* Read single byte from device address into byte (CMD52) */
 static int ks7010_sdio_readb(struct ks_wlan_private *priv, unsigned int 
address,
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: bcm2048: Fix function argument alignment in radio-bcm2048.c.

2018-02-18 Thread Quytelda Kahja
Fix a coding style problem.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/media/bcm2048/radio-bcm2048.c | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/media/bcm2048/radio-bcm2048.c 
b/drivers/staging/media/bcm2048/radio-bcm2048.c
index 06d1920150da..94141a11e51b 100644
--- a/drivers/staging/media/bcm2048/radio-bcm2048.c
+++ b/drivers/staging/media/bcm2048/radio-bcm2048.c
@@ -1846,6 +1846,7 @@ static int bcm2048_deinit(struct bcm2048_device *bdev)
 static int bcm2048_probe(struct bcm2048_device *bdev)
 {
int err;
+   u8 default_threshold = BCM2048_DEFAULT_RSSI_THRESHOLD;
 
err = bcm2048_set_power_state(bdev, BCM2048_POWER_ON);
if (err < 0)
@@ -1863,8 +1864,7 @@ static int bcm2048_probe(struct bcm2048_device *bdev)
if (err < 0)
goto unlock;
 
-   err = bcm2048_set_fm_search_rssi_threshold(bdev,
-   BCM2048_DEFAULT_RSSI_THRESHOLD);
+   err = bcm2048_set_fm_search_rssi_threshold(bdev, default_threshold);
if (err < 0)
goto unlock;
 
@@ -1942,9 +1942,9 @@ static irqreturn_t bcm2048_handler(int irq, void *dev)
  */
 #define property_write(prop, type, mask, check)
\
 static ssize_t bcm2048_##prop##_write(struct device *dev,  \
-   struct device_attribute *attr,  \
-   const char *buf,\
-   size_t count)   \
+ struct device_attribute *attr,\
+ const char *buf,  \
+ size_t count) \
 {  \
struct bcm2048_device *bdev = dev_get_drvdata(dev); \
type value; \
@@ -1966,8 +1966,8 @@ static ssize_t bcm2048_##prop##_write(struct device *dev, 
\
 
 #define property_read(prop, mask)  \
 static ssize_t bcm2048_##prop##_read(struct device *dev,   \
-   struct device_attribute *attr,  \
-   char *buf)  \
+struct device_attribute *attr, \
+char *buf) \
 {  \
struct bcm2048_device *bdev = dev_get_drvdata(dev); \
int value;  \
@@ -1985,8 +1985,8 @@ static ssize_t bcm2048_##prop##_read(struct device *dev,  
\
 
 #define property_signed_read(prop, size, mask) \
 static ssize_t bcm2048_##prop##_read(struct device *dev,   \
-   struct device_attribute *attr,  \
-   char *buf)  \
+struct device_attribute *attr, \
+char *buf) \
 {  \
struct bcm2048_device *bdev = dev_get_drvdata(dev); \
size value; \
@@ -2005,8 +2005,8 @@ property_read(prop, mask) 
\
 
 #define property_str_read(prop, size)  \
 static ssize_t bcm2048_##prop##_read(struct device *dev,   \
-   struct device_attribute *attr,  \
-   char *buf)  \
+struct device_attribute *attr, \
+char *buf) \
 {  \
struct bcm2048_device *bdev = dev_get_drvdata(dev); \
int count;  \
@@ -2175,7 +2175,7 @@ static int bcm2048_fops_release(struct file *file)
 }
 
 static __poll_t bcm2048_fops_poll(struct file *file,
- struct poll_table_struct *pts)
+ struct poll_table_struct *pts)
 {
struct bcm2048_device *bdev = video_drvdata(file);
__poll_t retval = 0;
-- 
2.16.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 3/3] Staging: gdm724x: tty: Remove unused macro 'gdm_tty_send_control'.

2018-02-18 Thread Quytelda Kahja
Remove the macro 'gdm_tty_send_control' which adds unnecessary complexity,
is unused, and has arguments that could mistakenly be evaluated multiple
times.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_tty.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_tty.c 
b/drivers/staging/gdm724x/gdm_tty.c
index 25357dc3d88c..3cdebb81ba63 100644
--- a/drivers/staging/gdm724x/gdm_tty.c
+++ b/drivers/staging/gdm724x/gdm_tty.c
@@ -37,9 +37,6 @@
 
 #define MUX_TX_MAX_SIZE 2048
 
-#define gdm_tty_send_control(n, r, v, d, l) (\
-   n->tty_dev->send_control(n->tty_dev->priv_dev, r, v, d, l))
-
 #define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count)
 
 static struct tty_driver *gdm_driver[TTY_MAX_COUNT];
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/3] Staging: gdm724x: tty: Remove unnecessary macro 'gdm_tty_recv'.

2018-02-18 Thread Quytelda Kahja
Remove the macro 'gdm_tty_recv' which adds unnecessary complexity and has
arguments that could mistakenly be evaluated multiple times.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_tty.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_tty.c 
b/drivers/staging/gdm724x/gdm_tty.c
index 1c3853bcfac2..25357dc3d88c 100644
--- a/drivers/staging/gdm724x/gdm_tty.c
+++ b/drivers/staging/gdm724x/gdm_tty.c
@@ -37,8 +37,6 @@
 
 #define MUX_TX_MAX_SIZE 2048
 
-#define gdm_tty_recv(n, c) (\
-   n->tty_dev->recv_func(n->tty_dev->priv_dev, c))
 #define gdm_tty_send_control(n, r, v, d, l) (\
n->tty_dev->send_control(n->tty_dev->priv_dev, r, v, d, l))
 
@@ -144,7 +142,8 @@ static int gdm_tty_recv_complete(void *data,
 
if (!GDM_TTY_READY(gdm)) {
if (complete == RECV_PACKET_PROCESS_COMPLETE)
-   gdm_tty_recv(gdm, gdm_tty_recv_complete);
+   gdm->tty_dev->recv_func(gdm->tty_dev->priv_dev,
+   gdm_tty_recv_complete);
return TO_HOST_PORT_CLOSE;
}
 
@@ -158,7 +157,8 @@ static int gdm_tty_recv_complete(void *data,
}
 
if (complete == RECV_PACKET_PROCESS_COMPLETE)
-   gdm_tty_recv(gdm, gdm_tty_recv_complete);
+   gdm->tty_dev->recv_func(gdm->tty_dev->priv_dev,
+   gdm_tty_recv_complete);
 
return 0;
 }
@@ -253,7 +253,8 @@ int register_lte_tty_device(struct tty_dev *tty_dev, struct 
device *device)
}
 
for (i = 0; i < MAX_ISSUE_NUM; i++)
-   gdm_tty_recv(gdm, gdm_tty_recv_complete);
+   gdm->tty_dev->recv_func(gdm->tty_dev->priv_dev,
+   gdm_tty_recv_complete);
 
return 0;
 }
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/3] Staging: gdm724x: tty: Remove unnecessary macro 'gdm_tty_send'.

2018-02-18 Thread Quytelda Kahja
Remove the macro 'gdm_tty_send' which adds unnecessary complexity and has
arguments that could mistakenly be evaluated multiple times.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_tty.c | 15 ++-
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_tty.c 
b/drivers/staging/gdm724x/gdm_tty.c
index fc7682c18f20..1c3853bcfac2 100644
--- a/drivers/staging/gdm724x/gdm_tty.c
+++ b/drivers/staging/gdm724x/gdm_tty.c
@@ -37,8 +37,6 @@
 
 #define MUX_TX_MAX_SIZE 2048
 
-#define gdm_tty_send(n, d, l, i, c, b) (\
-   n->tty_dev->send_func(n->tty_dev->priv_dev, d, l, i, c, b))
 #define gdm_tty_recv(n, c) (\
n->tty_dev->recv_func(n->tty_dev->priv_dev, c))
 #define gdm_tty_send_control(n, r, v, d, l) (\
@@ -191,13 +189,12 @@ static int gdm_tty_write(struct tty_struct *tty, const 
unsigned char *buf,
 
while (1) {
sending_len = min(MUX_TX_MAX_SIZE, remain);
-   gdm_tty_send(gdm,
-(void *)(buf + sent_len),
-sending_len,
-gdm->index,
-gdm_tty_send_complete,
-gdm
-   );
+   gdm->tty_dev->send_func(gdm->tty_dev->priv_dev,
+   (void *)(buf + sent_len),
+   sending_len,
+   gdm->index,
+   gdm_tty_send_complete,
+   gdm);
sent_len += sending_len;
remain -= sending_len;
if (remain <= 0)
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: gdm724x: mux: Check return value of register_lte_tty_driver().

2018-02-17 Thread Quytelda Kahja
Check the return value of of the register_lte_tty_driver() call in the
module initialization function.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_mux.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/gdm724x/gdm_mux.c 
b/drivers/staging/gdm724x/gdm_mux.c
index 996b1f538aae..63921bad519e 100644
--- a/drivers/staging/gdm724x/gdm_mux.c
+++ b/drivers/staging/gdm724x/gdm_mux.c
@@ -657,7 +657,11 @@ static struct usb_driver gdm_mux_driver = {
 
 static int __init gdm_usb_mux_init(void)
 {
-   register_lte_tty_driver();
+   int ret;
+
+   ret = register_lte_tty_driver();
+   if (ret)
+   return ret;
 
return usb_register(_mux_driver);
 }
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 4/4] Staging: ks7010: hostif: Fix multiple use of arguments in ps_confirm_wait_inc() macro.

2018-02-16 Thread Quytelda Kahja
Use GCC extensions to prevent macro arguments from accidentally being evaluated
multiple times when the macro is called.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 9 -
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 30c9592b3a00..92035e8ac843 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -1306,11 +1306,10 @@ int hostif_data_request(struct ks_wlan_private *priv, 
struct sk_buff *skb)
return ret;
 }
 
-#define ps_confirm_wait_inc(priv)   \
-   do { \
-   if (atomic_read(>psstatus.status) > PS_ACTIVE_SET) \
-   atomic_inc(>psstatus.confirm_wait);\
-   } while (0)
+#define ps_confirm_wait_inc(priv)  \
+   ({ typeof(priv) priv_ = (priv); \
+   if (atomic_read(_->psstatus.status) > PS_ACTIVE_SET) \
+   atomic_inc(_->psstatus.confirm_wait); })
 
 static
 void hostif_mib_get_request(struct ks_wlan_private *priv,
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/4] Staging: ks7010: hostif: Fix multiple use of arguments in SME queue macros.

2018-02-16 Thread Quytelda Kahja
Use GCC extensions to prevent macro arguments from accidentally being evaluated
multiple times when the macro is called.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 19 +--
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 975dbbb3abd0..30c9592b3a00 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -22,12 +22,19 @@
 #include /* New driver API */
 
 /* macro */
-#define inc_smeqhead(priv) \
-   (priv->sme_i.qhead = (priv->sme_i.qhead + 1) % SME_EVENT_BUFF_SIZE)
-#define inc_smeqtail(priv) \
-   (priv->sme_i.qtail = (priv->sme_i.qtail + 1) % SME_EVENT_BUFF_SIZE)
-#define cnt_smeqbody(priv) \
-   (((priv->sme_i.qtail + SME_EVENT_BUFF_SIZE) - (priv->sme_i.qhead)) % 
SME_EVENT_BUFF_SIZE)
+#define inc_smeqhead(priv) \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int next_qhead = priv_->sme_i.qhead + 1;   \
+   priv_->sme_i.qhead = next_qhead % SME_EVENT_BUFF_SIZE; })
+#define inc_smeqtail(priv) \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int next_qtail = priv_->sme_i.qtail + 1;   \
+   priv_->sme_i.qtail = next_qtail % SME_EVENT_BUFF_SIZE; })
+#define cnt_smeqbody(priv) \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int left_cnt = \
+   priv_->sme_i.qtail + SME_EVENT_BUFF_SIZE;   \
+(left_cnt - (priv_->sme_i.qhead)) % SME_EVENT_BUFF_SIZE; })
 
 #define KS_WLAN_MEM_FLAG (GFP_ATOMIC)
 
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 3/4] Staging: ks7010: hostif: Fix multiple use of arguments in rate and event masking macros.

2018-02-16 Thread Quytelda Kahja
Use GCC extensions to prevent macro arguments from accidentally being evaluated
multiple times when the macro is called.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.h | 74 +-
 1 file changed, 50 insertions(+), 24 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.h 
b/drivers/staging/ks7010/ks_hostif.h
index 5bae8d468e23..750ac86cee77 100644
--- a/drivers/staging/ks7010/ks_hostif.h
+++ b/drivers/staging/ks7010/ks_hostif.h
@@ -599,19 +599,39 @@ struct hostif_mic_failure_confirm_t {
 #define TX_RATE_48M(uint8_t)(480 / 5)
 #define TX_RATE_54M(uint8_t)(540 / 5)
 
-#define IS_11B_RATE(A) (((A & RATE_MASK) == TX_RATE_1M) || ((A & RATE_MASK) == 
TX_RATE_2M) || \
-   ((A & RATE_MASK) == TX_RATE_5M) || ((A & RATE_MASK) == 
TX_RATE_11M))
-
-#define IS_OFDM_RATE(A) (((A & RATE_MASK) == TX_RATE_6M) || ((A & RATE_MASK) 
== TX_RATE_12M) || \
-((A & RATE_MASK) == TX_RATE_24M) || ((A & RATE_MASK) 
== TX_RATE_9M) || \
-((A & RATE_MASK) == TX_RATE_18M) || ((A & RATE_MASK) 
== TX_RATE_36M) || \
-((A & RATE_MASK) == TX_RATE_48M) || ((A & RATE_MASK) 
== TX_RATE_54M))
-
-#define IS_11BG_RATE(A) (IS_11B_RATE(A) || IS_OFDM_RATE(A))
-
-#define IS_OFDM_EXT_RATE(A) (((A & RATE_MASK) == TX_RATE_9M) || ((A & 
RATE_MASK) == TX_RATE_18M) || \
-((A & RATE_MASK) == TX_RATE_36M) || ((A & 
RATE_MASK) == TX_RATE_48M) || \
-((A & RATE_MASK) == TX_RATE_54M))
+#define IS_11B_RATE(A) \
+   ({  \
+   typeof(A) A_ = (A); \
+   ((A_ & RATE_MASK) == TX_RATE_1M) || \
+   ((A_ & RATE_MASK) == TX_RATE_2M) || \
+   ((A_ & RATE_MASK) == TX_RATE_5M) || \
+   ((A_ & RATE_MASK) == TX_RATE_11M); })
+
+#define IS_OFDM_RATE(A)
\
+   ({  \
+   typeof(A) A_ = (A); \
+   ((A_ & RATE_MASK) == TX_RATE_6M) || \
+   ((A_ & RATE_MASK) == TX_RATE_12M) ||\
+   ((A_ & RATE_MASK) == TX_RATE_24M) ||\
+   ((A_ & RATE_MASK) == TX_RATE_9M) || \
+   ((A_ & RATE_MASK) == TX_RATE_18M) ||\
+   ((A_ & RATE_MASK) == TX_RATE_36M) ||\
+   ((A_ & RATE_MASK) == TX_RATE_48M) ||\
+   ((A_ & RATE_MASK) == TX_RATE_54M); })
+
+#define IS_11BG_RATE(A)\
+   ({  \
+   typeof(A) A_ = (A); \
+   IS_11B_RATE(A_) || IS_OFDM_RATE(A_); })
+
+#define IS_OFDM_EXT_RATE(A)\
+   ({  \
+   typeof(A) A_ = (A); \
+   ((A_ & RATE_MASK) == TX_RATE_9M) || \
+   ((A_ & RATE_MASK) == TX_RATE_18M) ||\
+   ((A_ & RATE_MASK) == TX_RATE_36M) ||\
+   ((A_ & RATE_MASK) == TX_RATE_48M) ||\
+   ((A_ & RATE_MASK) == TX_RATE_54M); })
 
 enum connect_status_type {
CONNECT_STATUS,
@@ -633,17 +653,23 @@ enum multicast_filter_type {
 
 /* macro function */
 #define HIF_EVENT_MASK 0xE800
-#define IS_HIF_IND(_EVENT)  ((_EVENT & HIF_EVENT_MASK) == 0xE800  && \
-((_EVENT & ~HIF_EVENT_MASK) == 0x0001 || \
-(_EVENT & ~HIF_EVENT_MASK) == 0x0006 || \
-(_EVENT & ~HIF_EVENT_MASK) == 0x000C || \
-(_EVENT & ~HIF_EVENT_MASK) == 0x0011 || \
-(_EVENT & ~HIF_EVENT_MASK) == 0x0012))
-
-#define IS_HIF_CONF(_EVENT) ((_EVENT & HIF_EVENT_MASK) == 0xE800  && \
-(_EVENT & ~HIF_EVENT_MASK) > 0x  && \
-(_EVENT & ~HIF_EVENT_MASK) < 0x0012  && \
-!IS_HIF_IND(_EVENT))
+#define IS_HIF_IND(_EVENT)   \
+   ({\
+   typeof(_EVENT) EVENT_ = (_EVENT); 

[PATCH 1/4] Staging: ks7010: sdio: Fix multiple use of arguments in RX/TX queue macros.

2018-02-16 Thread Quytelda Kahja
Use GCC extensions to prevent macro arguments from accidentally being evaluated
multiple times when the macro is called.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks7010_sdio.c | 40 
 1 file changed, 27 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/ks7010/ks7010_sdio.c 
b/drivers/staging/ks7010/ks7010_sdio.c
index 8cfdff198334..ffa7e2382353 100644
--- a/drivers/staging/ks7010/ks7010_sdio.c
+++ b/drivers/staging/ks7010/ks7010_sdio.c
@@ -32,19 +32,33 @@ static const struct sdio_device_id ks7010_sdio_ids[] = {
 };
 MODULE_DEVICE_TABLE(sdio, ks7010_sdio_ids);
 
-#define inc_txqhead(priv) \
-   (priv->tx_dev.qhead = (priv->tx_dev.qhead + 1) % TX_DEVICE_BUFF_SIZE)
-#define inc_txqtail(priv) \
-   (priv->tx_dev.qtail = (priv->tx_dev.qtail + 1) % TX_DEVICE_BUFF_SIZE)
-#define cnt_txqbody(priv) \
-   (((priv->tx_dev.qtail + TX_DEVICE_BUFF_SIZE) - (priv->tx_dev.qhead)) % 
TX_DEVICE_BUFF_SIZE)
-
-#define inc_rxqhead(priv) \
-   (priv->rx_dev.qhead = (priv->rx_dev.qhead + 1) % RX_DEVICE_BUFF_SIZE)
-#define inc_rxqtail(priv) \
-   (priv->rx_dev.qtail = (priv->rx_dev.qtail + 1) % RX_DEVICE_BUFF_SIZE)
-#define cnt_rxqbody(priv) \
-   (((priv->rx_dev.qtail + RX_DEVICE_BUFF_SIZE) - (priv->rx_dev.qhead)) % 
RX_DEVICE_BUFF_SIZE)
+#define inc_txqhead(priv)  \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int next_qhead = priv_->tx_dev.qhead + 1;  \
+   priv_->tx_dev.qhead = next_qhead % TX_DEVICE_BUFF_SIZE; })
+#define inc_txqtail(priv)  \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int next_qtail = priv_->tx_dev.qtail + 1;  \
+   priv_->tx_dev.qtail = next_qtail % TX_DEVICE_BUFF_SIZE; })
+#define cnt_txqbody(priv)  \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int left_cnt = \
+   priv_->tx_dev.qtail + TX_DEVICE_BUFF_SIZE;  \
+   (left_cnt - (priv_->tx_dev.qhead)) % TX_DEVICE_BUFF_SIZE; })
+
+#define inc_rxqhead(priv)  \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int next_qhead = priv_->rx_dev.qhead + 1;  \
+   priv_->rx_dev.qhead = next_qhead % RX_DEVICE_BUFF_SIZE; })
+#define inc_rxqtail(priv)  \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int next_qtail = priv_->rx_dev.qtail + 1;  \
+   priv_->rx_dev.qtail = next_qtail % RX_DEVICE_BUFF_SIZE; })
+#define cnt_rxqbody(priv)  \
+   ({ typeof(priv) priv_ = (priv); \
+   unsigned int left_cnt = \
+   priv_->rx_dev.qtail + RX_DEVICE_BUFF_SIZE;  \
+   (left_cnt - (priv_->rx_dev.qhead)) % RX_DEVICE_BUFF_SIZE; })
 
 /* Read single byte from device address into byte (CMD52) */
 static int ks7010_sdio_readb(struct ks_wlan_private *priv, unsigned int 
address,
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: gdm724x: tty: Fix macro argument reuse that could cause side-effects.

2018-02-16 Thread Quytelda Kahja
Fix a coding style warning from checkpatch.pl.  Use GNU extensions to create
references to the results of problem macro arguments when they are evaluated so
that they can be used safely multiple times.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_tty.c | 24 
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_tty.c 
b/drivers/staging/gdm724x/gdm_tty.c
index fc7682c18f20..73d39fa86d10 100644
--- a/drivers/staging/gdm724x/gdm_tty.c
+++ b/drivers/staging/gdm724x/gdm_tty.c
@@ -37,14 +37,22 @@
 
 #define MUX_TX_MAX_SIZE 2048
 
-#define gdm_tty_send(n, d, l, i, c, b) (\
-   n->tty_dev->send_func(n->tty_dev->priv_dev, d, l, i, c, b))
-#define gdm_tty_recv(n, c) (\
-   n->tty_dev->recv_func(n->tty_dev->priv_dev, c))
-#define gdm_tty_send_control(n, r, v, d, l) (\
-   n->tty_dev->send_control(n->tty_dev->priv_dev, r, v, d, l))
-
-#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count)
+#define gdm_tty_send(n, d, l, i, c, b) \
+   ({ typeof(n) n_ = (n);  \
+   void *priv_dev = n_->tty_dev->priv_dev; \
+   n_->tty_dev->send_func(priv_dev, d, l, i, c, b); })
+#define gdm_tty_recv(n, c) \
+   ({ typeof(n) n_ = (n);  \
+   void *priv_dev = n_->tty_dev->priv_dev; \
+   n_->tty_dev->recv_func(priv_dev, c); })
+#define gdm_tty_send_control(n, r, v, d, l)\
+   ({ typeof(n) n_ = (n);  \
+   void *priv_dev = n_->tty_dev->priv_dev; \
+   n_->tty_dev->send_control(priv_dev, r, v, d, l); })
+
+#define GDM_TTY_READY(gdm) \
+   ({ typeof(gdm) gdm_ = gdm;  \
+   gdm_ && gdm_->tty_dev && gdm_->port.count; })
 
 static struct tty_driver *gdm_driver[TTY_MAX_COUNT];
 static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR];
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/2] Staging: gdm724x: LTE: Fix argument list not aligned with parenthesis.

2018-02-16 Thread Quytelda Kahja
Fix coding style warning from checkpatch.pl.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_lte.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/gdm724x/gdm_lte.c 
b/drivers/staging/gdm724x/gdm_lte.c
index ff3fed9c4a81..26a81fdd0044 100644
--- a/drivers/staging/gdm724x/gdm_lte.c
+++ b/drivers/staging/gdm724x/gdm_lte.c
@@ -311,7 +311,8 @@ static int gdm_lte_emulate_ndp(struct sk_buff *skb_in, u32 
nic_type)
   sizeof(struct neighbour_advertisement));
 
icmp6_out.icmp6_cksum = icmp6_checksum(_out,
-   (u16 *)icmp_na, sizeof(icmp_na));
+  (u16 *)icmp_na,
+  sizeof(icmp_na));
} else {
return -EINVAL;
}
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: gdm724x: LTE: Fix trailing open parenthesis code style issue.

2018-02-16 Thread Quytelda Kahja
Fix a coding style problem causing warnings from checkpatch.pl.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/gdm724x/gdm_lte.c | 50 ++-
 1 file changed, 28 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_lte.c 
b/drivers/staging/gdm724x/gdm_lte.c
index 0527b0d1c1d0..ff3fed9c4a81 100644
--- a/drivers/staging/gdm724x/gdm_lte.c
+++ b/drivers/staging/gdm724x/gdm_lte.c
@@ -204,9 +204,12 @@ static __sum16 icmp6_checksum(struct ipv6hdr *ipv6, u16 
*ptr, int len)
pseudo_header.ph.ph_nxt = ipv6->nexthdr;
 
w = (u16 *)_header;
-   for (i = 0; i < ARRAY_SIZE(pseudo_header.pa); i++)
-   sum = csum_add(sum, csum_unfold(
-   (__force __sum16)pseudo_header.pa[i]));
+   for (i = 0; i < ARRAY_SIZE(pseudo_header.pa); i++) {
+   __wsum tmp_sum;
+
+   tmp_sum = csum_unfold((__force __sum16)pseudo_header.pa[i]);
+   sum = csum_add(sum, tmp_sum);
+   }
 
w = ptr;
while (len > 1) {
@@ -510,18 +513,18 @@ static int gdm_lte_event_send(struct net_device *dev, 
char *buf, int len)
 {
struct nic *nic = netdev_priv(dev);
struct hci_packet *hci = (struct hci_packet *)buf;
+   struct gdm_endian *phy_endian;
int idx;
+   u16 cpu;
int ret;
 
ret = sscanf(dev->name, "lte%d", );
if (ret != 1)
return -EINVAL;
 
-   return netlink_send(lte_event.sock, idx, 0, buf,
-   gdm_dev16_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev), hci->len)
-   + HCI_HEADER_SIZE);
+   phy_endian = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
+   cpu = gdm_dev16_to_cpu(phy_endian, hci->len);
+   return netlink_send(lte_event.sock, idx, 0, buf, cpu + HCI_HEADER_SIZE);
 }
 
 static void gdm_lte_event_rcv(struct net_device *dev, u16 type,
@@ -728,17 +731,21 @@ static void gdm_lte_pdn_table(struct net_device *dev, 
char *buf, int len)
 {
struct nic *nic = netdev_priv(dev);
struct hci_pdn_table_ind *pdn_table = (struct hci_pdn_table_ind *)buf;
+   struct gdm_endian *dft_endian;
+   struct gdm_endian *nic_endian;
 
if (pdn_table->activate) {
nic->pdn_table.activate = pdn_table->activate;
-   nic->pdn_table.dft_eps_id = gdm_dev32_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev),
-   pdn_table->dft_eps_id);
-   nic->pdn_table.nic_type = gdm_dev32_to_cpu(
-   nic->phy_dev->get_endian(
-   nic->phy_dev->priv_dev),
-   pdn_table->nic_type);
+
+   dft_endian = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
+   nic_endian = nic->phy_dev->get_endian(nic->phy_dev->priv_dev);
+
+   nic->pdn_table.dft_eps_id =
+   gdm_dev32_to_cpu(dft_endian,
+pdn_table->dft_eps_id);
+   nic->pdn_table.nic_type =
+   gdm_dev32_to_cpu(nic_endian,
+pdn_table->nic_type);
 
netdev_info(dev, "pdn activated, nic_type=0x%x\n",
nic->pdn_table.nic_type);
@@ -896,12 +903,11 @@ int register_lte_device(struct phy_dev *phy_dev,
nic->phy_dev = phy_dev;
nic->nic_id = index;
 
-   form_mac_address(
-   net->dev_addr,
-   nic->src_mac_addr,
-   nic->dest_mac_addr,
-   mac_address,
-   index);
+   form_mac_address(net->dev_addr,
+nic->src_mac_addr,
+nic->dest_mac_addr,
+mac_address,
+index);
 
SET_NETDEV_DEV(net, dev);
SET_NETDEV_DEVTYPE(net, _type);
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: fwserial: remove unnecessary parenthesis

2018-01-31 Thread Quytelda Kahja
Removed parenthesis causing a coding style warning.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/fwserial/dma_fifo.c | 2 +-
 drivers/staging/fwserial/fwserial.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/fwserial/dma_fifo.c 
b/drivers/staging/fwserial/dma_fifo.c
index 8b23a553fd4a..ead71f93f3c9 100644
--- a/drivers/staging/fwserial/dma_fifo.c
+++ b/drivers/staging/fwserial/dma_fifo.c
@@ -259,7 +259,7 @@ int dma_fifo_out_complete(struct dma_fifo *fifo, struct 
dma_pending *complete)
if (list_empty(>pending) && fifo->open == 0)
return -EINVAL;
 
-   if (FAIL(fifo, list_empty(>pending) != (fifo->open == 0),
+   if (FAIL(fifo, list_empty(>pending) != fifo->open == 0,
 "pending list disagrees with open count:%d",
 fifo->open))
return -ENXIO;
diff --git a/drivers/staging/fwserial/fwserial.c 
b/drivers/staging/fwserial/fwserial.c
index bba7e9c888b3..99cdefc873e5 100644
--- a/drivers/staging/fwserial/fwserial.c
+++ b/drivers/staging/fwserial/fwserial.c
@@ -1296,7 +1296,7 @@ static void fwtty_set_termios(struct tty_struct *tty, 
struct ktermios *old)
spin_lock_bh(>lock);
baud = set_termios(port, tty);
 
-   if ((baud == 0) && (old->c_cflag & CBAUD)) {
+   if (baud == 0 && (old->c_cflag & CBAUD)) {
port->mctrl &= ~(TIOCM_DTR | TIOCM_RTS);
} else if ((baud != 0) && !(old->c_cflag & CBAUD)) {
if (C_CRTSCTS(tty) || !tty_throttled(tty))
-- 
2.16.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: unisys: visorbus: Fix coding style warning from checkpatch.pl.

2017-06-27 Thread Quytelda Kahja
Replace the literal function name "visorbus_create_instance" with the format
specifier "%s" so it can be dynamically filled by the __func__ macro.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/unisys/visorbus/visorbus_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c 
b/drivers/staging/unisys/visorbus/visorbus_main.c
index 1c785dd19ddd..1c6dc3a3e64a 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -1030,7 +1030,7 @@ visorbus_create_instance(struct visor_device *dev)
 err_debugfs_dir:
debugfs_remove_recursive(dev->debugfs_dir);
kfree(hdr_info);
-   dev_err(>device, "visorbus_create_instance failed: %d\n", err);
+   dev_err(>device, "%s failed: %d\n", __func__, err);
return err;
 }
 
-- 
2.13.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: ion: fix code style warning from NULL comparisons

2017-06-27 Thread Quytelda Kahja
This patch replaces several instances where a pointer is compared to NULL
(i.e., `ptr == NULL`) with `!ptr`, which is preferred.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/android/ion/ion.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/android/ion/ion.c 
b/drivers/staging/android/ion/ion.c
index 43ecb4af1b41..93e2c90fa77d 100644
--- a/drivers/staging/android/ion/ion.c
+++ b/drivers/staging/android/ion/ion.c
@@ -103,7 +103,7 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap 
*heap,
goto err2;
}
 
-   if (buffer->sg_table == NULL) {
+   if (!buffer->sg_table) {
WARN_ONCE(1, "This heap needs to set the sgtable");
ret = -EINVAL;
goto err1;
@@ -161,7 +161,7 @@ static void *ion_buffer_kmap_get(struct ion_buffer *buffer)
return buffer->vaddr;
}
vaddr = buffer->heap->ops->map_kernel(buffer->heap, buffer);
-   if (WARN_ONCE(vaddr == NULL,
+   if (WARN_ONCE(!vaddr,
  "heap->ops->map_kernel should return ERR_PTR on error"))
return ERR_PTR(-EINVAL);
if (IS_ERR(vaddr))
@@ -425,7 +425,7 @@ int ion_alloc(size_t len, unsigned int heap_id_mask, 
unsigned int flags)
}
up_read(>lock);
 
-   if (buffer == NULL)
+   if (!buffer)
return -ENODEV;
 
if (IS_ERR(buffer))
-- 
2.13.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Replace the literal function name "visorbus_create_instance" with the format specifier "%s" so it can be dynamically filled by the __func__ macro.

2017-06-27 Thread Quytelda Kahja
Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/unisys/visorbus/visorbus_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c 
b/drivers/staging/unisys/visorbus/visorbus_main.c
index 1c785dd19ddd..1c6dc3a3e64a 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -1030,7 +1030,7 @@ visorbus_create_instance(struct visor_device *dev)
 err_debugfs_dir:
debugfs_remove_recursive(dev->debugfs_dir);
kfree(hdr_info);
-   dev_err(>device, "visorbus_create_instance failed: %d\n", err);
+   dev_err(>device, "%s failed: %d\n", __func__, err);
return err;
 }
 
-- 
2.13.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: visorbus: Fix coding style warning from checkpatch.pl.

2017-06-26 Thread Quytelda Kahja
Replace the literal function name "create_bus_instance" with the format
specifier "%s" so it can be dynamically filled by the __func__ macro.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/unisys/visorbus/visorbus_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c 
b/drivers/staging/unisys/visorbus/visorbus_main.c
index a692561c81c8..b6caa7a98692 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -1032,7 +1032,7 @@ create_bus_instance(struct visor_device *dev)
 err_debugfs_dir:
debugfs_remove_recursive(dev->debugfs_dir);
kfree(hdr_info);
-   dev_err(>device, "create_bus_instance failed: %d\n", err);
+   dev_err(>device, "%s failed: %d\n", __func__, err);
return err;
 }
 
-- 
2.13.2

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


<    1   2   3