Skip to contentSkip to conversation

imx6: mx6qarm2: updated

PATCH New Stefano Babic 4 participants 9 messages Jan 17, 2012 – Jan 18, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 imx6: mx6qarm2: updated

Commit 314284b1567f1ce29c19060641e7f213146f7ab8 has changed board_mmc_getcd() function prototype, while mx6qarm2 has still the old one.

---
 board/freescale/mx6qarm2/mx6qarm2.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
board/freescale/mx6qarm2/mx6qarm2.c +5 -4
index 9894245..9724c16 100644
@@ -120,17 +120,18 @@ struct fsl_esdhc_cfg usdhc_cfg[2] = {
 	{USDHC4_BASE_ADDR, 1},
 };
 
-int board_mmc_getcd(u8 *cd, struct mmc *mmc)
+int board_mmc_getcd(struct mmc *mmc)
 {
 	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+	int ret;
 
 	if (cfg->esdhc_base == USDHC3_BASE_ADDR) {
 		gpio_direction_input(171); /*GPIO6_11*/
-		*cd = gpio_get_value(171);
+		ret = !gpio_get_value(171);
 	} else /* Don't have the CD GPIO pin on board */
-		*cd = 0;
+		ret = 0;
 
-	return 0;
+	return ret;
 }
 
 int board_mmc_init(bd_t *bis)
Signature · 1 line
1.7.5.4
#3 lore raw

PATCH 1/1 imx6: mx6qarm2: updated

Quoted 11 lines · Fabio Estevam

Hi Stefano,

Quoted 6 lines · Stefano Babic

Commit 314284b1567f1ce29c19060641e7f213146f7ab8 has changed board_mmc_getcd() function prototype, while mx6qarm2 has still the old one.

I think the subject of the patch could be improved.

...one part was lost editing the commit message - I will send V2.

Stefano

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================
#4 lore raw

PATCH v2 1/1 imx6: mx6qarm2: updated board_mmc_getcd() to the new prototype

In reply to Stefano Babic

Commit 314284b1567f1ce29c19060641e7f213146f7ab8 has changed board_mmc_getcd() function prototype, while mx6qarm2 has still the old one.

---
 board/freescale/mx6qarm2/mx6qarm2.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
board/freescale/mx6qarm2/mx6qarm2.c +5 -4
index 9894245..9724c16 100644
@@ -120,17 +120,18 @@ struct fsl_esdhc_cfg usdhc_cfg[2] = {
 	{USDHC4_BASE_ADDR, 1},
 };
 
-int board_mmc_getcd(u8 *cd, struct mmc *mmc)
+int board_mmc_getcd(struct mmc *mmc)
 {
 	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+	int ret;
 
 	if (cfg->esdhc_base == USDHC3_BASE_ADDR) {
 		gpio_direction_input(171); /*GPIO6_11*/
-		*cd = gpio_get_value(171);
+		ret = !gpio_get_value(171);
 	} else /* Don't have the CD GPIO pin on board */
-		*cd = 0;
+		ret = 0;
 
-	return 0;
+	return ret;
 }
 
 int board_mmc_init(bd_t *bis)
Signature · 1 line
1.7.5.4
#5 lore raw

PATCH v2 1/1 imx6: mx6qarm2: updated board_mmc_getcd() to the new prototype

Quoted 27 lines · Stefano Babic

Commit 314284b1567f1ce29c19060641e7f213146f7ab8 has changed board_mmc_getcd() function prototype, while mx6qarm2 has still the old one.

---
?board/freescale/mx6qarm2/mx6qarm2.c | ? ?9 +++++---- ?1 files changed, 5 insertions(+), 4 deletions(-)

board/freescale/mx6qarm2/mx6qarm2.c +2 -1
index 9894245..9724c16 100644
@@ -120,17 +120,18 @@ struct fsl_esdhc_cfg usdhc_cfg[2] = {
 ? ? ? ?{USDHC4_BASE_ADDR, 1},
 ?};
 
-int board_mmc_getcd(u8 *cd, struct mmc *mmc)
+int board_mmc_getcd(struct mmc *mmc)
 ?{
 ? ? ? ?struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+ ? ? ? int ret;
 
 ? ? ? ?if (cfg->esdhc_base == USDHC3_BASE_ADDR) {
Quoted 6 lines

? ? ? ? ? ? ? ?gpio_direction_input(171); /*GPIO6_11*/
- ? ? ? ? ? ? ? *cd = gpio_get_value(171);
+ ? ? ? ? ? ? ? ret = !gpio_get_value(171);
? ? ? ?} else /* Don't have the CD GPIO pin on board */
- ? ? ? ? ? ? ? *cd = 0;
+ ? ? ? ? ? ? ? ret = 0;

                              ^^^^^^1

Apparently, this is wrong for the else statement, since there is no CD for the SD4 on the board,
so, we have to tell MMC system that the card is always there, otherwise, we can't use the MMC
plug-in that slot. After change to new prototype, we also need convert the ret value for the SD4,
and return 1 not 0 to MMC.

Quoted 9 lines

- ? ? ? return 0;
+ ? ? ? return ret;
?}

