[PATCH 01/11] staging: rtl8723bs: Clean up whitespace in 'PHY_GetTxPowerLimit()'.

2018-06-16 Thread Quytelda Kahja
Wrap lines longer than 80 characters where possible, delete double
newlines, and fix alignment per the kernel coding style guidelines.

Signed-off-by: Quytelda Kahja 
---
 .../staging/rtl8723bs/hal/hal_com_phycfg.c| 110 ++
 1 file changed, 59 insertions(+), 51 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 3922d0308a81..5f727a7c16fd 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1612,46 +1612,45 @@ static s8 phy_GetChannelIndexOfTxPowerLimit(u8 Band, u8 
Channel)
return channelIndex;
 }
 
-s8 PHY_GetTxPowerLimit(
-   struct adapter *Adapter,
-   u32 RegPwrTblSel,
-   enum BAND_TYPE Band,
-   enum CHANNEL_WIDTH Bandwidth,
-   u8 RfPath,
-   u8 DataRate,
-   u8 Channel
-)
+s8 PHY_GetTxPowerLimit(struct adapter *Adapter, u32 RegPwrTblSel,
+  enum BAND_TYPE Band, enum CHANNEL_WIDTH Bandwidth,
+  u8 RfPath, u8 DataRate, u8 Channel)
 {
-   struct hal_com_data *pHalData = GET_HAL_DATA(Adapter);
-   s16 band = -1, regulation = -1, bandwidth = -1, rateSection = -1, 
channel = -1;
+   s16 band= -1;
+   s16 regulation  = -1;
+   s16 bandwidth   = -1;
+   s16 rateSection = -1;
+   s16 channel = -1;
s8 powerLimit = MAX_POWER_INDEX;
+   struct hal_com_data *pHalData = GET_HAL_DATA(Adapter);
 
-   if ((Adapter->registrypriv.RegEnableTxPowerLimit == 2 && 
pHalData->EEPROMRegulatory != 1) ||
-  Adapter->registrypriv.RegEnableTxPowerLimit == 0)
+   if (((Adapter->registrypriv.RegEnableTxPowerLimit == 2) &&
+(pHalData->EEPROMRegulatory != 1)) ||
+   (Adapter->registrypriv.RegEnableTxPowerLimit == 0))
return MAX_POWER_INDEX;
 
switch (Adapter->registrypriv.RegPwrTblSel) {
case 1:
-   regulation = TXPWR_LMT_ETSI;
-   break;
+   regulation = TXPWR_LMT_ETSI;
+   break;
case 2:
-   regulation = TXPWR_LMT_MKK;
-   break;
+   regulation = TXPWR_LMT_MKK;
+   break;
case 3:
-   regulation = TXPWR_LMT_FCC;
-   break;
-
+   regulation = TXPWR_LMT_FCC;
+   break;
case 4:
-   regulation = TXPWR_LMT_WW;
-   break;
-
+   regulation = TXPWR_LMT_WW;
+   break;
default:
-   regulation = (Band == BAND_ON_2_4G) ? 
pHalData->Regulation2_4G : pHalData->Regulation5G;
-   break;
+   regulation = (Band == BAND_ON_2_4G) ?
+   pHalData->Regulation2_4G :
+   pHalData->Regulation5G;
+   break;
}
 
-   /* DBG_871X("pMgntInfo->RegPwrTblSel %d, final regulation %d\n", 
Adapter->registrypriv.RegPwrTblSel, regulation); */
-
+   /* DBG_871X("pMgntInfo->RegPwrTblSel %d, final regulation %d\n", */
+   /* Adapter->registrypriv.RegPwrTblSel, regulation); */
 
if (Band == BAND_ON_2_4G)
band = 0;
@@ -1730,8 +1729,8 @@ s8 PHY_GetTxPowerLimit(
break;
}
 
-   if (Band == BAND_ON_5G  && rateSection == 0)
-   DBG_871X("Wrong rate 0x%x: No CCK in 5G Band\n", 
DataRate);
+   if (Band == BAND_ON_5G && rateSection == 0)
+DBG_871X("Wrong rate 0x%x: No CCK in 5G Band\n", DataRate);
 
/*  workaround for wrong index combination to obtain tx power limit, */
/*  OFDM only exists in BW 20M */
@@ -1745,22 +1744,26 @@ s8 PHY_GetTxPowerLimit(
 
/*  workaround for wrong indxe combination to obtain tx power limit, */
/*  HT on 80M will reference to HT on 40M */
-   if ((rateSection == 2 || rateSection == 3) && Band == BAND_ON_5G && 
bandwidth == 2) {
+   if ((rateSection == 2 || rateSection == 3) &&
+   Band == BAND_ON_5G && bandwidth == 2) {
bandwidth = 1;
}
 
if (Band == BAND_ON_2_4G)
-   channel = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_2_4G, 
Channel);
+   channel = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_2_4G,
+   Channel);
else if (Band == BAND_ON_5G)
-   channel = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_5G, 
Channel);
+   channel = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_5G,
+   Channel);
else if (Band == BAND_ON_BOTH) {
/*  BAND_ON_BOTH don't care temporarily */
}
 
if (band == -1 || regulation == -1 || bandwidth == -1 ||
-rateSection == -1 || channel == -1) {
+   rateSection == -1 || 

[PATCH 10/11] staging: rtl8723bs: Merge workaround conditionals into single else-if.

2018-06-16 Thread Quytelda Kahja
The if conditionals used to work around wrong TX power limit indices
can be condensed into a single if/else-if statement for more concise
expression.

Signed-off-by: Quytelda Kahja 
---
 drivers/staging/rtl8723bs/hal/hal_com_phycfg.c | 9 +++--
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 9e6dc238c028..0e49f0973c12 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1728,15 +1728,12 @@ s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 
reg_pwr_tbl_sel,
/*  workaround for wrong index combination to obtain tx power limit, */
/*  OFDM only exists in BW 20M */
/*  CCK table will only be given in BW 20M */
+   /*  HT on 80M will reference to HT on 40M */
if (idx_rate_sctn == 0 || idx_rate_sctn == 1)
idx_bandwidth = 0;
-
-   /*  workaround for wrong index combination to obtain tx power limit, */
-   /*  HT on 80M will reference to HT on 40M */
-   if ((idx_rate_sctn == 2 || idx_rate_sctn == 3) &&
-   band_type == BAND_ON_5G && idx_bandwidth == 2) {
+   else if ((idx_rate_sctn == 2 || idx_rate_sctn == 3) &&
+(band_type == BAND_ON_5G) && (idx_bandwidth == 2))
idx_bandwidth = 1;
-   }
 
if (band_type == BAND_ON_2_4G || band_type == BAND_ON_5G)
channel = phy_GetChannelIndexOfTxPowerLimit(band_type, channel);
-- 
2.17.1

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


[PATCH 07/11] staging: rtl8723bs: Move bandwidth index lookup to new function.

2018-06-16 Thread Quytelda Kahja
Factoring out the conditional lookup of bandwidth index into the power
limit table into it's own function simplifies the logic of
'phy_get_tx_pwr_lmt()'.

Signed-off-by: Quytelda Kahja 
---
 .../staging/rtl8723bs/hal/hal_com_phycfg.c| 26 ---
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 4b5219481b33..6d8a07ac7bb3 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1612,6 +1612,22 @@ static s8 phy_GetChannelIndexOfTxPowerLimit(u8 Band, u8 
Channel)
return channelIndex;
 }
 
+static s16 get_bandwidth_idx(const enum CHANNEL_WIDTH bandwidth)
+{
+   switch (bandwidth) {
+   case CHANNEL_WIDTH_20:
+   return 0;
+   case CHANNEL_WIDTH_40:
+   return 1;
+   case CHANNEL_WIDTH_80:
+   return 2;
+   case CHANNEL_WIDTH_160:
+   return 3;
+   default:
+   return -1;
+   }
+}
+
 static s16 get_rate_sctn_idx(const u8 rate)
 {
switch (rate) {
@@ -1703,15 +1719,7 @@ s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 
reg_pwr_tbl_sel,
else if (band_type == BAND_ON_5G)
idx_band = 1;
 
-   if (bandwidth == CHANNEL_WIDTH_20)
-   idx_bandwidth = 0;
-   else if (bandwidth == CHANNEL_WIDTH_40)
-   idx_bandwidth = 1;
-   else if (bandwidth == CHANNEL_WIDTH_80)
-   idx_bandwidth = 2;
-   else if (bandwidth == CHANNEL_WIDTH_160)
-   idx_bandwidth = 3;
-
+   idx_bandwidth = get_bandwidth_idx(bandwidth);
idx_rate_sctn = get_rate_sctn_idx(data_rate);
 
if (band_type == BAND_ON_5G && idx_rate_sctn == 0)
-- 
2.17.1

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


[PATCH 08/11] staging: rtl8723bs: Fix spelling mistake in comment.

2018-06-16 Thread Quytelda Kahja
Signed-off-by: Quytelda Kahja 
---
 drivers/staging/rtl8723bs/hal/hal_com_phycfg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 6d8a07ac7bb3..dd097df86fa3 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1731,7 +1731,7 @@ s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 
reg_pwr_tbl_sel,
if (idx_rate_sctn == 0 || idx_rate_sctn == 1)
idx_bandwidth = 0;
 
-   /*  workaround for wrong indxe combination to obtain tx power limit, */
+   /*  workaround for wrong index combination to obtain tx power limit, */
/*  HT on 80M will reference to HT on 40M */
if ((idx_rate_sctn == 2 || idx_rate_sctn == 3) &&
band_type == BAND_ON_5G && idx_bandwidth == 2) {
-- 
2.17.1

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


[PATCH 03/11] staging: rtl8723bs: Fix camel-case names in phy_get_tx_pwr_lmt().

2018-06-16 Thread Quytelda Kahja
Change camel-case names to snake-case names; to avoid variable name
conflicts, rename table index variables to idx_*.

Signed-off-by: Quytelda Kahja 
---
 .../staging/rtl8723bs/hal/hal_com_phycfg.c| 200 +-
 1 file changed, 105 insertions(+), 95 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 4ab624f5ece0..7e27d7ff29fa 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1612,211 +1612,221 @@ static s8 phy_GetChannelIndexOfTxPowerLimit(u8 Band, 
u8 Channel)
return channelIndex;
 }
 
-s8 phy_get_tx_pwr_lmt(struct adapter *Adapter, u32 RegPwrTblSel,
- enum BAND_TYPE Band, enum CHANNEL_WIDTH Bandwidth,
- u8 RfPath, u8 DataRate, u8 Channel)
+s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 reg_pwr_tbl_sel,
+ enum BAND_TYPE band_type, enum CHANNEL_WIDTH bandwidth,
+ u8 rf_path, u8 data_rate, u8 channel)
 {
-   s16 band= -1;
-   s16 regulation  = -1;
-   s16 bandwidth   = -1;
-   s16 rateSection = -1;
-   s16 channel = -1;
-   s8 powerLimit = MAX_POWER_INDEX;
-   struct hal_com_data *pHalData = GET_HAL_DATA(Adapter);
-
-   if (((Adapter->registrypriv.RegEnableTxPowerLimit == 2) &&
-(pHalData->EEPROMRegulatory != 1)) ||
-   (Adapter->registrypriv.RegEnableTxPowerLimit == 0))
+   s16 idx_band   = -1;
+   s16 idx_regulation = -1;
+   s16 idx_bandwidth  = -1;
+   s16 idx_rate_sctn  = -1;
+   s16 idx_channel= -1;
+   s8 pwr_lmt = MAX_POWER_INDEX;
+   struct hal_com_data *hal_data = GET_HAL_DATA(adapter);
+
+   if (((adapter->registrypriv.RegEnableTxPowerLimit == 2) &&
+(hal_data->EEPROMRegulatory != 1)) ||
+   (adapter->registrypriv.RegEnableTxPowerLimit == 0))
return MAX_POWER_INDEX;
 
-   switch (Adapter->registrypriv.RegPwrTblSel) {
+   switch (adapter->registrypriv.RegPwrTblSel) {
case 1:
-   regulation = TXPWR_LMT_ETSI;
+   idx_regulation = TXPWR_LMT_ETSI;
break;
case 2:
-   regulation = TXPWR_LMT_MKK;
+   idx_regulation = TXPWR_LMT_MKK;
break;
case 3:
-   regulation = TXPWR_LMT_FCC;
+   idx_regulation = TXPWR_LMT_FCC;
break;
case 4:
-   regulation = TXPWR_LMT_WW;
+   idx_regulation = TXPWR_LMT_WW;
break;
default:
-   regulation = (Band == BAND_ON_2_4G) ?
-   pHalData->Regulation2_4G :
-   pHalData->Regulation5G;
+   idx_regulation = (band_type == BAND_ON_2_4G) ?
+   hal_data->Regulation2_4G :
+   hal_data->Regulation5G;
break;
}
 
/* DBG_871X("pMgntInfo->RegPwrTblSel %d, final regulation %d\n", */
-   /* Adapter->registrypriv.RegPwrTblSel, regulation); */
-
-   if (Band == BAND_ON_2_4G)
-   band = 0;
-   else if (Band == BAND_ON_5G)
-   band = 1;
-
-   if (Bandwidth == CHANNEL_WIDTH_20)
-   bandwidth = 0;
-   else if (Bandwidth == CHANNEL_WIDTH_40)
-   bandwidth = 1;
-   else if (Bandwidth == CHANNEL_WIDTH_80)
-   bandwidth = 2;
-   else if (Bandwidth == CHANNEL_WIDTH_160)
-   bandwidth = 3;
-
-   switch (DataRate) {
+   /* adapter->registrypriv.RegPwrTblSel, idx_regulation); */
+
+   if (band_type == BAND_ON_2_4G)
+   idx_band = 0;
+   else if (band_type == BAND_ON_5G)
+   idx_band = 1;
+
+   if (bandwidth == CHANNEL_WIDTH_20)
+   idx_bandwidth = 0;
+   else if (bandwidth == CHANNEL_WIDTH_40)
+   idx_bandwidth = 1;
+   else if (bandwidth == CHANNEL_WIDTH_80)
+   idx_bandwidth = 2;
+   else if (bandwidth == CHANNEL_WIDTH_160)
+   idx_bandwidth = 3;
+
+   switch (data_rate) {
case MGN_1M: case MGN_2M: case MGN_5_5M: case MGN_11M:
-   rateSection = 0;
+   idx_rate_sctn = 0;
break;
 
case MGN_6M: case MGN_9M: case MGN_12M: case MGN_18M:
case MGN_24M: case MGN_36M: case MGN_48M: case MGN_54M:
-   rateSection = 1;
+   idx_rate_sctn = 1;
break;
 
case MGN_MCS0: case MGN_MCS1: case MGN_MCS2: case MGN_MCS3:
case MGN_MCS4: case MGN_MCS5: case MGN_MCS6: case MGN_MCS7:
-   rateSection = 2;
+   idx_rate_sctn = 2;
break;
 
case MGN_MCS8: case MGN_MCS9: case MGN_MCS10: case MGN_MCS11:
case MGN_MCS12: case MGN_MCS13: case MGN_MCS14: case MGN_MCS15:
-   rateSection = 3;
+   

[PATCH 09/11] staging: rtl8723bs: Merge conditionals with similar bodies.

2018-06-16 Thread Quytelda Kahja
Two conditionals that set 'channel' based on 'band_type' in
'phy_get_tx_pwr_lmt()' can be simplified into one single-line conditional.

Signed-off-by: Quytelda Kahja 
---
 drivers/staging/rtl8723bs/hal/hal_com_phycfg.c | 8 ++--
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index dd097df86fa3..9e6dc238c028 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1738,12 +1738,8 @@ s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 
reg_pwr_tbl_sel,
idx_bandwidth = 1;
}
 
-   if (band_type == BAND_ON_2_4G)
-   channel = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_2_4G,
-   channel);
-   else if (band_type == BAND_ON_5G)
-   channel = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_5G,
-   channel);
+   if (band_type == BAND_ON_2_4G || band_type == BAND_ON_5G)
+   channel = phy_GetChannelIndexOfTxPowerLimit(band_type, channel);
 
if (idx_band == -1 || idx_regulation == -1 || idx_bandwidth == -1 ||
idx_rate_sctn == -1 || idx_channel == -1) {
-- 
2.17.1

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


[PATCH 05/11] staging: rtl8723bs: Remove empty else-if conditional.

2018-06-16 Thread Quytelda Kahja
This else-if conditional block does nothing; remove it.

Signed-off-by: Quytelda Kahja 
---
 drivers/staging/rtl8723bs/hal/hal_com_phycfg.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 5d44aee44eb1..6ae646ec3d06 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1751,9 +1751,6 @@ s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 
reg_pwr_tbl_sel,
else if (band_type == BAND_ON_5G)
channel = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_5G,
channel);
-   else if (band_type == BAND_ON_BOTH) {
-   /*  BAND_ON_BOTH don't care temporarily */
-   }
 
if (idx_band == -1 || idx_regulation == -1 || idx_bandwidth == -1 ||
idx_rate_sctn == -1 || idx_channel == -1) {
-- 
2.17.1

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


[PATCH 11/11] staging: rtl8723bs: Add missing curly braces on else statement.

2018-06-16 Thread Quytelda Kahja
Fix 'braces {} should be used on all arms of this statement' coding
style problem in 'phy_get_tx_pwr_lmt()'.

Signed-off-by: Quytelda Kahja 
---
 drivers/staging/rtl8723bs/hal/hal_com_phycfg.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 0e49f0973c12..0d2c61b67d0e 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1780,8 +1780,9 @@ s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 
reg_pwr_tbl_sel,
   [idx_rate_sctn]
   [idx_channel]
   [rf_path];
-   } else
+   } else {
DBG_871X("No power limit table of the specified band\n");
+   }
 
/*  combine 5G VHT & HT rate */
/*  5G 20M and 40M HT and VHT can cross reference */
-- 
2.17.1

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


[PATCH 04/11] staging: rtl8723bs: Combine if statements with equivalent body.

2018-06-16 Thread Quytelda Kahja
Two if statements that carry out the same operation can be combined with
a logical OR.

Signed-off-by: Quytelda Kahja 
---
 drivers/staging/rtl8723bs/hal/hal_com_phycfg.c | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 7e27d7ff29fa..5d44aee44eb1 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1734,12 +1734,8 @@ s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 
reg_pwr_tbl_sel,
 
/*  workaround for wrong index combination to obtain tx power limit, */
/*  OFDM only exists in BW 20M */
-   if (idx_rate_sctn == 1)
-   idx_bandwidth = 0;
-
-   /*  workaround for wrong index combination to obtain tx power limit, */
/*  CCK table will only be given in BW 20M */
-   if (idx_rate_sctn == 0)
+   if (idx_rate_sctn == 0 || idx_rate_sctn == 1)
idx_bandwidth = 0;
 
/*  workaround for wrong indxe combination to obtain tx power limit, */
-- 
2.17.1

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


[PATCH 06/11] staging: rtl8723bs: Move rate section index lookup to new function.

2018-06-16 Thread Quytelda Kahja
The rate section lookup is a large switch statement in the middle of
'phy_get_tx_pwr_lmt()'; refactor this statement into it's own function
for increased readability.

Signed-off-by: Quytelda Kahja 
---
 .../staging/rtl8723bs/hal/hal_com_phycfg.c| 109 --
 1 file changed, 47 insertions(+), 62 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 6ae646ec3d06..4b5219481b33 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1612,6 +1612,52 @@ static s8 phy_GetChannelIndexOfTxPowerLimit(u8 Band, u8 
Channel)
return channelIndex;
 }
 