?int board_mmc_init(bd_t *bis)
--
1.7.5.4

#6 lore raw

PATCH v2 1/1 imx6: mx6qarm2: updated board_mmc_getcd() to the new prototype

Quoted 14 lines · Jason Hui

board/freescale/mx6qarm2/mx6qarm2.c struct fsl_esdhc_cfg usdhc_cfg[2] = { · line 132

Quoted 13 lines
board/freescale/mx6qarm2/mx6qarm2.c +4 -3
-int board_mmc_getcd(u8 *cd, struct mmc *mmc)
+int board_mmc_getcd(struct mmc *mmc)
 {
       struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+       int ret;
 
       if (cfg->esdhc_base == USDHC3_BASE_ADDR) {
               gpio_direction_input(171); /*GPIO6_11*/
-               *cd = gpio_get_value(171);
+               ret = !gpio_get_value(171);
       } else /* Don't have the CD GPIO pin on board */
-               *cd = 0;
+               ret = 0;
                              ^^^^^^1
Quoted 4 lines

Apparently, this is wrong for the else statement, since there is no CD for the SD4 on the board,
so, we have to tell MMC system that the card is always there, otherwise, we can't use the MMC

Ok - so we have to invert the logic for the else clause.

Quoted 3 lines

plug-in that slot. After change to new prototype, we also need convert the ret value for the SD4,
and return 1 not 0 to MMC.

Thanks - I send V3 with the required change.

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================
#7 lore raw

PATCH v3 1/1 imx6: mx6qarm2: updated board_mmc_getcd() to the new prototype

In reply to Stefano Babic

Commit 314284b1567f1ce29c19060641e7f213146f7ab8 has changed board_mmc_getcd() function prototype, while mx6qarm2 has still the old one.

---
Changes since V1:
- update subject (Fabio Estevam)

Changes since V2:
- board_mmc_getcd() must return 1 in the else clause (Jason Liu)

Note: not tested on real board, the patch fixes building.

 board/freescale/mx6qarm2/mx6qarm2.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
board/freescale/mx6qarm2/mx6qarm2.c +5 -4
index 9894245..1367b88 100644
@@ -120,17 +120,18 @@ struct fsl_esdhc_cfg usdhc_cfg[2] = {
 	{USDHC4_BASE_ADDR, 1},
 };
 
-int board_mmc_getcd(u8 *cd, struct mmc *mmc)
+int board_mmc_getcd(struct mmc *mmc)
 {
 	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+	int ret;
 
 	if (cfg->esdhc_base == USDHC3_BASE_ADDR) {
 		gpio_direction_input(171); /*GPIO6_11*/
-		*cd = gpio_get_value(171);
+		ret = !gpio_get_value(171);
 	} else /* Don't have the CD GPIO pin on board */
-		*cd = 0;
+		ret = 1;
 
-	return 0;
+	return ret;
 }
 
 int board_mmc_init(bd_t *bis)
Signature · 1 line
1.7.5.4
#8 lore raw

PATCH v3 1/1 imx6: mx6qarm2: updated board_mmc_getcd() to the new prototype

Quoted 7 lines · Stefano Babic

Commit 314284b1567f1ce29c19060641e7f213146f7ab8 has changed board_mmc_getcd() function prototype, while mx6qarm2 has still the old one.

Quoted 8 lines

---
Changes since V1:
- update subject (Fabio Estevam)

Changes since V2:
- board_mmc_getcd() must return 1 in the else clause (Jason Liu)

Note: not tested on real board, the patch fixes building.

I have tested it on the real board, it works fine:)

Quoted 34 lines

?board/freescale/mx6qarm2/mx6qarm2.c | ? ?9 +++++---- ?1 files changed, 5 insertions(+), 4 deletions(-)

board/freescale/mx6qarm2/mx6qarm2.c +2 -1
index 9894245..1367b88 100644
@@ -120,17 +120,18 @@ struct fsl_esdhc_cfg usdhc_cfg[2] = {
 ? ? ? ?{USDHC4_BASE_ADDR, 1},
 ?};
 
-int board_mmc_getcd(u8 *cd, struct mmc *mmc)
+int board_mmc_getcd(struct mmc *mmc)
 ?{
 ? ? ? ?struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+ ? ? ? int ret;
 
 ? ? ? ?if (cfg->esdhc_base == USDHC3_BASE_ADDR) {

? ? ? ? ? ? ? ?gpio_direction_input(171); /*GPIO6_11*/
- ? ? ? ? ? ? ? *cd = gpio_get_value(171);
+ ? ? ? ? ? ? ? ret = !gpio_get_value(171);
? ? ? ?} else /* Don't have the CD GPIO pin on board */
- ? ? ? ? ? ? ? *cd = 0;
+ ? ? ? ? ? ? ? ret = 1;

- ? ? ? return 0;
+ ? ? ? return ret;
?}

?int board_mmc_init(bd_t *bis)
--
1.7.5.4