+static s16 get_rate_sctn_idx(const u8 rate)
+{
+   switch (rate) {
+   case MGN_1M: case MGN_2M: case MGN_5_5M: case MGN_11M:
+   return 0;
+   case MGN_6M: case MGN_9M: case MGN_12M: case MGN_18M:
+   case MGN_24M: case MGN_36M: case MGN_48M: case MGN_54M:
+   return 1;
+   case MGN_MCS0: case MGN_MCS1: case MGN_MCS2: case MGN_MCS3:
+   case MGN_MCS4: case MGN_MCS5: case MGN_MCS6: case MGN_MCS7:
+   return 2;
+   case MGN_MCS8: case MGN_MCS9: case MGN_MCS10: case MGN_MCS11:
+   case MGN_MCS12: case MGN_MCS13: case MGN_MCS14: case MGN_MCS15:
+   return 3;
+   case MGN_MCS16: case MGN_MCS17: case MGN_MCS18: case MGN_MCS19:
+   case MGN_MCS20: case MGN_MCS21: case MGN_MCS22: case MGN_MCS23:
+   return 4;
+   case MGN_MCS24: case MGN_MCS25: case MGN_MCS26: case MGN_MCS27:
+   case MGN_MCS28: case MGN_MCS29: case MGN_MCS30: case MGN_MCS31:
+   return 5;
+   case MGN_VHT1SS_MCS0: case MGN_VHT1SS_MCS1: case MGN_VHT1SS_MCS2:
+   case MGN_VHT1SS_MCS3: case MGN_VHT1SS_MCS4: case MGN_VHT1SS_MCS5:
+   case MGN_VHT1SS_MCS6: case MGN_VHT1SS_MCS7: case MGN_VHT1SS_MCS8:
+   case MGN_VHT1SS_MCS9:
+   return 6;
+   case MGN_VHT2SS_MCS0: case MGN_VHT2SS_MCS1: case MGN_VHT2SS_MCS2:
+   case MGN_VHT2SS_MCS3: case MGN_VHT2SS_MCS4: case MGN_VHT2SS_MCS5:
+   case MGN_VHT2SS_MCS6: case MGN_VHT2SS_MCS7: case MGN_VHT2SS_MCS8:
+   case MGN_VHT2SS_MCS9:
+   return 7;
+   case MGN_VHT3SS_MCS0: case MGN_VHT3SS_MCS1: case MGN_VHT3SS_MCS2:
+   case MGN_VHT3SS_MCS3: case MGN_VHT3SS_MCS4: case MGN_VHT3SS_MCS5:
+   case MGN_VHT3SS_MCS6: case MGN_VHT3SS_MCS7: case MGN_VHT3SS_MCS8:
+   case MGN_VHT3SS_MCS9:
+   return 8;
+   case MGN_VHT4SS_MCS0: case MGN_VHT4SS_MCS1: case MGN_VHT4SS_MCS2:
+   case MGN_VHT4SS_MCS3: case MGN_VHT4SS_MCS4: case MGN_VHT4SS_MCS5:
+   case MGN_VHT4SS_MCS6: case MGN_VHT4SS_MCS7: case MGN_VHT4SS_MCS8:
+   case MGN_VHT4SS_MCS9:
+   return 9;
+   default:
+   DBG_871X("Wrong rate 0x%x\n", rate);
+   return -1;
+   }
+}
+
 s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 reg_pwr_tbl_sel,
  enum BAND_TYPE band_type, enum CHANNEL_WIDTH bandwidth,
  u8 rf_path, u8 data_rate, u8 channel)
@@ -1666,68 +1712,7 @@ s8 phy_get_tx_pwr_lmt(struct adapter *adapter, u32 
reg_pwr_tbl_sel,
else if (bandwidth == CHANNEL_WIDTH_160)
idx_bandwidth = 3;
 
-   switch (data_rate) {
-   case MGN_1M: case MGN_2M: case MGN_5_5M: case MGN_11M:
-   idx_rate_sctn = 0;
-   break;
-
-   case MGN_6M: case MGN_9M: case MGN_12M: case MGN_18M:
-   case MGN_24M: case MGN_36M: case MGN_48M: case MGN_54M:
-   idx_rate_sctn = 1;
-   break;
-
-   case MGN_MCS0: case MGN_MCS1: case MGN_MCS2: case MGN_MCS3:
-   case MGN_MCS4: case MGN_MCS5: case MGN_MCS6: case MGN_MCS7:
-   idx_rate_sctn = 2;
-   break;
-
-   case MGN_MCS8: case MGN_MCS9: case MGN_MCS10: case MGN_MCS11:
-   case MGN_MCS12: case MGN_MCS13: case MGN_MCS14: case MGN_MCS15:
-   idx_rate_sctn = 3;
-   break;
-
-   case MGN_MCS16: case MGN_MCS17: case MGN_MCS18: case MGN_MCS19:
-   case MGN_MCS20: case MGN_MCS21: case MGN_MCS22: case MGN_MCS23:
-   idx_rate_sctn = 4;
-   break;
-
-   case MGN_MCS24: case MGN_MCS25: case MGN_MCS26: case MGN_MCS27:
-   case MGN_MCS28: case MGN_MCS29: case MGN_MCS30: case MGN_MCS31:
-   idx_rate_sctn = 5;
-   break;
-
-   case MGN_VHT1SS_MCS0: case MGN_VHT1SS_MCS1: case MGN_VHT1SS_MCS2:
-   case MGN_VHT1SS_MCS3: case MGN_VHT1SS_MCS4: case MGN_VHT1SS_MCS5:
-   case MGN_VHT1SS_MCS6: case MGN_VHT1SS_MCS7: case MGN_VHT1SS_MCS8:
-   case MGN_VHT1SS_MCS9:
-   idx_rate_sctn = 6;
-   break;
-
-   case MGN_VHT2SS_MCS0: case MGN_VHT2SS_MCS1: case MGN_VHT2SS_MCS2:
-   case MGN_VHT2SS_MCS3: case MGN_VHT2SS_MCS4: case MGN_VHT2SS_MCS5:
-   case MGN_VHT2SS_MCS6: case MGN_VHT2SS_MCS7: case MGN_VHT2SS_MCS8:
-   case 

[PATCH 02/11] staging: rtl8723bs: Rename PHY_GetTxPowerLimit().

2018-06-16 Thread Quytelda Kahja
Rename camel-case 'PHY_GetTxPowerLimit()' to 'phy_get_tx_pwr_lmt()'.

Signed-off-by: Quytelda Kahja 
---
 drivers/staging/rtl8723bs/hal/hal_com_phycfg.c | 6 +++---
 drivers/staging/rtl8723bs/hal/rtl8723b_phycfg.c| 2 +-
 drivers/staging/rtl8723bs/include/hal_com_phycfg.h | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c 
b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
index 5f727a7c16fd..4ab624f5ece0 100644
--- a/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/hal_com_phycfg.c
@@ -1612,9 +1612,9 @@ static s8 phy_GetChannelIndexOfTxPowerLimit(u8 Band, u8 
Channel)
return channelIndex;
 }
 
-s8 PHY_GetTxPowerLimit(struct adapter *Adapter, u32 RegPwrTblSel,
-  enum BAND_TYPE Band, enum CHANNEL_WIDTH Bandwidth,
-  u8 RfPath, u8 DataRate, u8 Channel)
+s8 phy_get_tx_pwr_lmt(struct adapter *Adapter, u32 RegPwrTblSel,
+ enum BAND_TYPE Band, enum CHANNEL_WIDTH Bandwidth,
+ u8 RfPath, u8 DataRate, u8 Channel)
 {
s16 band= -1;
s16 regulation  = -1;
diff --git a/drivers/staging/rtl8723bs/hal/rtl8723b_phycfg.c 
b/drivers/staging/rtl8723bs/hal/rtl8723b_phycfg.c
index 50428f688859..78a4828ecb65 100644
--- a/drivers/staging/rtl8723bs/hal/rtl8723b_phycfg.c
+++ b/drivers/staging/rtl8723bs/hal/rtl8723b_phycfg.c
@@ -688,7 +688,7 @@ u8 PHY_GetTxPowerIndex_8723B(
txPower = (s8) PHY_GetTxPowerIndexBase(padapter, RFPath, Rate, 
BandWidth, Channel, );
powerDiffByRate = PHY_GetTxPowerByRate(padapter, BAND_ON_2_4G, 
ODM_RF_PATH_A, RF_1TX, Rate);
 
-   limit = PHY_GetTxPowerLimit(
+   limit = phy_get_tx_pwr_lmt(
padapter,
padapter->registrypriv.RegPwrTblSel,
(u8)(!bIn24G),
diff --git a/drivers/staging/rtl8723bs/include/hal_com_phycfg.h 
b/drivers/staging/rtl8723bs/include/hal_com_phycfg.h
index c5184315f82f..f841546584a7 100644
--- a/drivers/staging/rtl8723bs/include/hal_com_phycfg.h
+++ b/drivers/staging/rtl8723bs/include/hal_com_phycfg.h
@@ -177,7 +177,7 @@ u8  Channel,
bool*bIn24G
);
 
-s8 PHY_GetTxPowerLimit (struct adapter *adapter, u32 RegPwrTblSel,
+s8 phy_get_tx_pwr_lmt (struct adapter *adapter, u32 RegPwrTblSel,
enum BAND_TYPE Band, enum CHANNEL_WIDTH Bandwidth,
 u8 RfPath,
 u8 DataRate,
-- 
2.17.1

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


[PATCHv2 2/2] staging: mt7621-dts: Fix remaining pcie warnings

2018-06-16 Thread Rosen Penev
This currently fixes the remaining dtb warnings:

Node /pcie@1e14/pcie0 has a reg or ranges property, but no unit name
Node /pcie@1e14/pcie1 has a reg or ranges property, but no unit name
Node /pcie@1e14/pcie2 has a reg or ranges property, but no unit name
Node /pcie@1e14/pcie0 node name is not "pci" or "pcie"
Node /pcie@1e14/pcie0 missing ranges for PCI bridge (or not a bridge)
Node /pcie@1e14/pcie0 missing bus-range for PCI bridge
Node /pcie@1e14/pcie1 node name is not "pci" or "pcie"
Node /pcie@1e14/pcie1 missing ranges for PCI bridge (or not a bridge)
Node /pcie@1e14/pcie1 missing bus-range for PCI bridge
Node /pcie@1e14/pcie2 node name is not "pci" or "pcie"
Node /pcie@1e14/pcie2 missing ranges for PCI bridge (or not a bridge)
Node /pcie@1e14/pcie2 missing bus-range for PCI bridge
Warning (unit_address_format): Failed prerequisite 'pci_bridge'
Warning (pci_device_reg): Failed prerequisite 'pci_bridge'
Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge'

device_type was removed since according to documentation, it's deprecated
for pci(e) devices.

Signed-off-by: Rosen Penev 
---
 drivers/staging/mt7621-dts/gbpc1.dts   |  2 ++
 drivers/staging/mt7621-dts/mt7621.dtsi | 21 +
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/mt7621-dts/gbpc1.dts 
b/drivers/staging/mt7621-dts/gbpc1.dts
index 6b13d85d9d34..87555600195f 100644
--- a/drivers/staging/mt7621-dts/gbpc1.dts
+++ b/drivers/staging/mt7621-dts/gbpc1.dts
@@ -113,6 +113,8 @@
 };
 
  {
+   pinctrl-names = "default";
+   pinctrl-0 = <_pins>;
status = "okay";
 };
 
diff --git a/drivers/staging/mt7621-dts/mt7621.dtsi 
b/drivers/staging/mt7621-dts/mt7621.dtsi
index efbdc68b7310..60a373a3e785 100644
--- a/drivers/staging/mt7621-dts/mt7621.dtsi
+++ b/drivers/staging/mt7621-dts/mt7621.dtsi
@@ -454,31 +454,28 @@
clocks = < 24  25  26>;
clock-names = "pcie0", "pcie1", "pcie2";
 
-   pcie0 {
+   pcie@0,0 {
reg = <0x 0 0 0 0>;
-
#address-cells = <3>;
#size-cells = <2>;
-
-   device_type = "pci";
+   ranges;
+   bus-range = <0x00 0xff>;
};
 
-   pcie1 {
+   pcie@1,0 {
reg = <0x0800 0 0 0 0>;
-
#address-cells = <3>;
#size-cells = <2>;
-
-   device_type = "pci";
+   ranges;
+   bus-range = <0x00 0xff>;
};
 
-   pcie2 {
+   pcie@2,0 {
reg = <0x1000 0 0 0 0>;
-
#address-cells = <3>;
#size-cells = <2>;
-
-   device_type = "pci";
+   ranges;
+   bus-range = <0x00 0xff>;
};
};
 };
-- 
2.17.1

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


Re: [PATCH v2] staging: rtl8712: Adjust if statements to reduce indentation level

2018-06-16 Thread Joe Perches
On Sat, 2018-06-16 at 15:03 +0900, Joonhwan Kim wrote:
> Merge two condition of if statements in
> r8712_surveydone_event_callback()

Are you sure you are not changing the logic here?

I think it'd be nicer to refactor the code instead.

Something like:
---
 drivers/staging/rtl8712/rtl871x_mlme.c | 73 +-
 1 file changed, 36 insertions(+), 37 deletions(-)

diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c 
b/drivers/staging/rtl8712/rtl871x_mlme.c
index ac547ddd72d1..d711305b33e1 100644
--- a/drivers/staging/rtl8712/rtl871x_mlme.c
+++ b/drivers/staging/rtl8712/rtl871x_mlme.c
@@ -552,6 +552,19 @@ void r8712_survey_event_callback(struct _adapter *adapter, 
u8 *pbuf)
spin_unlock_irqrestore(>lock2, flags);
 }
 
+static bool r8712_under_linking_then_join(struct mlme_priv *pmlmepriv)
+{
+   set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
+
+   if (r8712_select_and_join_from_scan(pmlmepriv) != _SUCCESS)
+   return false;
+
+   mod_timer(>assoc_timer,
+ jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT));
+
+   return true;
+}
+
 void r8712_surveydone_event_callback(struct _adapter *adapter, u8 *pbuf)
 {
unsigned long irqL;
@@ -565,45 +578,31 @@ void r8712_surveydone_event_callback(struct _adapter 
*adapter, u8 *pbuf)
_clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY);
}
 
-   if (pmlmepriv->to_join) {
-   if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) {
-   if (!check_fwstate(pmlmepriv, _FW_LINKED)) {
-   set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
+   if (!pmlmepriv->to_join)
+   goto exit;
+
+   if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) {
+   if (check_fwstate(pmlmepriv, _FW_LINKED) ||
+   r8712_under_linking_then_join(pmlmepriv))
+   goto exit;
+
+   pmlmepriv->fw_state ^= _FW_UNDER_SURVEY;
+   memcpy(>registrypriv.dev_network.Ssid,
+  >assoc_ssid,
+  sizeof(struct ndis_802_11_ssid));
+   r8712_update_registrypriv_dev_network(adapter);
+   
r8712_generate_random_ibss(adapter->registrypriv.dev_network.MacAddress);
+   pmlmepriv->fw_state = WIFI_ADHOC_MASTER_STATE;
+   pmlmepriv->to_join = false;
+   } else {
+   pmlmepriv->to_join = false;
+   if (r8712_under_linking_then_join(pmlmepriv))
+   goto exit;
 
-   if (r8712_select_and_join_from_scan(pmlmepriv)
-   == _SUCCESS) {
-   mod_timer(>assoc_timer, 
jiffies +
- 
msecs_to_jiffies(MAX_JOIN_TIMEOUT));
-   } else {
-   struct wlan_bssid_ex *pdev_network =
- &(adapter->registrypriv.dev_network);
-   u8 *pibss =
-adapter->registrypriv.
-   dev_network.MacAddress;
-   pmlmepriv->fw_state ^= _FW_UNDER_SURVEY;
-   memcpy(_network->Ssid,
-   >assoc_ssid,
-   sizeof(struct
-ndis_802_11_ssid));
-   r8712_update_registrypriv_dev_network
-   (adapter);
-   r8712_generate_random_ibss(pibss);
-   pmlmepriv->fw_state =
-WIFI_ADHOC_MASTER_STATE;
-   pmlmepriv->to_join = false;
-   }
-   }
-   } else {
-   pmlmepriv->to_join = false;
-   set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
-   if (r8712_select_and_join_from_scan(pmlmepriv) ==
-   _SUCCESS)
-   mod_timer(>assoc_timer, jiffies +
- msecs_to_jiffies(MAX_JOIN_TIMEOUT));
-   else
-   _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-   }
+   _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
}
+
+exit:
spin_unlock_irqrestore(>lock, irqL);
 }
 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8192u: fix line over 80 characters

2018-06-16 Thread Joe Perches
On Sat, 2018-06-16 at 15:22 -0400, valdis.kletni...@vt.edu wrote:
> On Sat, 16 Jun 2018 15:00:31 +0900, Hyunil Kim said:
> > *fix checkpatch.pl warnings:
> >  WARNING: line over 80 characters
> > +   if (((ieee->wpa_ie[0] == 0xdd) &&
> > +   (!memcmp(&(ieee->wpa_ie[14]), ccmp_ie, 4))) ||
> > +   ((ieee->wpa_ie[0] == 0x30) &&
> > +   (!memcmp(>wpa_ie[10], ccmp_rsn_ie, 4
> 
> Ouch. The && and || at ends of line mean a lot of parenthesis counting to
> figure out which goes with which.  Use additional indentation to help
> understanding.
> 
> + if (((ieee->wpa_ie[0] == 0xdd) &&
> + (!memcmp(&(ieee->wpa_ie[14]), ccmp_ie, 4))) ||
> + ((ieee->wpa_ie[0] == 0x30) &&
> + (!memcmp(>wpa_ie[10], ccmp_rsn_ie, 4
> 
> Or perhaps
> 
> + if (((ieee->wpa_ie[0] == 0xdd) &&
> + (!memcmp(&(ieee->wpa_ie[14]), ccmp_ie, 4)))
> +  || ((ieee->wpa_ie[0] == 0x30) &&
> + (!memcmp(>wpa_ie[10], ccmp_rsn_ie, 4

Or perhaps refactor to something like:
---
 drivers/staging/rtl8192u/r8192U_core.c | 20 +---
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/rtl8192u/r8192U_core.c 
b/drivers/staging/rtl8192u/r8192U_core.c
index 8b17400f6c13..593ecc0ae1ae 100644
--- a/drivers/staging/rtl8192u/r8192U_core.c
+++ b/drivers/staging/rtl8192u/r8192U_core.c
@@ -2039,20 +2039,18 @@ static bool GetNmodeSupportBySecCfg8192(struct 
net_device *dev)
   (strcmp(crypt->ops->name, "WEP") == 0));
 
/* simply judge  */
-   if (encrypt && (wpa_ie_len == 0)) {
-   /* wep encryption, no N mode setting */
+   /* wep encryption, no N mode setting */
+   if (encrypt && wpa_ie_len == 0)
return false;
-   } else if ((wpa_ie_len != 0)) {
-   /* parse pairwise key type */
-   if (((ieee->wpa_ie[0] == 0xdd) && (!memcmp(&(ieee->wpa_ie[14]), 
ccmp_ie, 4))) || ((ieee->wpa_ie[0] == 0x30) && (!memcmp(>wpa_ie[10], 
ccmp_rsn_ie, 4
-   return true;
-   else
-   return false;
-   } else {
+
+   if (wpa_ie_len == 0)
return true;
-   }
 
-   return true;
+   /* parse pairwise key type */
+   return (ieee->wpa_ie[0] == 0xdd &&
+   !memcmp(>wpa_ie[14], ccmp_ie, 4)) ||
+  (ieee->wpa_ie[0] == 0x30 &&
+   !memcmp(>wpa_ie[10], ccmp_rsn_ie, 4));
 }
 
 static bool GetHalfNmodeSupportByAPs819xUsb(struct net_device *dev)

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


Re: [PATCH] staging: rtl8192u: fix line over 80 characters

2018-06-16 Thread valdis . kletnieks
On Sat, 16 Jun 2018 15:00:31 +0900, Hyunil Kim said:
> *fix checkpatch.pl warnings:
>  WARNING: line over 80 characters

> + if (((ieee->wpa_ie[0] == 0xdd) &&
> + (!memcmp(&(ieee->wpa_ie[14]), ccmp_ie, 4))) ||
> + ((ieee->wpa_ie[0] == 0x30) &&
> + (!memcmp(>wpa_ie[10], ccmp_rsn_ie, 4

Ouch. The && and || at ends of line mean a lot of parenthesis counting to
figure out which goes with which.  Use additional indentation to help
understanding.

+   if (((ieee->wpa_ie[0] == 0xdd) &&
+   (!memcmp(&(ieee->wpa_ie[14]), ccmp_ie, 4))) ||
+   ((ieee->wpa_ie[0] == 0x30) &&
+   (!memcmp(>wpa_ie[10], ccmp_rsn_ie, 4

Or perhaps

+   if (((ieee->wpa_ie[0] == 0xdd) &&
+   (!memcmp(&(ieee->wpa_ie[14]), ccmp_ie, 4)))
+|| ((ieee->wpa_ie[0] == 0x30) &&
+   (!memcmp(>wpa_ie[10], ccmp_rsn_ie, 4





pgpq1eSzNkPsj.pgp
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging:iio:accel:adis16203: sign extend function rather code duplication

2018-06-16 Thread Jonathan Cameron
On Tue, 12 Jun 2018 18:48:38 +0200
Karim Eshapa  wrote:

> Use sign_extend32 kernel function instead of code duplication.
> This function is also safe for 16 bits.
> 
> Signed-off-by: Karim Eshapa 

Applied to the togreg branch of iio.git and pushed out as testing
for the autobuilders to play with it.

Thanks,

Jonathan

> ---
>  drivers/staging/iio/accel/adis16203.c | 6 +-
>  1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/drivers/staging/iio/accel/adis16203.c 
> b/drivers/staging/iio/accel/adis16203.c
> index b3e4571340ab..5cc96c8086b5 100644
> --- a/drivers/staging/iio/accel/adis16203.c
> +++ b/drivers/staging/iio/accel/adis16203.c
> @@ -168,7 +168,6 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
>  {
>   struct adis *st = iio_priv(indio_dev);
>   int ret;
> - int bits;
>   u8 addr;
>   s16 val16;
>  
> @@ -202,14 +201,11 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
>   *val = 25000 / -470 - 1278; /* 25 C = 1278 */
>   return IIO_VAL_INT;
>   case IIO_CHAN_INFO_CALIBBIAS:
> - bits = 14;
>   addr = adis16203_addresses[chan->scan_index];
>   ret = adis_read_reg_16(st, addr, );
>   if (ret)
>   return ret;
> - val16 &= (1 << bits) - 1;
> - val16 = (s16)(val16 << (16 - bits)) >> (16 - bits);
> - *val = val16;
> + *val = sign_extend32(val16, 13);
>   return IIO_VAL_INT;
>   default:
>   return -EINVAL;

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


Re: [PATCH v2] staging:iio:accel:adis16240: sign extend function avoiding code duplication

2018-06-16 Thread Jonathan Cameron
On Tue, 12 Jun 2018 18:21:53 +0200
Karim Eshapa  wrote:

> Use sign_extend32 kernel function instead of code duplication,
> Safe also for 16 bit. and remove declaration of bits variable not needed.
> 
> Signed-off-by: Karim Eshapa 

Please consider how a patch is applied and resend as a v3 which can actually 
be applied.  Test it (by applying it yourself) to make sure you have everything 
correct...

Jonathan

> 
> >On Tue, 2018-06-12 at 01:38 +0200, Karim Eshapa wrote:  
> >> Use sign_extend32 kernel function instead of code duplication.
> >> Safe also for 16 bit.  
> >
> >Perhaps remove the bits declaration and assignments
> >and just use 9 directly.
> >  
> >> diff --git a/drivers/staging/iio/accel/adis16240.c 
> >> b/drivers/staging/iio/accel/adis16240.c  
> >  
> >> @@ -292,9 +292,7 @@ static int adis16240_read_raw(struct iio_dev 
> >> *indio_dev,
> >>   ret = adis_read_reg_16(st, addr, );
> >>   if (ret)
> >>   return ret;
> >> - val16 &= (1 << bits) - 1;
> >> - val16 = (s16)(val16 << (16 - bits)) >> (16 - bits);
> >> - *val = val16;
> >> + *val = sign_extend32(val16, bits - 1);
> >>   return IIO_VAL_INT;
> >>   case IIO_CHAN_INFO_PEAK:
> >>   bits = 10;
> >> @@ -302,9 +300,7 @@ static int adis16240_read_raw(struct iio_dev 
> >> *indio_dev,
> >>   ret = adis_read_reg_16(st, addr, );
> >>   if (ret)
> >>   return ret;
> >> - val16 &= (1 << bits) - 1;
> >> - val16 = (s16)(val16 << (16 - bits)) >> (16 - bits);
> >> - *val = val16;
> >> + *val = sign_extend32(val16, bits - 1);
> >>   return IIO_VAL_INT;
> >>   }
> >>   return -EINVAL;  
> ---
>  drivers/staging/iio/accel/adis16240.c | 11 ++-
>  1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/staging/iio/accel/adis16240.c 
> b/drivers/staging/iio/accel/adis16240.c
> index fff6d99089cc..24e525f1ef25 100644
> --- a/drivers/staging/iio/accel/adis16240.c
> +++ b/drivers/staging/iio/accel/adis16240.c
> @@ -250,7 +250,6 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
>  {
>   struct adis *st = iio_priv(indio_dev);
>   int ret;
> - int bits;
>   u8 addr;
>   s16 val16;
>  
> @@ -287,24 +286,18 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
>   *val = 25000 / 244 - 0x133; /* 25 C = 0x133 */
>   return IIO_VAL_INT;
>   case IIO_CHAN_INFO_CALIBBIAS:
> - bits = 10;
>   addr = adis16240_addresses[chan->scan_index][0];
>   ret = adis_read_reg_16(st, addr, );
>   if (ret)
>   return ret;
> - val16 &= (1 << bits) - 1;
> - val16 = (s16)(val16 << (16 - bits)) >> (16 - bits);
> - *val = val16;
> + *val = sign_extend32(val16, 9);
>   return IIO_VAL_INT;
>   case IIO_CHAN_INFO_PEAK:
> - bits = 10;
>   addr = adis16240_addresses[chan->scan_index][1];
>   ret = adis_read_reg_16(st, addr, );
>   if (ret)
>   return ret;
> - val16 &= (1 << bits) - 1;
> - val16 = (s16)(val16 << (16 - bits)) >> (16 - bits);
> - *val = val16;
> + *val = sign_extend32(val16, 9);
>   return IIO_VAL_INT;
>   }
>   return -EINVAL;

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


Hello friend

2018-06-16 Thread Margaret Kwan Wing Han
I humble request your lucrative assistant for a business proposal. For complete 
elaboration kindly reply for more details via email: magerateh0...@gmail.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v5] staging: rtl8192u: add error handling for usb_alloc_urb

2018-06-16 Thread Zhouyang Jia
When usb_alloc_urb fails, the lack of error-handling code may
cause unexpected results.

This patch adds error-handling code after calling usb_alloc_urb,
and fixes memory leaks in error paths.

Signed-off-by: Zhouyang Jia 
---
v1->v2:
- Fix memory leak.
v2->v3:
- Release memory in error path.
v3->v4:
- Use kcalloc instead of kmalloc_array.
v4->v5:
- Free priv->rx_urb[i]->transfer_buffer and priv->oldaddr.
---
 drivers/staging/rtl8192u/r8192U_core.c | 34 --
 1 file changed, 24 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/rtl8192u/r8192U_core.c 
b/drivers/staging/rtl8192u/r8192U_core.c
index 7a0dbc0..9413f29 100644
--- a/drivers/staging/rtl8192u/r8192U_core.c
+++ b/drivers/staging/rtl8192u/r8192U_core.c
@@ -1639,8 +1639,9 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff 
*skb)
 static short rtl8192_usb_initendpoints(struct net_device *dev)
 {
struct r8192_priv *priv = ieee80211_priv(dev);
+   int i;
 
-   priv->rx_urb = kmalloc(sizeof(struct urb *) * (MAX_RX_URB + 1),
+   priv->rx_urb = kcalloc(MAX_RX_URB + 1, sizeof(struct urb *),
   GFP_KERNEL);
if (!priv->rx_urb)
return -ENOMEM;
@@ -1649,12 +1650,12 @@ static short rtl8192_usb_initendpoints(struct 
net_device *dev)
for (i = 0; i < (MAX_RX_URB + 1); i++) {
priv->rx_urb[i] = usb_alloc_urb(0, GFP_KERNEL);
if (!priv->rx_urb[i])
-   return -ENOMEM;
+   goto out_release_urb;
 
priv->rx_urb[i]->transfer_buffer =
kmalloc(RX_URB_SIZE, GFP_KERNEL);
if (!priv->rx_urb[i]->transfer_buffer)
-   return -ENOMEM;
+   goto out_release_urb;
 
priv->rx_urb[i]->transfer_buffer_length = RX_URB_SIZE;
}
@@ -1666,9 +1667,13 @@ static short rtl8192_usb_initendpoints(struct net_device 
*dev)
void *oldaddr, *newaddr;
 
priv->rx_urb[16] = usb_alloc_urb(0, GFP_KERNEL);
+   if (!priv->rx_urb[16])
+   goto out_release_urb;
+
priv->oldaddr = kmalloc(16, GFP_KERNEL);
if (!priv->oldaddr)
-   return -ENOMEM;
+   goto out_release_urb;
+
oldaddr = priv->oldaddr;
align = ((long)oldaddr) & 3;
if (align) {
@@ -1686,17 +1691,26 @@ static short rtl8192_usb_initendpoints(struct 
net_device *dev)
priv->pp_rxskb = kcalloc(MAX_RX_URB, sizeof(struct sk_buff *),
 GFP_KERNEL);
if (!priv->pp_rxskb) {
-   kfree(priv->rx_urb);
-
-   priv->pp_rxskb = NULL;
-   priv->rx_urb = NULL;
-
DMESGE("Endpoint Alloc Failure");
-   return -ENOMEM;
+   goto out_release_oldaddr;
}
 
netdev_dbg(dev, "End of initendpoints\n");
return 0;
+
+out_release_oldaddr:
+   kfree(priv->oldaddr);
+
+out_release_urb:
+   for (i = 0; i < (MAX_RX_URB + 1); i++) {
+   if (priv->rx_urb[i]) {
+   kfree(priv->rx_urb[i]->transfer_buffer);
+   kfree(priv->rx_urb[i]);
+   }
+   }
+   kfree(priv->rx_urb);
+   priv->rx_urb = NULL;
+   return -ENOMEM;
 }
 
 #ifdef THOMAS_BEACON
-- 
2.7.4

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


[PATCH v2 23/34] staging: mt7621-mmc: Remove unused variable from msdc_tune_request

2018-06-16 Thread Christian Lütke-Stetzkamp
The variable cmd in the function msdc_tune_request is set but never
used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index e99a12002646..c5139a20e10f 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -1556,12 +1556,10 @@ static int msdc_check_busy(struct mmc_host *mmc, struct 
msdc_host *host)
 static int msdc_tune_request(struct mmc_host *mmc, struct mmc_request *mrq)
 {
struct msdc_host *host = mmc_priv(mmc);
-   struct mmc_command *cmd;
struct mmc_data *data;
//u32 base = host->base;
int ret = 0, read;
 
-   cmd  = mrq->cmd;
data = mrq->cmd->data;
 
read = data->flags & MMC_DATA_READ ? 1 : 0;
-- 
2.16.4

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


[PATCH v2 08/34] staging: mt7621-mmc: Replace sdr_write32 with writel

2018-06-16 Thread Christian Lütke-Stetzkamp
The current code uses a macro (sdr_write32) for writing to hardware,
but it is only a writel with switched arguments, so replace it to get
nearer to upstream code.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h |  1 -
 drivers/staging/mt7621-mmc/sd.c| 64 +-
 2 files changed, 32 insertions(+), 33 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index 33fa59a019ec..e8e79aab52f8 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -950,7 +950,6 @@ struct msdc_host {
 #define sdr_read8(reg)readb(reg)
 #define sdr_read32(reg)   readl(reg)
 #define sdr_write8(reg, val)  writeb(val, reg)
-#define sdr_write32(reg, val) writel(val, reg)
 
 static inline void sdr_set_bits(void __iomem *reg, u32 bs)
 {
diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 78a681a72f11..e6232f5ac6a8 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -174,7 +174,7 @@ static void msdc_reset_hw(struct msdc_host *host)
 #define msdc_clr_int() \
do {\
volatile u32 val = sdr_read32(MSDC_INT);\
-   sdr_write32(MSDC_INT, val); \
+   writel(val, MSDC_INT);  \
} while (0)
 
 #define msdc_clr_fifo() \
@@ -235,8 +235,8 @@ static u32 hclks[] = {5000}; /* +/- by chhung */
 
 #define sdc_send_cmd(cmd, arg) \
do {\
-   sdr_write32(SDC_ARG, (arg));\
-   sdr_write32(SDC_CMD, (cmd));\
+   writel((arg), SDC_ARG); \
+   writel((cmd), SDC_CMD); \
} while (0)
 
 // can modify to read h/w register.
@@ -476,7 +476,7 @@ static void msdc_select_clksrc(struct msdc_host *host, 
unsigned char clksrc)
} else {
val &= ~0x3; val |= clksrc;
}
-   sdr_write32(MSDC_CLKSRC_REG, val);
+   writel(val, MSDC_CLKSRC_REG);
 
host->hclk = hclks[clksrc];
host->hw->clk_src = clksrc;
@@ -1044,14 +1044,14 @@ static void msdc_dma_config(struct msdc_host *host, 
struct msdc_dma *dma)
case MSDC_MODE_DMA_BASIC:
BUG_ON(host->xfer_size > 65535);
BUG_ON(dma->sglen != 1);
-   sdr_write32(MSDC_DMA_SA, PHYSADDR(sg_dma_address(sg)));
+   writel(PHYSADDR(sg_dma_address(sg)), MSDC_DMA_SA);
sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_LASTBUF, 1);
 //#if defined (CONFIG_RALINK_MT7620)
if (ralink_soc == MT762X_SOC_MT7620A)
sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_XFERSZ, 
sg_dma_len(sg));
 //#elif defined (CONFIG_RALINK_MT7621) || defined (CONFIG_RALINK_MT7628)
else
-   sdr_write32((void __iomem *)(RALINK_MSDC_BASE + 0xa8), 
sg_dma_len(sg));
+   writel(sg_dma_len(sg), (void __iomem 
*)(RALINK_MSDC_BASE + 0xa8));
 //#endif
sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_BRUSTSZ,
  MSDC_BRUST_64B);
@@ -1094,7 +1094,7 @@ static void msdc_dma_config(struct msdc_host *host, 
struct msdc_dma *dma)
  MSDC_BRUST_64B);
sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_MODE, 1);
 
-   sdr_write32(MSDC_DMA_SA, PHYSADDR((u32)dma->gpd_addr));
+   writel(PHYSADDR((u32)dma->gpd_addr), MSDC_DMA_SA);
break;
 
default:
@@ -1172,7 +1172,7 @@ static int msdc_do_request(struct mmc_host *mmc, struct 
mmc_request *mrq)
}
}
 
-   sdr_write32(SDC_BLK_NUM, data->blocks);
+   writel(data->blocks, SDC_BLK_NUM);
//msdc_clr_fifo();  /* no need */
 
msdc_dma_on();  /* enable DMA mode first!! */
@@ -1465,8 +1465,8 @@ static int msdc_tune_bread(struct mmc_host *mmc, struct 
mmc_request *mrq)
cur_rxdly0 = (cur_dat0 << 24) | (cur_dat1 << 16) | (cur_dat2 << 
8) | (cur_dat3 << 0);
cur_rxdly1 = (cur_dat4 << 24) | (cur_dat5 << 16) | (cur_dat6 << 
8) | (cur_dat7 << 0);
 
-   sdr_write32(MSDC_DAT_RDDLY0, cur_rxdly0);
-   sdr_write32(MSDC_DAT_RDDLY1, cur_rxdly1);
+   writel(cur_rxdly0, MSDC_DAT_RDDLY0);
+   writel(cur_rxdly1, MSDC_DAT_RDDLY1);
 
} while (++rxdly < 32);
 
@@ -1555,7 +1555,7 @@ static int msdc_tune_bwrite(struct mmc_host *mmc, struct 
mmc_request *mrq)
cur_dat3 = orig_dat3;
 
cur_rxdly0 = (cur_dat0 << 24) | (cur_dat1 << 16) | (cur_dat2 << 
8) | (cur_dat3 << 0);
-   sdr_write32(MSDC_DAT_RDDLY0, cur_rxdly0);
+   writel(cur_rxdly0, MSDC_DAT_RDDLY0);
} while (++rxdly < 32);
 
 done:
@@ -1726,7 

[PATCH v2 06/34] staging: mt7621-mmc: Remove unused macro msdc_txfifocnt

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro msdc_txfifocnt is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 0f9cba918586..c6aced0c0a6a 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -147,7 +147,6 @@ static int msdc_rsp[] = {
7,  /* RESP_R1b */
 };
 
-#define msdc_txfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_TXCNT) >> 
16)
 #define msdc_rxfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_RXCNT) >> 0)
 
 #define msdc_dma_on()sdr_clr_bits(MSDC_CFG, MSDC_CFG_PIO)
-- 
2.16.4

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


[PATCH v2 20/34] staging: mt7621-mmc: Make msdc_clr_fifo a function and relax cpu

2018-06-16 Thread Christian Lütke-Stetzkamp
In the current code, msdc_clr_fifo is a macro and just busy waits for
a limited amount of time for the fifo clear to finish. That is not
correct, the programming manual hits, that the user should wait until
the bit is cleared by hardware and not a limited amount of time.

So the code is changed to a function, that also relaxes the cpu while
busy waiting.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 28 +++-
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index a506c7e19086..01a925ae662e 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -177,12 +177,14 @@ static void msdc_reset_hw(struct msdc_host *host)
writel(val, MSDC_INT);  \
} while (0)
 
-#define msdc_clr_fifo() \
-   do {\
-   int retry = 3, cnt = 1000;  \
-   sdr_set_bits(MSDC_FIFOCS, MSDC_FIFOCS_CLR); \
-   msdc_retry(readl(MSDC_FIFOCS) & MSDC_FIFOCS_CLR, retry, cnt); \
-   } while (0)
+static void msdc_clr_fifo(struct msdc_host *host)
+{
+   void __iomem *base = host->base;
+
+   sdr_set_bits(MSDC_FIFOCS, MSDC_FIFOCS_CLR);
+   while (readl(MSDC_FIFOCS) & MSDC_FIFOCS_CLR)
+   cpu_relax();
+}
 
 #define msdc_irq_save(val) \
do {\
@@ -554,7 +556,7 @@ static void msdc_abort_data(struct msdc_host *host)
ERR_MSG("Need to Abort.");
 
msdc_reset_hw(host);
-   msdc_clr_fifo();
+   msdc_clr_fifo(host);
msdc_clr_int();
 
// need to check FIFO count 0 ?
@@ -945,7 +947,7 @@ static unsigned int msdc_command_resp(struct msdc_host   
*host,
} else {
/* do basic: reset*/
msdc_reset_hw(host);
-   msdc_clr_fifo();
+   msdc_clr_fifo(host);
msdc_clr_int();
}
cmd->error = msdc_tune_cmdrsp(host, cmd);
@@ -1131,7 +1133,7 @@ static int msdc_do_request(struct mmc_host *mmc, struct 
mmc_request *mrq)
}
 
writel(data->blocks, SDC_BLK_NUM);
-   //msdc_clr_fifo();  /* no need */
+   //msdc_clr_fifo(host);  /* no need */
 
msdc_dma_on();  /* enable DMA mode first!! */
init_completion(>xfer_done);
@@ -1165,7 +1167,7 @@ static int msdc_do_request(struct mmc_host *mmc, struct 
mmc_request *mrq)
data->error = -ETIMEDOUT;
 
msdc_reset_hw(host);
-   msdc_clr_fifo();
+   msdc_clr_fifo(host);
msdc_clr_int();
}
spin_lock(>lock);
@@ -1868,7 +1870,7 @@ static irqreturn_t msdc_irq(int irq, void *dev_id)
if (intsts & datsts) {
/* do basic reset, or stop command will sdc_busy */
msdc_reset_hw(host);
-   msdc_clr_fifo();
+   msdc_clr_fifo(host);
msdc_clr_int();
 
if (intsts & MSDC_INT_DATTMO) {
@@ -1917,7 +1919,7 @@ static irqreturn_t msdc_irq(int irq, void *dev_id)
IRQ_MSG("XXX CMD<%d> MSDC_INT_CMDTMO", 
cmd->opcode);
cmd->error = -ETIMEDOUT;
msdc_reset_hw(host);
-   msdc_clr_fifo();
+   msdc_clr_fifo(host);
msdc_clr_int();
}
complete(>cmd_done);
@@ -2029,7 +2031,7 @@ static void msdc_init_hw(struct msdc_host *host)
 
/* Reset */
msdc_reset_hw(host);
-   msdc_clr_fifo();
+   msdc_clr_fifo(host);
 
/* Disable card detection */
sdr_clr_bits(MSDC_PS, MSDC_PS_CDEN);
-- 
2.16.4

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


[PATCH v2 22/34] staging: mt7621-mmc: Remove unused macro MAX_BD_PER_GPD

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro MAX_BD_PER_GPD is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 0e94bb0d5927..e99a12002646 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -91,7 +91,6 @@
 
 #define MAX_GPD_NUM (1 + 1)  /* one null gpd */
 #define MAX_BD_NUM  (1024)
-#define MAX_BD_PER_GPD  (MAX_BD_NUM)
 
 #define MAX_HW_SGMTS(MAX_BD_NUM)
 #define MAX_PHY_SGMTS   (MAX_BD_NUM)
-- 
2.16.4

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


[PATCH v2 17/34] staging: mt7621-mmc: Remove unused field sglen from msdc_dma

2018-06-16 Thread Christian Lütke-Stetzkamp
The field sglen from struct msdc_dma is once set and never read, so
remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h | 2 --
 drivers/staging/mt7621-mmc/sd.c| 2 --
 2 files changed, 4 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index c8c5c349adf8..4b56d9a37b84 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -479,8 +479,6 @@ struct bd {
 };
 
 struct msdc_dma {
-   u32 sglen;   /* size of scatter list */
-
struct gpd *gpd;  /* pointer to gpd array */
struct bd  *bd;   /* pointer to bd array */
dma_addr_t gpd_addr; /* the physical address of gpd array */
diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 050c4a910aef..e1077068604d 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -1041,8 +1041,6 @@ static void msdc_dma_setup(struct msdc_host *host, struct 
msdc_dma *dma,
 
BUG_ON(sglen > MAX_BD_NUM); /* not support currently */
 
-   dma->sglen = sglen;
-
N_MSG(DMA, "DMA sglen<%d> xfersz<%d>", sglen, host->xfer_size);
 
/* calculate the required number of gpd */
-- 
2.16.4

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


[PATCH v2 02/34] staging: mt7621-mmc: Remove unused macro msdc_fifo_write8

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro msdc_fifo_write8 is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 7cfadb41a53d..4a69bc84bbd2 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -150,7 +150,6 @@ static int msdc_rsp[] = {
 #define msdc_txfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_TXCNT) >> 
16)
 #define msdc_rxfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_RXCNT) >> 0)
 #define msdc_fifo_write32(v)   sdr_write32(MSDC_TXDATA, (v))
-#define msdc_fifo_write8(v)sdr_write8(MSDC_TXDATA, (v))
 #define msdc_fifo_read32()   sdr_read32(MSDC_RXDATA)
 #define msdc_fifo_read8()sdr_read8(MSDC_RXDATA)
 
-- 
2.16.4

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


[PATCH v2 01/34] staging: mt7621-mmc: Remove unused variable in msdc_command_resp

2018-06-16 Thread Christian Lütke-Stetzkamp
The variable resp in msdc_command_resp is once set and never read,
delete it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 648a2dd1436e..7cfadb41a53d 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -886,13 +886,10 @@ static unsigned int msdc_command_resp(struct msdc_host   
*host,
void __iomem *base = host->base;
u32 opcode = cmd->opcode;
//u32 rawcmd;
-   u32 resp;
u32 wints = MSDC_INT_CMDRDY  | MSDC_INT_RSPCRCERR  | MSDC_INT_CMDTMO  |
MSDC_INT_ACMDRDY | MSDC_INT_ACMDCRCERR | MSDC_INT_ACMDTMO |
MSDC_INT_ACMD19_DONE;
 
-   resp = host->cmd_rsp;
-
BUG_ON(in_interrupt());
//init_completion(>cmd_done);
//sdr_set_bits(MSDC_INTEN, wints);
-- 
2.16.4

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


[PATCH v2 16/34] staging: mt7621-mmc: Remove unused field sg from msdc_dma

2018-06-16 Thread Christian Lütke-Stetzkamp
The field sg from struct msdc_dma is once set and never read, so
remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h | 1 -
 drivers/staging/mt7621-mmc/sd.c| 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index 8eb30d908f9d..c8c5c349adf8 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -480,7 +480,6 @@ struct bd {
 
 struct msdc_dma {
u32 sglen;   /* size of scatter list */
-   struct scatterlist *sg;  /* I/O scatter list */
 
struct gpd *gpd;  /* pointer to gpd array */
struct bd  *bd;   /* pointer to bd array */
diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 923b0687918d..050c4a910aef 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -1041,7 +1041,6 @@ static void msdc_dma_setup(struct msdc_host *host, struct 
msdc_dma *dma,
 
BUG_ON(sglen > MAX_BD_NUM); /* not support currently */
 
-   dma->sg = sg_cmd;
dma->sglen = sglen;
 
N_MSG(DMA, "DMA sglen<%d> xfersz<%d>", sglen, host->xfer_size);
-- 
2.16.4

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


[PATCH v2 07/34] staging: mt7621-mmc: Remove unused macro msdc_rxfifocnt

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro msdc_rxfifocnt is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index c6aced0c0a6a..78a681a72f11 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -147,8 +147,6 @@ static int msdc_rsp[] = {
7,  /* RESP_R1b */
 };
 
-#define msdc_rxfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_RXCNT) >> 0)
-
 #define msdc_dma_on()sdr_clr_bits(MSDC_CFG, MSDC_CFG_PIO)
 
 #define msdc_retry(expr, retry, cnt) \
-- 
2.16.4

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


[PATCH v2 15/34] staging: mt7621-mmc: Refactor dma setup process

2018-06-16 Thread Christian Lütke-Stetzkamp
Current code uses two functions for dma setup, msdc_dma_config and
msdc_dma_setup. By now msdc_dma_setup is nearly empty and mainly calls
msdc_dma_config, so the later one can be inline into the first
one. While doing this there is also some refactoring done.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 34 +-
 1 file changed, 13 insertions(+), 21 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 3066fa3799ac..923b0687918d 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -1030,18 +1030,24 @@ static u8 msdc_dma_calcs(u8 *buf, u32 len)
return 0xFF - (u8)sum;
 }
 
-/* gpd bd setup + dma registers */
-static void msdc_dma_config(struct msdc_host *host, struct msdc_dma *dma)
+static void msdc_dma_setup(struct msdc_host *host, struct msdc_dma *dma,
+  struct scatterlist *sg_cmd, unsigned int sglen)
 {
void __iomem *base = host->base;
-   //u32 i, j, num, bdlen, arg, xfersz;
-   u32 j, num;
struct scatterlist *sg;
struct gpd *gpd;
struct bd *bd;
+   u32 j, num;
+
+   BUG_ON(sglen > MAX_BD_NUM); /* not support currently */
+
+   dma->sg = sg_cmd;
+   dma->sglen = sglen;
+
+   N_MSG(DMA, "DMA sglen<%d> xfersz<%d>", sglen, host->xfer_size);
 
/* calculate the required number of gpd */
-   num = (dma->sglen + MAX_BD_PER_GPD - 1) / MAX_BD_PER_GPD;
+   num = (sglen + MAX_BD_PER_GPD - 1) / MAX_BD_PER_GPD;
BUG_ON(num != 1);
 
gpd = dma->gpd;
@@ -1055,13 +1061,13 @@ static void msdc_dma_config(struct msdc_host *host, 
struct msdc_dma *dma)
gpd->chksum = msdc_dma_calcs((u8 *)gpd, 16);
 
/* modify bd*/
-   for_each_sg(dma->sg, sg, dma->sglen, j) {
+   for_each_sg(sg_cmd, sg, sglen, j) {
bd[j].blkpad = 0;
bd[j].dwpad = 0;
bd[j].ptr = (void *)sg_dma_address(sg);
bd[j].buflen = sg_dma_len(sg);
 
-   if (j == dma->sglen - 1)
+   if (j == sglen - 1)
bd[j].eol = 1;  /* the last bd */
else
bd[j].eol = 0;
@@ -1080,20 +1086,6 @@ static void msdc_dma_config(struct msdc_host *host, 
struct msdc_dma *dma)
N_MSG(DMA, "DMA_CTRL = 0x%x", readl(MSDC_DMA_CTRL));
N_MSG(DMA, "DMA_CFG  = 0x%x", readl(MSDC_DMA_CFG));
N_MSG(DMA, "DMA_SA   = 0x%x", readl(MSDC_DMA_SA));
-
-}
-
-static void msdc_dma_setup(struct msdc_host *host, struct msdc_dma *dma,
-  struct scatterlist *sg, unsigned int sglen)
-{
-   BUG_ON(sglen > MAX_BD_NUM); /* not support currently */
-
-   dma->sg = sg;
-   dma->sglen = sglen;
-
-   N_MSG(DMA, "DMA sglen<%d> xfersz<%d>", dma->sglen, host->xfer_size);
-
-   msdc_dma_config(host, dma);
 }
 
 static int msdc_do_request(struct mmc_host *mmc, struct mmc_request *mrq)
-- 
2.16.4

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


[PATCH v2 27/34] staging: mt7621-mmc: Remove unused define IRQ_SDC

2018-06-16 Thread Christian Lütke-Stetzkamp
The define IRQ_SDC is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 101ceca2ee4c..31ee9c533f35 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -50,13 +50,11 @@
 #include "dbg.h"
 #include "mt6575_sd.h"
 
-//#define IRQ_SDC 14   //MT7620 /*FIXME*/
 #ifdef CONFIG_SOC_MT7621
 #define RALINK_SYSCTL_BASE 0xbe00
 #else
 #define RALINK_SYSCTL_BASE 0xb000
 #endif
-#define IRQ_SDC22  /*FIXME*/
 
 #define DRV_NAME"mtk-sd"
 
-- 
2.16.4

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


[PATCH v2 32/34] staging: mt7621-mmc: Factor out from msdc_command_start()

2018-06-16 Thread Christian Lütke-Stetzkamp
Currently msdc_command_start does multiple things and is hard to read,
so factor out the finding of the response type.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 40 +---
 1 file changed, 25 insertions(+), 15 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 93f14c9694b9..f7df3221a302 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -705,25 +705,11 @@ static void msdc_pm(pm_message_t state, void *data)
 }
 #endif
 
-/*--*/
-/* mmc_host_ops members  */
-/*--*/
-static unsigned int msdc_command_start(struct msdc_host   *host,
-  struct mmc_command *cmd,
-  unsigned long   timeout)
+static inline u32 msdc_cmd_find_resp(struct mmc_command *cmd)
 {
u32 opcode = cmd->opcode;
-   u32 rawcmd;
-   u32 wints = MSDC_INT_CMDRDY  | MSDC_INT_RSPCRCERR  | MSDC_INT_CMDTMO  |
-   MSDC_INT_ACMDRDY | MSDC_INT_ACMDCRCERR | MSDC_INT_ACMDTMO |
-   MSDC_INT_ACMD19_DONE;
-
u32 resp;
-   unsigned long tmo;
 
-   /* Protocol layer does not provide response type, but our hardware needs
-* to know exact type, not just size!
-*/
if (opcode == MMC_SEND_OP_COND || opcode == SD_APP_OP_COND) {
resp = RESP_R3;
} else if (opcode == MMC_SET_RELATIVE_ADDR) {
@@ -759,6 +745,30 @@ static unsigned int msdc_command_start(struct msdc_host   
*host,
}
}
 
+   return resp;
+}
+
+/*--*/
+/* mmc_host_ops members  */
+/*--*/
+static unsigned int msdc_command_start(struct msdc_host   *host,
+  struct mmc_command *cmd,
+  unsigned long   timeout)
+{
+   u32 opcode = cmd->opcode;
+   u32 rawcmd;
+   u32 wints = MSDC_INT_CMDRDY  | MSDC_INT_RSPCRCERR  | MSDC_INT_CMDTMO  |
+   MSDC_INT_ACMDRDY | MSDC_INT_ACMDCRCERR | MSDC_INT_ACMDTMO |
+   MSDC_INT_ACMD19_DONE;
+
+   u32 resp;
+   unsigned long tmo;
+
+   /* Protocol layer does not provide response type, but our hardware needs
+* to know exact type, not just size!
+*/
+   resp = msdc_cmd_find_resp(cmd);
+
cmd->error = 0;
/* rawcmd :
 * vol_swt << 30 | auto_cmd << 28 | blklen << 16 | go_irq << 15 |
-- 
2.16.4

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


[PATCH v2 30/34] staging: mt7621-mmc: Remove unused macro is_card_present

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro is_card_present is unused and also a duplicate of a macro in
mmc, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 4 
 1 file changed, 4 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 45d9b62f4a58..cfe7517f8bdf 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -218,10 +218,6 @@ static u32 hclks[] = {5000}; /* +/- by chhung */
writel((cmd), host->base + SDC_CMD);\
} while (0)
 
-// can modify to read h/w register.
-//#define is_card_present(h)   ((readl(MSDC_PS) & MSDC_PS_CDSTS) ? 0 : 1);
-#define is_card_present(h) (((struct msdc_host *)(h))->card_inserted)
-
 /* +++ by chhung */
 #ifndef __ASSEMBLY__
 #define PHYSADDR(a) (((unsigned long)(a)) & 0x1fff)
-- 
2.16.4

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


[PATCH v2 34/34] staging: mt7621-mmc: Find response of SD_APP_OP_COND by default

2018-06-16 Thread Christian Lütke-Stetzkamp
The response type of the SD_APP_OP_COND command is correctly
determined using the mmc_resp_type macro, because the only use of that
opcode, mmc_send_app_op_cond, correctly places MMC_RSP_R3 in cmd.flags.

So there is no need to treat that opcode separately.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 69123cfd7309..04d23cc7cd4a 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -710,9 +710,7 @@ static inline u32 msdc_cmd_find_resp(struct mmc_command 
*cmd)
u32 opcode = cmd->opcode;
u32 resp;
 
-   if (opcode == SD_APP_OP_COND) {
-   resp = RESP_R3;
-   } else if (opcode == MMC_SET_RELATIVE_ADDR) {
+   if (opcode == MMC_SET_RELATIVE_ADDR) {
resp = (mmc_cmd_type(cmd) == MMC_CMD_BCR) ? RESP_R6 : RESP_R1;
} else if (opcode == MMC_FAST_IO) {
resp = RESP_R4;
-- 
2.16.4

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


[PATCH v2 31/34] staging: mt7621-mmc: Remove unused argument from msdc_do_command

2018-06-16 Thread Christian Lütke-Stetzkamp
The argument tune of msdc_do_command is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index cfe7517f8bdf..93f14c9694b9 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -710,7 +710,6 @@ static void msdc_pm(pm_message_t state, void *data)
 /*--*/
 static unsigned int msdc_command_start(struct msdc_host   *host,
   struct mmc_command *cmd,
-  int tune,   /* not used 
*/
   unsigned long   timeout)
 {
u32 opcode = cmd->opcode;
@@ -932,7 +931,7 @@ static unsigned int msdc_do_command(struct msdc_host   
*host,
int tune,
unsigned long   timeout)
 {
-   if (msdc_command_start(host, cmd, tune, timeout))
+   if (msdc_command_start(host, cmd, timeout))
goto end;
 
if (msdc_command_resp(host, cmd, tune, timeout))
@@ -1098,7 +1097,7 @@ static int msdc_do_request(struct mmc_host *mmc, struct 
mmc_request *mrq)
init_completion(>xfer_done);
 
/* start the command first*/
-   if (msdc_command_start(host, cmd, 1, CMD_TIMEOUT) != 0)
+   if (msdc_command_start(host, cmd, CMD_TIMEOUT) != 0)
goto done;
 
data->sg_count = dma_map_sg(mmc_dev(mmc), data->sg,
-- 
2.16.4

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


[PATCH v2 33/34] staging: mt7621-mmc: Find response of MMC_SEND_OP_COND by default

2018-06-16 Thread Christian Lütke-Stetzkamp
The response type of the MMC_SEND_OP_COND command is correctly
determined using the mmc_resp_type macro, because the only use of that
opcode, mmc_send_op_cond, correctly places MMC_RSP_R3 in cmd.flags.

So there is no need to treat that opcode separately.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index f7df3221a302..69123cfd7309 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -710,7 +710,7 @@ static inline u32 msdc_cmd_find_resp(struct mmc_command 
*cmd)
u32 opcode = cmd->opcode;
u32 resp;
 
-   if (opcode == MMC_SEND_OP_COND || opcode == SD_APP_OP_COND) {
+   if (opcode == SD_APP_OP_COND) {
resp = RESP_R3;
} else if (opcode == MMC_SET_RELATIVE_ADDR) {
resp = (mmc_cmd_type(cmd) == MMC_CMD_BCR) ? RESP_R6 : RESP_R1;
-- 
2.16.4

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


[PATCH v2 25/34] staging: mt7621-mmc: Cleanup source of base address for io

2018-06-16 Thread Christian Lütke-Stetzkamp
Currently the base address for all io operations is hidden behind a
macro, REG_ADD. This macro uses the symbol "base" as the base address
and all functions set base = host->base. This is hard to read, so the
whole wrapping is removed and host->base is directly inserted in the
io access.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h | 161 --
 drivers/staging/mt7621-mmc/sd.c| 378 +
 2 files changed, 236 insertions(+), 303 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index 9b6cd6db37df..4e287c140acb 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -41,11 +41,6 @@
 
 // #include  /* --- by chhung */
 
-/*--*/
-/* Common Macro */
-/*--*/
-#define REG_ADDR(x) (base + OFFSET_##x)
-
 /*--*/
 /* Common Definition*/
 /*--*/
@@ -95,117 +90,51 @@ enum {
 /*--*/
 /* Register Offset  */
 /*--*/
-#define OFFSET_MSDC_CFG (0x0)
-#define OFFSET_MSDC_IOCON   (0x04)
-#define OFFSET_MSDC_PS  (0x08)
-#define OFFSET_MSDC_INT (0x0c)
-#define OFFSET_MSDC_INTEN   (0x10)
-#define OFFSET_MSDC_FIFOCS  (0x14)
-#define OFFSET_MSDC_TXDATA  (0x18)
-#define OFFSET_MSDC_RXDATA  (0x1c)
-#define OFFSET_SDC_CFG  (0x30)
-#define OFFSET_SDC_CMD  (0x34)
-#define OFFSET_SDC_ARG  (0x38)
-#define OFFSET_SDC_STS  (0x3c)
-#define OFFSET_SDC_RESP0(0x40)
-#define OFFSET_SDC_RESP1(0x44)
-#define OFFSET_SDC_RESP2(0x48)
-#define OFFSET_SDC_RESP3(0x4c)
-#define OFFSET_SDC_BLK_NUM  (0x50)
-#define OFFSET_SDC_CSTS (0x58)
-#define OFFSET_SDC_CSTS_EN  (0x5c)
-#define OFFSET_SDC_DCRC_STS (0x60)
-#define OFFSET_EMMC_CFG0(0x70)
-#define OFFSET_EMMC_CFG1(0x74)
-#define OFFSET_EMMC_STS (0x78)
-#define OFFSET_EMMC_IOCON   (0x7c)
-#define OFFSET_SDC_ACMD_RESP(0x80)
-#define OFFSET_SDC_ACMD19_TRG   (0x84)
-#define OFFSET_SDC_ACMD19_STS   (0x88)
-#define OFFSET_MSDC_DMA_SA  (0x90)
-#define OFFSET_MSDC_DMA_CA  (0x94)
-#define OFFSET_MSDC_DMA_CTRL(0x98)
-#define OFFSET_MSDC_DMA_CFG (0x9c)
-#define OFFSET_MSDC_DBG_SEL (0xa0)
-#define OFFSET_MSDC_DBG_OUT (0xa4)
-#define OFFSET_MSDC_PATCH_BIT   (0xb0)
-#define OFFSET_MSDC_PATCH_BIT1  (0xb4)
-#define OFFSET_MSDC_PAD_CTL0(0xe0)
-#define OFFSET_MSDC_PAD_CTL1(0xe4)
-#define OFFSET_MSDC_PAD_CTL2(0xe8)
-#define OFFSET_MSDC_PAD_TUNE(0xec)
-#define OFFSET_MSDC_DAT_RDDLY0  (0xf0)
-#define OFFSET_MSDC_DAT_RDDLY1  (0xf4)
-#define OFFSET_MSDC_HW_DBG  (0xf8)
-#define OFFSET_MSDC_VERSION (0x100)
-#define OFFSET_MSDC_ECO_VER (0x104)
-
-/*--*/
-/* Register Address */
-/*--*/
-
-/* common register */
-#define MSDC_CFGREG_ADDR(MSDC_CFG)
-#define MSDC_IOCON  REG_ADDR(MSDC_IOCON)
-#define MSDC_PS REG_ADDR(MSDC_PS)
-#define MSDC_INTREG_ADDR(MSDC_INT)
-#define MSDC_INTEN  REG_ADDR(MSDC_INTEN)
-#define MSDC_FIFOCS REG_ADDR(MSDC_FIFOCS)
-#define MSDC_TXDATA REG_ADDR(MSDC_TXDATA)
-#define MSDC_RXDATA REG_ADDR(MSDC_RXDATA)
-#define MSDC_PATCH_BIT0 REG_ADDR(MSDC_PATCH_BIT)
-
-/* sdmmc register */
-#define SDC_CFG REG_ADDR(SDC_CFG)
-#define SDC_CMD REG_ADDR(SDC_CMD)
-#define SDC_ARG REG_ADDR(SDC_ARG)
-#define SDC_STS REG_ADDR(SDC_STS)
-#define SDC_RESP0   REG_ADDR(SDC_RESP0)
-#define SDC_RESP1   REG_ADDR(SDC_RESP1)
-#define SDC_RESP2   REG_ADDR(SDC_RESP2)
-#define SDC_RESP3   REG_ADDR(SDC_RESP3)
-#define SDC_BLK_NUM REG_ADDR(SDC_BLK_NUM)
-#define SDC_CSTSREG_ADDR(SDC_CSTS)
-#define SDC_CSTS_EN REG_ADDR(SDC_CSTS_EN)
-#define SDC_DCRC_STSREG_ADDR(SDC_DCRC_STS)
-
-/* emmc register*/
-#define EMMC_CFG0   REG_ADDR(EMMC_CFG0)
-#define EMMC_CFG1   REG_ADDR(EMMC_CFG1)
-#define EMMC_STSREG_ADDR(EMMC_STS)
-#define EMMC_IOCON 

[PATCH v2 29/34] staging: mt7621-mmc: Remove unused define MAX_PHY_SGMTS

2018-06-16 Thread Christian Lütke-Stetzkamp
The define MAX_PHY_SGMTS is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 31ee9c533f35..45d9b62f4a58 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -89,7 +89,6 @@
 #define MAX_BD_NUM  (1024)
 
 #define MAX_HW_SGMTS(MAX_BD_NUM)
-#define MAX_PHY_SGMTS   (MAX_BD_NUM)
 #define MAX_SGMT_SZ (MAX_DMA_CNT)
 #define MAX_REQ_SZ  (MAX_SGMT_SZ * 8)
 
-- 
2.16.4

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


[PATCH v2 28/34] staging: mt7621-mmc: Remove unused enum msdc_mode

2018-06-16 Thread Christian Lütke-Stetzkamp
The enum msdc_mode is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/dbg.h | 6 --
 1 file changed, 6 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/dbg.h b/drivers/staging/mt7621-mmc/dbg.h
index 5a25a69b00c9..2f2c56b73987 100644
--- a/drivers/staging/mt7621-mmc/dbg.h
+++ b/drivers/staging/mt7621-mmc/dbg.h
@@ -73,12 +73,6 @@ enum msdc_dbg {
SD_TOOL_SDIO_PROFILE = 3,
 };
 
-enum msdc_mode {
-   MODE_PIO = 0,
-   MODE_DMA = 1,
-   MODE_SIZE_DEP = 2,
-};
-
 /* Debug message event */
 #define DBG_EVT_NONE(0)   /* No event */
 #define DBG_EVT_DMA (1 << 0)  /* DMA related event */
-- 
2.16.4

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


[PATCH v2 05/34] staging: mt7621-mmc: Remove unused macro msdc_fifo_read32

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro msdc_fifo_read32 is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 9e00f86a0398..0f9cba918586 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -149,7 +149,6 @@ static int msdc_rsp[] = {
 
 #define msdc_txfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_TXCNT) >> 
16)
 #define msdc_rxfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_RXCNT) >> 0)
-#define msdc_fifo_read32()   sdr_read32(MSDC_RXDATA)
 
 #define msdc_dma_on()sdr_clr_bits(MSDC_CFG, MSDC_CFG_PIO)
 
-- 
2.16.4

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


[PATCH v2 12/34] staging: mt7621-mmc: Remove register debugging structures

2018-06-16 Thread Christian Lütke-Stetzkamp
Current code has structures for all the registers of the device, but
these are never used and there are also masks for all of them, so
these structures do not contain any useful information.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h | 411 -
 1 file changed, 411 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index 375cb109806e..07f48d526888 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -478,417 +478,6 @@ struct bd {
u32  rsv3:16;
 };
 
-/*--*/
-/* Register Debugging Structure */
-/*--*/
-
-struct msdc_cfg_reg {
-   u32 msdc:1;
-   u32 ckpwn:1;
-   u32 rst:1;
-   u32 pio:1;
-   u32 ckdrven:1;
-   u32 start18v:1;
-   u32 pass18v:1;
-   u32 ckstb:1;
-   u32 ckdiv:8;
-   u32 ckmod:2;
-   u32 pad:14;
-};
-
-struct msdc_iocon_reg {
-   u32 sdr104cksel:1;
-   u32 rsmpl:1;
-   u32 dsmpl:1;
-   u32 ddlysel:1;
-   u32 ddr50ckd:1;
-   u32 dsplsel:1;
-   u32 pad1:10;
-   u32 d0spl:1;
-   u32 d1spl:1;
-   u32 d2spl:1;
-   u32 d3spl:1;
-   u32 d4spl:1;
-   u32 d5spl:1;
-   u32 d6spl:1;
-   u32 d7spl:1;
-   u32 riscsz:1;
-   u32 pad2:7;
-};
-
-struct msdc_ps_reg {
-   u32 cden:1;
-   u32 cdsts:1;
-   u32 pad1:10;
-   u32 cddebounce:4;
-   u32 dat:8;
-   u32 cmd:1;
-   u32 pad2:6;
-   u32 wp:1;
-};
-
-struct msdc_int_reg {
-   u32 mmcirq:1;
-   u32 cdsc:1;
-   u32 pad1:1;
-   u32 atocmdrdy:1;
-   u32 atocmdtmo:1;
-   u32 atocmdcrc:1;
-   u32 dmaqempty:1;
-   u32 sdioirq:1;
-   u32 cmdrdy:1;
-   u32 cmdtmo:1;
-   u32 rspcrc:1;
-   u32 csta:1;
-   u32 xfercomp:1;
-   u32 dxferdone:1;
-   u32 dattmo:1;
-   u32 datcrc:1;
-   u32 atocmd19done:1;
-   u32 pad2:15;
-};
-
-struct msdc_inten_reg {
-   u32 mmcirq:1;
-   u32 cdsc:1;
-   u32 pad1:1;
-   u32 atocmdrdy:1;
-   u32 atocmdtmo:1;
-   u32 atocmdcrc:1;
-   u32 dmaqempty:1;
-   u32 sdioirq:1;
-   u32 cmdrdy:1;
-   u32 cmdtmo:1;
-   u32 rspcrc:1;
-   u32 csta:1;
-   u32 xfercomp:1;
-   u32 dxferdone:1;
-   u32 dattmo:1;
-   u32 datcrc:1;
-   u32 atocmd19done:1;
-   u32 pad2:15;
-};
-
-struct msdc_fifocs_reg {
-   u32 rxcnt:8;
-   u32 pad1:8;
-   u32 txcnt:8;
-   u32 pad2:7;
-   u32 clr:1;
-};
-
-struct msdc_txdat_reg {
-   u32 val;
-};
-
-struct msdc_rxdat_reg {
-   u32 val;
-};
-
-struct sdc_cfg_reg {
-   u32 sdiowkup:1;
-   u32 inswkup:1;
-   u32 pad1:14;
-   u32 buswidth:2;
-   u32 pad2:1;
-   u32 sdio:1;
-   u32 sdioide:1;
-   u32 intblkgap:1;
-   u32 pad4:2;
-   u32 dtoc:8;
-};
-
-struct sdc_cmd_reg {
-   u32 cmd:6;
-   u32 brk:1;
-   u32 rsptyp:3;
-   u32 pad1:1;
-   u32 dtype:2;
-   u32 rw:1;
-   u32 stop:1;
-   u32 goirq:1;
-   u32 blklen:12;
-   u32 atocmd:2;
-   u32 volswth:1;
-   u32 pad2:1;
-};
-
-struct sdc_arg_reg {
-   u32 arg;
-};
-
-struct sdc_sts_reg {
-   u32 sdcbusy:1;
-   u32 cmdbusy:1;
-   u32 pad:29;
-   u32 swrcmpl:1;
-};
-
-struct sdc_resp0_reg {
-   u32 val;
-};
-
-struct sdc_resp1_reg {
-   u32 val;
-};
-
-struct sdc_resp2_reg {
-   u32 val;
-};
-
-struct sdc_resp3_reg {
-   u32 val;
-};
-
-struct sdc_blknum_reg {
-   u32 num;
-};
-
-struct sdc_csts_reg {
-   u32 sts;
-};
-
-struct sdc_cstsen_reg {
-   u32 sts;
-};
-
-struct sdc_datcrcsts_reg {
-   u32 datcrcsts:8;
-   u32 ddrcrcsts:4;
-   u32 pad:20;
-};
-
-struct emmc_cfg0_reg {
-   u32 bootstart:1;
-   u32 bootstop:1;
-   u32 bootmode:1;
-   u32 pad1:9;
-   u32 bootwaidly:3;
-   u32 bootsupp:1;
-   u32 pad2:16;
-};
-
-struct emmc_cfg1_reg {
-   u32 bootcrctmc:16;
-   u32 pad:4;
-   u32 bootacktmc:12;
-};
-
-struct emmc_sts_reg {
-   u32 bootcrcerr:1;
-   u32 bootackerr:1;
-   u32 bootdattmo:1;
-   u32 bootacktmo:1;
-   u32 bootupstate:1;
-   u32 bootackrcv:1;
-   u32 bootdatrcv:1;
-   u32 pad:25;
-};
-
-struct emmc_iocon_reg {
-   u32 bootrst:1;
-   u32 pad:31;
-};
-
-struct msdc_acmd_resp_reg {
-   u32 val;
-};
-
-struct msdc_acmd19_trg_reg {
-   u32 tunesel:4;
-   u32 pad:28;
-};
-
-struct msdc_acmd19_sts_reg {
-   u32 val;
-};
-
-struct msdc_dma_sa_reg {
-   u32 addr;
-};
-
-struct msdc_dma_ca_reg {
-   u32 addr;
-};
-
-struct msdc_dma_ctrl_reg {
-   u32 start:1;
-   u32 stop:1;
-   u32 resume:1;
-   u32 pad1:5;
-   u32 mode:1;
-   

[PATCH v2 19/34] staging: mt7621-mmc: Remove unnecessary BUG_ON() in msdc_dma_setup

2018-06-16 Thread Christian Lütke-Stetzkamp
The BUG_ON() removed by this patch is just a duplicate of a prior
BUG_ON() statement. There the condition is just clearer, it checks
weather sglen > MAX_BD_NUM and MAX_BD_NUM is equal MAX_BD_PER_GPD. So
this statement can be safely removed.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 68dfbf38b0ea..a506c7e19086 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -1043,9 +1043,6 @@ static void msdc_dma_setup(struct msdc_host *host, struct 
msdc_dma *dma,
 
N_MSG(DMA, "DMA sglen<%d> xfersz<%d>", sglen, host->xfer_size);
 
-   /* calculate the required number of gpd */
-   BUG_ON(((sglen + MAX_BD_PER_GPD - 1) / MAX_BD_PER_GPD) != 1);
-
gpd = dma->gpd;
bd  = dma->bd;
 
-- 
2.16.4

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


[PATCH v2 00/34] staging: mt7621-mmc: Cleanup continues

2018-06-16 Thread Christian Lütke-Stetzkamp
Here are the next cleanups for the mt7621-mmc driver. Again much of
unused code is removed and the IO is cleaned up.  The next major step
will be the complete refactoring of the tuning, because it does not
use the tuning capabilities of sd-core, but kind of re-implements that.

Changes since v1:
- commit "Factor out from msdc_command_start()" had a wrong parameter definition

Christian Lütke-Stetzkamp (34):
  staging: mt7621-mmc: Remove unused variable in msdc_command_resp
  staging: mt7621-mmc: Remove unused macro msdc_fifo_write8
  staging: mt7621-mmc: Remove unused macro msdc_fifo_read8
  staging: mt7621-mmc: Remove unused macro msdc_fifo_write32
  staging: mt7621-mmc: Remove unused macro msdc_fifo_read32
  staging: mt7621-mmc: Remove unused macro msdc_txfifocnt
  staging: mt7621-mmc: Remove unused macro msdc_rxfifocnt
  staging: mt7621-mmc: Replace sdr_write32 with writel
  staging: mt7621-mmc: Replace sdr_read32 with readl
  staging: mt7621-mmc: Remove unused macro sdr_read8
  staging: mt7621-mmc: Remove unused macro sdr_write8
  staging: mt7621-mmc: Remove register debugging structures
  staging: mt7621-mmc: Remove DMA basic mode code
  staging: mt7621-mmc: Remove unused field mode from msdc_dma
  staging: mt7621-mmc: Refactor dma setup process
  staging: mt7621-mmc: Remove unused field sg from msdc_dma
  staging: mt7621-mmc: Remove unused field sglen from msdc_dma
  staging: mt7621-mmc: Remove variable num form msdc_dma_setup
  staging: mt7621-mmc: Remove unnecessary BUG_ON() in msdc_dma_setup
  staging: mt7621-mmc: Make msdc_clr_fifo a function and relax cpu
  staging: mt7621-mmc: Remove unused macro msdc_retry
  staging: mt7621-mmc: Remove unused macro MAX_BD_PER_GPD
  staging: mt7621-mmc: Remove unused variable from msdc_tune_request
  staging: mt7621-mmc: Remove MSDC_MODE_* defines
  staging: mt7621-mmc: Cleanup source of base address for io
  staging: mt7621-mmc: Remove unused define RALINK_MSDC_BASE
  staging: mt7621-mmc: Remove unused define IRQ_SDC
  staging: mt7621-mmc: Remove unused enum msdc_mode
  staging: mt7621-mmc: Remove unused define MAX_PHY_SGMTS
  staging: mt7621-mmc: Remove unused macro is_card_present
  staging: mt7621-mmc: Remove unused argument from msdc_do_command
  staging: mt7621-mmc: Factor out from msdc_command_start()
  staging: mt7621-mmc: Find response of MMC_SEND_OP_COND by default
  staging: mt7621-mmc: Find response of SD_APP_OP_COND by default

 drivers/staging/mt7621-mmc/dbg.h   |   6 -
 drivers/staging/mt7621-mmc/mt6575_sd.h | 588 +++--
 drivers/staging/mt7621-mmc/sd.c| 584 +++-
 3 files changed, 305 insertions(+), 873 deletions(-)

-- 
2.16.4

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


[PATCH v2 24/34] staging: mt7621-mmc: Remove MSDC_MODE_* defines

2018-06-16 Thread Christian Lütke-Stetzkamp
The MSDC_MODE_* defines are all never used and do not contain any
information about the device, so remove them.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h | 7 ---
 1 file changed, 7 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index 4b56d9a37b84..9b6cd6db37df 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -56,13 +56,6 @@
 #define MSDC_MS (0)
 #define MSDC_SDMMC  (1)
 
-#define MSDC_MODE_UNKNOWN   (0)
-#define MSDC_MODE_PIO   (1)
-#define MSDC_MODE_DMA_BASIC (2)
-#define MSDC_MODE_DMA_DESC  (3)
-#define MSDC_MODE_DMA_ENHANCED  (4)
-#define MSDC_MODE_MMC_STREAM(5)
-
 #define MSDC_BUS_1BITS  (0)
 #define MSDC_BUS_4BITS  (1)
 #define MSDC_BUS_8BITS  (2)
-- 
2.16.4

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


[PATCH v2 21/34] staging: mt7621-mmc: Remove unused macro msdc_retry

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro msdc_retry is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 13 -
 1 file changed, 13 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 01a925ae662e..0e94bb0d5927 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -149,19 +149,6 @@ static int msdc_rsp[] = {
 
 #define msdc_dma_on()sdr_clr_bits(MSDC_CFG, MSDC_CFG_PIO)
 
-#define msdc_retry(expr, retry, cnt) \
-   do {\
-   int backup = cnt;   \
-   while (retry) { \
-   if (!(expr))\
-   break;  \
-   if (cnt-- == 0) {   \
-   retry--; mdelay(1); cnt = backup;   \
-   }   \
-   }   \
-   WARN_ON(retry == 0);\
-   } while (0)
-
 static void msdc_reset_hw(struct msdc_host *host)
 {
void __iomem *base = host->base;
-- 
2.16.4

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


[PATCH v2 11/34] staging: mt7621-mmc: Remove unused macro sdr_write8

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro sdr_write8 is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index adccabe32660..375cb109806e 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -947,8 +947,6 @@ struct msdc_host {
u32 app_cmd_arg;
 };
 
-#define sdr_write8(reg, val)  writeb(val, reg)
-
 static inline void sdr_set_bits(void __iomem *reg, u32 bs)
 {
u32 val = readl(reg);
-- 
2.16.4

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


[PATCH v2 18/34] staging: mt7621-mmc: Remove variable num form msdc_dma_setup

2018-06-16 Thread Christian Lütke-Stetzkamp
The variable num in msdc_dma_setup is only used for a BUG_ON
statement, so it can be removed by inlining the condition.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index e1077068604d..68dfbf38b0ea 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -1037,15 +1037,14 @@ static void msdc_dma_setup(struct msdc_host *host, 
struct msdc_dma *dma,
struct scatterlist *sg;
struct gpd *gpd;
struct bd *bd;
-   u32 j, num;
+   u32 j;
 
BUG_ON(sglen > MAX_BD_NUM); /* not support currently */
 
N_MSG(DMA, "DMA sglen<%d> xfersz<%d>", sglen, host->xfer_size);
 
/* calculate the required number of gpd */
-   num = (sglen + MAX_BD_PER_GPD - 1) / MAX_BD_PER_GPD;
-   BUG_ON(num != 1);
+   BUG_ON(((sglen + MAX_BD_PER_GPD - 1) / MAX_BD_PER_GPD) != 1);
 
gpd = dma->gpd;
bd  = dma->bd;
-- 
2.16.4

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


[PATCH v2 14/34] staging: mt7621-mmc: Remove unused field mode from msdc_dma

2018-06-16 Thread Christian Lütke-Stetzkamp
The field mode of struct msdc_dma has no remaining use, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h | 1 -
 drivers/staging/mt7621-mmc/sd.c| 5 +
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index 07f48d526888..8eb30d908f9d 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -481,7 +481,6 @@ struct bd {
 struct msdc_dma {
u32 sglen;   /* size of scatter list */
struct scatterlist *sg;  /* I/O scatter list */
-   u8  mode;/* dma mode*/
 
struct gpd *gpd;  /* pointer to gpd array */
struct bd  *bd;   /* pointer to bd array */
diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 1196e8eb86c5..3066fa3799ac 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -1091,10 +1091,7 @@ static void msdc_dma_setup(struct msdc_host *host, 
struct msdc_dma *dma,
dma->sg = sg;
dma->sglen = sglen;
 
-   dma->mode = MSDC_MODE_DMA_DESC;
-
-   N_MSG(DMA, "DMA mode<%d> sglen<%d> xfersz<%d>", dma->mode, dma->sglen,
- host->xfer_size);
+   N_MSG(DMA, "DMA sglen<%d> xfersz<%d>", dma->sglen, host->xfer_size);
 
msdc_dma_config(host, dma);
 }
-- 
2.16.4

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


[PATCH v2 10/34] staging: mt7621-mmc: Remove unused macro sdr_read8

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro sdr_read8 is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index 29e2ede6816b..adccabe32660 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -947,7 +947,6 @@ struct msdc_host {
u32 app_cmd_arg;
 };
 
-#define sdr_read8(reg)readb(reg)
 #define sdr_write8(reg, val)  writeb(val, reg)
 
 static inline void sdr_set_bits(void __iomem *reg, u32 bs)
-- 
2.16.4

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


[PATCH v2 09/34] staging: mt7621-mmc: Replace sdr_read32 with readl

2018-06-16 Thread Christian Lütke-Stetzkamp
The current code uses a macro (sdr_read32) for reading from hardware,
but it is only a readl, so replace it to get nearer to upstream code.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/mt6575_sd.h |  1 -
 drivers/staging/mt7621-mmc/sd.c| 98 +-
 2 files changed, 49 insertions(+), 50 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/mt6575_sd.h 
b/drivers/staging/mt7621-mmc/mt6575_sd.h
index e8e79aab52f8..29e2ede6816b 100644
--- a/drivers/staging/mt7621-mmc/mt6575_sd.h
+++ b/drivers/staging/mt7621-mmc/mt6575_sd.h
@@ -948,7 +948,6 @@ struct msdc_host {
 };
 
 #define sdr_read8(reg)readb(reg)
-#define sdr_read32(reg)   readl(reg)
 #define sdr_write8(reg, val)  writeb(val, reg)
 
 static inline void sdr_set_bits(void __iomem *reg, u32 bs)
diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index e6232f5ac6a8..1d0829e6 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -167,13 +167,13 @@ static void msdc_reset_hw(struct msdc_host *host)
void __iomem *base = host->base;
 
sdr_set_bits(MSDC_CFG, MSDC_CFG_RST);
-   while (sdr_read32(MSDC_CFG) & MSDC_CFG_RST)
+   while (readl(MSDC_CFG) & MSDC_CFG_RST)
cpu_relax();
 }
 
 #define msdc_clr_int() \
do {\
-   volatile u32 val = sdr_read32(MSDC_INT);\
+   volatile u32 val = readl(MSDC_INT); \
writel(val, MSDC_INT);  \
} while (0)
 
@@ -181,12 +181,12 @@ static void msdc_reset_hw(struct msdc_host *host)
do {\
int retry = 3, cnt = 1000;  \
sdr_set_bits(MSDC_FIFOCS, MSDC_FIFOCS_CLR); \
-   msdc_retry(sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_CLR, retry, 
cnt); \
+   msdc_retry(readl(MSDC_FIFOCS) & MSDC_FIFOCS_CLR, retry, cnt); \
} while (0)
 
 #define msdc_irq_save(val) \
do {\
-   val = sdr_read32(MSDC_INTEN);   \
+   val = readl(MSDC_INTEN);\
sdr_clr_bits(MSDC_INTEN, val);  \
} while (0)
 
@@ -230,8 +230,8 @@ static u32 hclks[] = {5000}; /* +/- by chhung */
(void)hwPowerDown(MT65XX_POWER_LDO_VMCH, "SD"); \
} while (0)
 
-#define sdc_is_busy()  (sdr_read32(SDC_STS) & SDC_STS_SDCBUSY)
-#define sdc_is_cmd_busy()  (sdr_read32(SDC_STS) & SDC_STS_CMDBUSY)
+#define sdc_is_busy()  (readl(SDC_STS) & SDC_STS_SDCBUSY)
+#define sdc_is_cmd_busy()  (readl(SDC_STS) & SDC_STS_CMDBUSY)
 
 #define sdc_send_cmd(cmd, arg) \
do {\
@@ -240,7 +240,7 @@ static u32 hclks[] = {5000}; /* +/- by chhung */
} while (0)
 
 // can modify to read h/w register.
-//#define is_card_present(h)   ((sdr_read32(MSDC_PS) & MSDC_PS_CDSTS) ? 0 : 1);
+//#define is_card_present(h)   ((readl(MSDC_PS) & MSDC_PS_CDSTS) ? 0 : 1);
 #define is_card_present(h) (((struct msdc_host *)(h))->card_inserted)
 
 /* +++ by chhung */
@@ -426,7 +426,7 @@ static void msdc_tasklet_card(struct work_struct *work)
 
spin_lock(>lock);
 
-   status = sdr_read32(MSDC_PS);
+   status = readl(MSDC_PS);
if (cd_active_low)
inserted = (status & MSDC_PS_CDSTS) ? 0 : 1;
else
@@ -469,8 +469,8 @@ static void msdc_select_clksrc(struct msdc_host *host, 
unsigned char clksrc)
BUG_ON(clksrc > 3);
INIT_MSG("set clock source to <%d>", clksrc);
 
-   val = sdr_read32(MSDC_CLKSRC_REG);
-   if (sdr_read32(MSDC_ECO_VER) >= 4) {
+   val = readl(MSDC_CLKSRC_REG);
+   if (readl(MSDC_ECO_VER) >= 4) {
val &= ~(0x3  << clk_src_bit[host->id]);
val |= clksrc << clk_src_bit[host->id];
} else {
@@ -531,7 +531,7 @@ static void msdc_set_mclk(struct msdc_host *host, int ddr, 
unsigned int hz)
sdr_set_field(MSDC_CFG, MSDC_CFG_CKDIV, div);
 
/* wait clock stable */
-   while (!(sdr_read32(MSDC_CFG) & MSDC_CFG_CKSTB))
+   while (!(readl(MSDC_CFG) & MSDC_CFG_CKSTB))
cpu_relax();
 
host->sclk = sclk;
@@ -940,7 +940,7 @@ static unsigned int msdc_command_resp(struct msdc_host   
*host,
 
/* memory card CRC */
if (host->hw->flags & MSDC_REMOVABLE && cmd->error == -EIO) {
-   if (sdr_read32(SDC_CMD) & 0x1800) { /* check if has data phase 
*/
+   if (readl(SDC_CMD) & 0x1800) { /* check if has data phase */
msdc_abort_data(host);
} else {
/* do basic: reset*/
@@ -953,7 +953,7 @@ static unsigned int msdc_command_resp(struct msdc_host   
*host,
 
//  check DAT0
/* if (resp == RESP_R1B) {
-

[PATCH v2 26/34] staging: mt7621-mmc: Remove unused define RALINK_MSDC_BASE

2018-06-16 Thread Christian Lütke-Stetzkamp
The define RALINK_MSDC_BASE is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index e639ceb2ba85..101ceca2ee4c 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -53,10 +53,8 @@
 //#define IRQ_SDC 14   //MT7620 /*FIXME*/
 #ifdef CONFIG_SOC_MT7621
 #define RALINK_SYSCTL_BASE 0xbe00
-#define RALINK_MSDC_BASE   0xbe13
 #else
 #define RALINK_SYSCTL_BASE 0xb000
-#define RALINK_MSDC_BASE   0xb013
 #endif
 #define IRQ_SDC22  /*FIXME*/
 
-- 
2.16.4

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


[PATCH v2 03/34] staging: mt7621-mmc: Remove unused macro msdc_fifo_read8

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro msdc_fifo_read8 is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 4a69bc84bbd2..98bcb0fe6f40 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -151,7 +151,6 @@ static int msdc_rsp[] = {
 #define msdc_rxfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_RXCNT) >> 0)
 #define msdc_fifo_write32(v)   sdr_write32(MSDC_TXDATA, (v))
 #define msdc_fifo_read32()   sdr_read32(MSDC_RXDATA)
-#define msdc_fifo_read8()sdr_read8(MSDC_RXDATA)
 
 #define msdc_dma_on()sdr_clr_bits(MSDC_CFG, MSDC_CFG_PIO)
 
-- 
2.16.4

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


[PATCH v2 13/34] staging: mt7621-mmc: Remove DMA basic mode code

2018-06-16 Thread Christian Lütke-Stetzkamp
The driver currently only uses DMA linked mode and the upstream
driver does the same, so remove the basic mode code.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 88 +++--
 1 file changed, 32 insertions(+), 56 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 1d0829e6..1196e8eb86c5 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -1040,66 +1040,42 @@ static void msdc_dma_config(struct msdc_host *host, 
struct msdc_dma *dma)
struct gpd *gpd;
struct bd *bd;
 
-   switch (dma->mode) {
-   case MSDC_MODE_DMA_BASIC:
-   BUG_ON(host->xfer_size > 65535);
-   BUG_ON(dma->sglen != 1);
-   writel(PHYSADDR(sg_dma_address(sg)), MSDC_DMA_SA);
-   sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_LASTBUF, 1);
-//#if defined (CONFIG_RALINK_MT7620)
-   if (ralink_soc == MT762X_SOC_MT7620A)
-   sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_XFERSZ, 
sg_dma_len(sg));
-//#elif defined (CONFIG_RALINK_MT7621) || defined (CONFIG_RALINK_MT7628)
+   /* calculate the required number of gpd */
+   num = (dma->sglen + MAX_BD_PER_GPD - 1) / MAX_BD_PER_GPD;
+   BUG_ON(num != 1);
+
+   gpd = dma->gpd;
+   bd  = dma->bd;
+
+   /* modify gpd*/
+   //gpd->intr = 0;
+   gpd->hwo = 1;  /* hw will clear it */
+   gpd->bdp = 1;
+   gpd->chksum = 0;  /* need to clear first. */
+   gpd->chksum = msdc_dma_calcs((u8 *)gpd, 16);
+
+   /* modify bd*/
+   for_each_sg(dma->sg, sg, dma->sglen, j) {
+   bd[j].blkpad = 0;
+   bd[j].dwpad = 0;
+   bd[j].ptr = (void *)sg_dma_address(sg);
+   bd[j].buflen = sg_dma_len(sg);
+
+   if (j == dma->sglen - 1)
+   bd[j].eol = 1;  /* the last bd */
else
-   writel(sg_dma_len(sg), (void __iomem 
*)(RALINK_MSDC_BASE + 0xa8));
-//#endif
-   sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_BRUSTSZ,
- MSDC_BRUST_64B);
-   sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_MODE, 0);
-   break;
-   case MSDC_MODE_DMA_DESC:
-
-   /* calculate the required number of gpd */
-   num = (dma->sglen + MAX_BD_PER_GPD - 1) / MAX_BD_PER_GPD;
-   BUG_ON(num != 1);
-
-   gpd = dma->gpd;
-   bd  = dma->bd;
-
-   /* modify gpd*/
-   //gpd->intr = 0;
-   gpd->hwo = 1;  /* hw will clear it */
-   gpd->bdp = 1;
-   gpd->chksum = 0;  /* need to clear first. */
-   gpd->chksum = msdc_dma_calcs((u8 *)gpd, 16);
-
-   /* modify bd*/
-   for_each_sg(dma->sg, sg, dma->sglen, j) {
-   bd[j].blkpad = 0;
-   bd[j].dwpad = 0;
-   bd[j].ptr = (void *)sg_dma_address(sg);
-   bd[j].buflen = sg_dma_len(sg);
-
-   if (j == dma->sglen - 1)
-   bd[j].eol = 1;  /* the last bd */
-   else
-   bd[j].eol = 0;
+   bd[j].eol = 0;
 
-   bd[j].chksum = 0; /* checksume need to clear first */
-   bd[j].chksum = msdc_dma_calcs((u8 *)([j]), 16);
-   }
+   bd[j].chksum = 0; /* checksume need to clear first */
+   bd[j].chksum = msdc_dma_calcs((u8 *)([j]), 16);
+   }
 
-   sdr_set_field(MSDC_DMA_CFG, MSDC_DMA_CFG_DECSEN, 1);
-   sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_BRUSTSZ,
- MSDC_BRUST_64B);
-   sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_MODE, 1);
+   sdr_set_field(MSDC_DMA_CFG, MSDC_DMA_CFG_DECSEN, 1);
+   sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_BRUSTSZ,
+ MSDC_BRUST_64B);
+   sdr_set_field(MSDC_DMA_CTRL, MSDC_DMA_CTRL_MODE, 1);
 
-   writel(PHYSADDR((u32)dma->gpd_addr), MSDC_DMA_SA);
-   break;
-
-   default:
-   break;
-   }
+   writel(PHYSADDR((u32)dma->gpd_addr), MSDC_DMA_SA);
 
N_MSG(DMA, "DMA_CTRL = 0x%x", readl(MSDC_DMA_CTRL));
N_MSG(DMA, "DMA_CFG  = 0x%x", readl(MSDC_DMA_CFG));
-- 
2.16.4

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


[PATCH v2 04/34] staging: mt7621-mmc: Remove unused macro msdc_fifo_write32

2018-06-16 Thread Christian Lütke-Stetzkamp
The macro msdc_fifo_write32 is never used, so remove it.

Signed-off-by: Christian Lütke-Stetzkamp 
---
 drivers/staging/mt7621-mmc/sd.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 98bcb0fe6f40..9e00f86a0398 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -149,7 +149,6 @@ static int msdc_rsp[] = {
 
 #define msdc_txfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_TXCNT) >> 
16)
 #define msdc_rxfifocnt()   ((sdr_read32(MSDC_FIFOCS) & MSDC_FIFOCS_RXCNT) >> 0)
-#define msdc_fifo_write32(v)   sdr_write32(MSDC_TXDATA, (v))
 #define msdc_fifo_read32()   sdr_read32(MSDC_RXDATA)
 
 #define msdc_dma_on()sdr_clr_bits(MSDC_CFG, MSDC_CFG_PIO)
-- 
2.16.4

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


Re: [PATCH] media: staging: atomisp: add a blank line after declarations

2018-06-16 Thread Dan Carpenter
On Sat, Jun 16, 2018 at 07:20:54PM +0900, 김준환 wrote:
> Thank you for attention :)
> 
> I knew what I forgot before doing contribute
> 
> I updated it 'TODAY' and I'll never repeat this mistake again!
> 

No rush.

This is a tiny mistake and doesn't affect runtime at all and we're all
human.  The thing to do is figure out which are avoidable mistakes,
right?

Like for me, when I was starting out I wrote some patches that added
some allocations but I forgot to add the kfree().  So then I made a QC
script that runs some static checkers over my patches and if I add any
line with "alloc" in it then my QC script asks me:

if git diff $fullname | grep ^+ | grep -qi alloc ; then
qc "Have you freed all your mallocs?"
qc "Have you checked all your mallocs for NULL returns?"
fi

And a couple weeks ago, I accidentally introduced a bug, which someone
caught during review, because I removed a cast that I thought was
unnecessary.

for (i = 0; i < (int)limit; i++) {

I thought limit couldn't be negative but I was wrong.  So I wrote a
static checker test for that so I'll never do it again.  And I found
some similar bugs in other people's code and fixed those.  Static
analysis is sort of my thing but anyone could do it really.  Or ask
Julia and I to write a check.  But most people have the hardware and
could write a test program to trigger the bug and add it to their QC
process.

So making mistakes is fine and it's part of learning.  You should
definitely take the time to figure out where you went wrong and if it's
preventable.  But no one really gets annoyed about mistakes because it's
just part of life and being human.

regards,
dan carpenter

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


Re: [PATCH] media: staging: atomisp: add a blank line after declarations

2018-06-16 Thread 김준환
Thank you for attention :)

I knew what I forgot before doing contribute

I updated it 'TODAY' and I'll never repeat this mistake again!

Sincerely,
JoonHwan

2018-06-16 18:06 GMT+09:00 Dan Carpenter :
> On Sat, Jun 16, 2018 at 01:30:48PM +0900, JoonHwan.Kim wrote:
>> @@ -1656,6 +1659,7 @@ static void atomisp_pause_buffer_event(struct 
>> atomisp_device *isp)
>>  /* invalidate. SW workaround for this is to set burst length */
>>  /* manually to 128 in case of 13MPx snapshot and to 1 otherwise. */
>>  static void atomisp_dma_burst_len_cfg(struct atomisp_sub_device *asd)
>> +
>>  {
>
> This isn't right.
>
> regards,
> dan carpenter
>
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH V2] staging: mt7621-eth: Fix memory leak in mtk_add_mac() error path

2018-06-16 Thread Kamal Heib
Fix memory leak in error path of mtk_add_mac() by make sure to free
the allocated netdev.

Fixes: e3cbf478f846 ('staging: mt7621-eth: add the drivers core files')
Signed-off-by: Kamal Heib 
---
Changes from v1:
No need to free the hw_stats.

 drivers/staging/mt7621-eth/mtk_eth_soc.c | 14 +++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/mt7621-eth/mtk_eth_soc.c 
b/drivers/staging/mt7621-eth/mtk_eth_soc.c
index 2c7a2e666bfb..c240c27dc654 100644
--- a/drivers/staging/mt7621-eth/mtk_eth_soc.c
+++ b/drivers/staging/mt7621-eth/mtk_eth_soc.c
@@ -2012,8 +2012,11 @@ static int mtk_add_mac(struct mtk_eth *eth, struct 
device_node *np)
mac->hw_stats = devm_kzalloc(eth->dev,
 sizeof(*mac->hw_stats),
 GFP_KERNEL);
-   if (!mac->hw_stats)
-   return -ENOMEM;
+   if (!mac->hw_stats) {
+   dev_err(eth->dev, "failed to allocate hw_stats\n");
+   err = -ENOMEM;
+   goto free_netdev;
+   }
spin_lock_init(>hw_stats->stats_lock);
mac->hw_stats->reg_offset = id * MTK_STAT_OFFSET;
}
@@ -2037,7 +2040,8 @@ static int mtk_add_mac(struct mtk_eth *eth, struct 
device_node *np)
err = register_netdev(eth->netdev[id]);
if (err) {
dev_err(eth->dev, "error bringing up device\n");
-   return err;
+   err = -ENOMEM;
+   goto free_netdev;
}
eth->netdev[id]->irq = eth->irq;
netif_info(eth, probe, eth->netdev[id],
@@ -2045,6 +2049,10 @@ static int mtk_add_mac(struct mtk_eth *eth, struct 
device_node *np)
   eth->netdev[id]->base_addr, eth->netdev[id]->irq);
 
return 0;
+
+free_netdev:
+   free_netdev(eth->netdev[id]);
+   return err;
 }
 
 static int mtk_probe(struct platform_device *pdev)
-- 
2.14.4

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


Re: [PATCH] staging: mt7621-eth: Fix memory leaks in mtk_add_mac() error path

2018-06-16 Thread Kamal Heib
On Sat, Jun 16, 2018 at 11:54:03AM +0300, Dan Carpenter wrote:
> On Fri, Jun 15, 2018 at 01:53:03AM +0300, Kamal Heib wrote:
> > @@ -2045,6 +2049,12 @@ static int mtk_add_mac(struct mtk_eth *eth, struct 
> > device_node *np)
> >eth->netdev[id]->base_addr, eth->netdev[id]->irq);
> >  
> > return 0;
> > +
> > +free_hw_stats:
> > +   devm_kfree(eth->dev, mac->hw_stats);
> 
> You shouldn't need to free devm data.
> 
OK, now I see your point, I'll fix it soon.

Thanks,
Kamal

> regards,
> dan carpenter
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] media: staging: atomisp: add a blank line after declarations

2018-06-16 Thread Dan Carpenter
On Sat, Jun 16, 2018 at 01:30:48PM +0900, JoonHwan.Kim wrote:
> @@ -1656,6 +1659,7 @@ static void atomisp_pause_buffer_event(struct 
> atomisp_device *isp)
>  /* invalidate. SW workaround for this is to set burst length */
>  /* manually to 128 in case of 13MPx snapshot and to 1 otherwise. */
>  static void atomisp_dma_burst_len_cfg(struct atomisp_sub_device *asd)
> +
>  {

This isn't right.

regards,
dan carpenter

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


Re: [PATCH] staging: mt7621-eth: Fix memory leaks in mtk_add_mac() error path

2018-06-16 Thread Dan Carpenter
On Fri, Jun 15, 2018 at 01:53:03AM +0300, Kamal Heib wrote:
> @@ -2045,6 +2049,12 @@ static int mtk_add_mac(struct mtk_eth *eth, struct 
> device_node *np)
>  eth->netdev[id]->base_addr, eth->netdev[id]->irq);
>  
>   return 0;
> +
> +free_hw_stats:
> + devm_kfree(eth->dev, mac->hw_stats);

You shouldn't need to free devm data.

regards,
dan carpenter

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


Re: [PATCH v4] staging: rtl8192u: add error handling for usb_alloc_urb

2018-06-16 Thread Dan Carpenter
I was actually OK with v1 on the theory that everything else leaked and
so this didn't really introduce anything new... :P

On Sat, Jun 16, 2018 at 10:01:22AM +0800, Zhouyang Jia wrote:
> --- a/drivers/staging/rtl8192u/r8192U_core.c
> +++ b/drivers/staging/rtl8192u/r8192U_core.c
> @@ -1639,8 +1639,9 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff 
> *skb)
>  static short rtl8192_usb_initendpoints(struct net_device *dev)
>  {
>   struct r8192_priv *priv = ieee80211_priv(dev);
> + int i;
>  
> - priv->rx_urb = kmalloc(sizeof(struct urb *) * (MAX_RX_URB + 1),
> + priv->rx_urb = kcalloc(MAX_RX_URB + 1, sizeof(struct urb *),
>  GFP_KERNEL);
>   if (!priv->rx_urb)
>   return -ENOMEM;
> @@ -1649,12 +1650,12 @@ static short rtl8192_usb_initendpoints(struct 
> net_device *dev)
>   for (i = 0; i < (MAX_RX_URB + 1); i++) {
>   priv->rx_urb[i] = usb_alloc_urb(0, GFP_KERNEL);
>   if (!priv->rx_urb[i])
> - return -ENOMEM;
> + goto out_release_mem;
>  
>   priv->rx_urb[i]->transfer_buffer =
>   kmalloc(RX_URB_SIZE, GFP_KERNEL);


You need to free priv->rx_urb[i]->transfer_buffer as well and there are
several other resources which are also not freed.

regards,
dan carpenter

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


Re: [PATCH] media: staging: atomisp: add a blank line after declarations

2018-06-16 Thread Greg KH
On Sat, Jun 16, 2018 at 01:30:48PM +0900, JoonHwan.Kim wrote:
> fix checkpatch.pl warning:
>   * Missing a blank line after declarations
> 
> Signed-off-by: Joonhwan Kim 
> ---
>  drivers/staging/media/atomisp/pci/atomisp2/atomisp_ioctl.c | 5 +

Always work against the latest development tree so you do not duplicate
work.  This file is gone in Linus's tree, and in linux-next :(

thanks,

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


Re: [PATCH] staging: rtl8192u: fix line over 80 characters

2018-06-16 Thread Julia Lawall



On Sat, 16 Jun 2018, Hyunil Kim wrote:

> *fix checkpatch.pl warnings:
>  WARNING: line over 80 characters

Describe what you do and why, rather than just saying "Fix".  Often
something can be fixed in multiple ways.

julia

>
> Signed-off-by: Hyunil Kim 
> ---
>  drivers/staging/rtl8192u/r8192U_core.c | 5 -
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/rtl8192u/r8192U_core.c 
> b/drivers/staging/rtl8192u/r8192U_core.c
> index 74c5865..2111e01 100644
> --- a/drivers/staging/rtl8192u/r8192U_core.c
> +++ b/drivers/staging/rtl8192u/r8192U_core.c
> @@ -2044,7 +2044,10 @@ static bool GetNmodeSupportBySecCfg8192(struct 
> net_device *dev)
>   return false;
>   } else if ((wpa_ie_len != 0)) {
>   /* parse pairwise key type */
> - if (((ieee->wpa_ie[0] == 0xdd) && (!memcmp(&(ieee->wpa_ie[14]), 
> ccmp_ie, 4))) || ((ieee->wpa_ie[0] == 0x30) && (!memcmp(>wpa_ie[10], 
> ccmp_rsn_ie, 4
> + if (((ieee->wpa_ie[0] == 0xdd) &&
> + (!memcmp(&(ieee->wpa_ie[14]), ccmp_ie, 4))) ||
> + ((ieee->wpa_ie[0] == 0x30) &&
> + (!memcmp(>wpa_ie[10], ccmp_rsn_ie, 4
>   return true;
>   else
>   return false;
> --
> 2.7.4
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2] staging: rtl8712: Adjust if statements to reduce indentation level

2018-06-16 Thread Joonhwan Kim
Merge two condition of if statements in
r8712_surveydone_event_callback()

Signed-off-by: Joonhwan Kim 
---
v2: fix my name without period in email header

 drivers/staging/rtl8712/rtl871x_mlme.c | 51 +-
 1 file changed, 25 insertions(+), 26 deletions(-)

diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c 
b/drivers/staging/rtl8712/rtl871x_mlme.c
index ac547ddd72d1..b8618b0565d5 100644
--- a/drivers/staging/rtl8712/rtl871x_mlme.c
+++ b/drivers/staging/rtl8712/rtl871x_mlme.c
@@ -566,32 +566,31 @@ void r8712_surveydone_event_callback(struct _adapter 
*adapter, u8 *pbuf)
}
 
if (pmlmepriv->to_join) {
-   if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) {
-   if (!check_fwstate(pmlmepriv, _FW_LINKED)) {
-   set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
-
-   if (r8712_select_and_join_from_scan(pmlmepriv)
-   == _SUCCESS) {
-   mod_timer(>assoc_timer, 
jiffies +
- 
msecs_to_jiffies(MAX_JOIN_TIMEOUT));
-   } else {
-   struct wlan_bssid_ex *pdev_network =
- &(adapter->registrypriv.dev_network);
-   u8 *pibss =
-adapter->registrypriv.
-   dev_network.MacAddress;
-   pmlmepriv->fw_state ^= _FW_UNDER_SURVEY;
-   memcpy(_network->Ssid,
-   >assoc_ssid,
-   sizeof(struct
-ndis_802_11_ssid));
-   r8712_update_registrypriv_dev_network
-   (adapter);
-   r8712_generate_random_ibss(pibss);
-   pmlmepriv->fw_state =
-WIFI_ADHOC_MASTER_STATE;
-   pmlmepriv->to_join = false;
-   }
+   if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) &&
+   !check_fwstate(pmlmepriv, _FW_LINKED)) {
+   set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
+
+   if (r8712_select_and_join_from_scan(pmlmepriv)
+   == _SUCCESS) {
+   mod_timer(>assoc_timer, jiffies +
+ msecs_to_jiffies(MAX_JOIN_TIMEOUT));
+   } else {
+   struct wlan_bssid_ex *pdev_network =
+ &(adapter->registrypriv.dev_network);
+   u8 *pibss =
+adapter->registrypriv.
+   dev_network.MacAddress;
+   pmlmepriv->fw_state ^= _FW_UNDER_SURVEY;
+   memcpy(_network->Ssid,
+   >assoc_ssid,
+   sizeof(struct
+ndis_802_11_ssid));
+   r8712_update_registrypriv_dev_network
+   (adapter);
+   r8712_generate_random_ibss(pibss);
+   pmlmepriv->fw_state =
+WIFI_ADHOC_MASTER_STATE;
+   pmlmepriv->to_join = false;
}
} else {
pmlmepriv->to_join = false;
-- 
2.17.1




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


[PATCH] staging: rtl8192u: fix line over 80 characters

2018-06-16 Thread Hyunil Kim
*fix checkpatch.pl warnings:
 WARNING: line over 80 characters

Signed-off-by: Hyunil Kim 
---
 drivers/staging/rtl8192u/r8192U_core.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8192u/r8192U_core.c 
b/drivers/staging/rtl8192u/r8192U_core.c
index 74c5865..2111e01 100644
--- a/drivers/staging/rtl8192u/r8192U_core.c
+++ b/drivers/staging/rtl8192u/r8192U_core.c
@@ -2044,7 +2044,10 @@ static bool GetNmodeSupportBySecCfg8192(struct 
net_device *dev)
return false;
} else if ((wpa_ie_len != 0)) {
/* parse pairwise key type */
-   if (((ieee->wpa_ie[0] == 0xdd) && (!memcmp(&(ieee->wpa_ie[14]), 
ccmp_ie, 4))) || ((ieee->wpa_ie[0] == 0x30) && (!memcmp(>wpa_ie[10], 
ccmp_rsn_ie, 4
+   if (((ieee->wpa_ie[0] == 0xdd) &&
+   (!memcmp(&(ieee->wpa_ie[14]), ccmp_ie, 4))) ||
+   ((ieee->wpa_ie[0] == 0x30) &&
+   (!memcmp(>wpa_ie[10], ccmp_rsn_ie, 4
return true;
else
return false;
-- 
2.7.4


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