Skip to contentSkip to conversation

musb: omap: Fix: pass all the resources to musb core

PATCH In review Kishon Vijay Abraham I 4 participants 5 messages Jul 8, 2013 – Jul 10, 2013 3 messages not in the archive

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 musb: omap: Fix: pass all the resources to musb core

commit 09fc7d (usb: musb: fix incorrect usage of resource pointer) assumes musb core will always have only 2 resources. But for OMAP platforms there can be 3 resources (2 irq resource and 1 iomem resource). Fixed it here.

---
 drivers/usb/musb/omap2430.c |   18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
drivers/usb/musb/omap2430.c +2 -5
index 5b6113a..5bbef78 100644
@@ -481,7 +481,7 @@ static u64 omap2430_dmamask = DMA_BIT_MASK(32);
 
 static int omap2430_probe(struct platform_device *pdev)
 {
-	struct resource			musb_resources[2];
+	struct resource			musb_resources[3];
 	struct musb_hdrc_platform_data	*pdata = pdev->dev.platform_data;
 	struct omap_musb_board_data	*data;
 	struct platform_device		*musb;
@@ -489,6 +489,7 @@ static int omap2430_probe(struct platform_device *pdev)
 	struct device_node		*np = pdev->dev.of_node;
 	struct musb_hdrc_config		*config;
 	int				ret = -ENOMEM;
+	int				i = 0;
 
 	glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
 	if (!glue) {
@@ -571,15 +572,12 @@ static int omap2430_probe(struct platform_device *pdev)
 	memset(musb_resources, 0x00, sizeof(*musb_resources) *
 			ARRAY_SIZE(musb_resources));
 
-	musb_resources[0].name = pdev->resource[0].name;
-	musb_resources[0].start = pdev->resource[0].start;
-	musb_resources[0].end = pdev->resource[0].end;
-	musb_resources[0].flags = pdev->resource[0].flags;
#1 lore raw

Hello.

Quoted 14 lines · Kishon Vijay Abraham I

commit 09fc7d (usb: musb: fix incorrect usage of resource pointer) assumes musb core will always have only 2 resources. But for OMAP platforms there can be 3 resources (2 irq resource and 1 iomem resource). Fixed it here.

---
  drivers/usb/musb/omap2430.c |   18 ++++++++----------
  1 file changed, 8 insertions(+), 10 deletions(-)
drivers/usb/musb/omap2430.c +0 -0
index 5b6113a..5bbef78 100644

[...]

drivers/usb/musb/omap2430.c static int omap2430_probe(struct platform_device *pdev) · line 492

Quoted 5 lines
drivers/usb/musb/omap2430.c +1 -0
@@ -489,6 +489,7 @@ static int omap2430_probe(struct platform_device *pdev)
  	struct device_node		*np = pdev->dev.of_node;
  	struct musb_hdrc_config		*config;
  	int				ret = -ENOMEM;
+	int				i = 0;

Redundant initialization.

Quoted 11 lines
drivers/usb/musb/omap2430.c +0 -5
  	glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
  	if (!glue) {
@@ -571,15 +572,12 @@ static int omap2430_probe(struct platform_device *pdev)
  	memset(musb_resources, 0x00, sizeof(*musb_resources) *
  			ARRAY_SIZE(musb_resources));
 
-	musb_resources[0].name = pdev->resource[0].name;
-	musb_resources[0].start = pdev->resource[0].start;
-	musb_resources[0].end = pdev->resource[0].end;
-	musb_resources[0].flags = pdev->resource[0].flags;
-

drivers/usb/musb/omap2430.c static int omap2430_probe(struct platform_device *pdev) · line 580

Quoted 10 lines
drivers/usb/musb/omap2430.c +6 -4
-	musb_resources[1].name = pdev->resource[1].name;
-	musb_resources[1].start = pdev->resource[1].start;
-	musb_resources[1].end = pdev->resource[1].end;
-	musb_resources[1].flags = pdev->resource[1].flags;
+	for (i = 0; i < ARRAY_SIZE(musb_resources); i++) {
+		musb_resources[i].name = pdev->resource[i].name;
+		musb_resources[i].start = pdev->resource[i].start;
+		musb_resources[i].end = pdev->resource[i].end;
+		musb_resources[i].flags = pdev->resource[i].flags;
+	}

WBR, Sergei

A message that is not in the archive (sent off-list or not yet received): 51DAAEEA.60409-M4DtvfQ/[email protected]

#3 lore raw

PATCH v2 1/1 musb: omap: Fix: pass all the resources to musb core

commit 09fc7d (usb: musb: fix incorrect usage of resource pointer) assumes musb core will always have only 2 resources. But for OMAP platforms there can be 3 resources (2 irq resource and 1 iomem resource). Fixed it here.

---
Changes from v1:
*) Removed redundant initialization of *i*

 drivers/usb/musb/omap2430.c |   18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
drivers/usb/musb/omap2430.c +2 -5
index 5b6113a..5bbef78 100644
@@ -481,7 +481,7 @@ static u64 omap2430_dmamask = DMA_BIT_MASK(32);
 
 static int omap2430_probe(struct platform_device *pdev)
 {
-	struct resource			musb_resources[2];
+	struct resource			musb_resources[3];
 	struct musb_hdrc_platform_data	*pdata = pdev->dev.platform_data;
 	struct omap_musb_board_data	*data;
 	struct platform_device		*musb;
@@ -489,6 +489,7 @@ static int omap2430_probe(struct platform_device *pdev)
 	struct device_node		*np = pdev->dev.of_node;
 	struct musb_hdrc_config		*config;
 	int				ret = -ENOMEM;
+	int				i;
 
 	glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
 	if (!glue) {
@@ -571,15 +572,12 @@ static int omap2430_probe(struct platform_device *pdev)
 	memset(musb_resources, 0x00, sizeof(*musb_resources) *
 			ARRAY_SIZE(musb_resources));
 
-	musb_resources[0].name = pdev->resource[0].name;
-	musb_resources[0].start = pdev->resource[0].start;
-	musb_resources[0].end = pdev->resource[0].end;
-	musb_resources[0].flags = pdev->resource[0].flags;

A message that is not in the archive (sent off-list or not yet received): 1373453962-21344-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org

#5 lore raw
Quoted 38 lines · Kishon Vijay Abraham I

commit 09fc7d (usb: musb: fix incorrect usage of resource pointer) assumes musb core will always have only 2 resources. But for OMAP platforms there can be 3 resources (2 irq resource and 1 iomem resource). Fixed it here.

---
Changes from v1:
*) Removed redundant initialization of *i*

 drivers/usb/musb/omap2430.c |   18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
drivers/usb/musb/omap2430.c +2 -1
index 5b6113a..5bbef78 100644
@@ -481,7 +481,7 @@ static u64 omap2430_dmamask = DMA_BIT_MASK(32);
 
 static int omap2430_probe(struct platform_device *pdev)
 {
-	struct resource			musb_resources[2];
+	struct resource			musb_resources[3];
 	struct musb_hdrc_platform_data	*pdata = pdev->dev.platform_data;
 	struct omap_musb_board_data	*data;
 	struct platform_device		*musb;
@@ -489,6 +489,7 @@ static int omap2430_probe(struct platform_device *pdev)
 	struct device_node		*np = pdev->dev.of_node;
 	struct musb_hdrc_config		*config;
 	int				ret = -ENOMEM;
+	int				i;
 
 	glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
 	if (!glue) {
@@ -571,15 +572,12 @@ static int omap2430_probe(struct platform_device *pdev)
 	memset(musb_resources, 0x00, sizeof(*musb_resources) *
 			ARRAY_SIZE(musb_resources));
 

drivers/usb/musb/omap2430.c static int omap2430_probe(struct platform_device *pdev) · line 575

Quoted 10 lines
drivers/usb/musb/omap2430.c +1 -9
-	musb_resources[0].name = pdev->resource[0].name;
-	musb_resources[0].start = pdev->resource[0].start;
-	musb_resources[0].end = pdev->resource[0].end;
-	musb_resources[0].flags = pdev->resource[0].flags;
-
-	musb_resources[1].name = pdev->resource[1].name;
-	musb_resources[1].start = pdev->resource[1].start;
-	musb_resources[1].end = pdev->resource[1].end;
-	musb_resources[1].flags = pdev->resource[1].flags;
+	for (i = 0; i < ARRAY_SIZE(musb_resources); i++) {

then this is not enough, what if one device using omap2430.c has 2 resources and the other has 3 ? and what if a new one has 4 ?

How about using pdev->num_resources to dynamically allocate musb_resources array and using the same thing iterate here ?

Something like:

	struct resource		*musb_resources;

	musb_resources = kcalloc(pdev->num_resources, struct resource, GPF_KERNEL);
	if (!musb_resources)
		bail();

	for (i = 0; i < pdev->num_resources, i++) {
		musb_resources[i].name = pdev->resource[i].name;
		musb_resources[i].start = pdev->resource[i].start;
		musb_resources[i].end = pdev->resource[i].end;
		musb_resources[i].flags = pdev->resource[i].flags;
	}

cheers

Signature · 1 line
balbi

A message that is not in the archive (sent off-list or not yet received): 20130710112746.GA18966-S8G//mZuvNWo5Im9Ml3/[email protected]

#7 lore raw
Quoted 53 lines · Felipe Balbi
Quoted 38 lines · Kishon Vijay Abraham I

commit 09fc7d (usb: musb: fix incorrect usage of resource pointer) assumes musb core will always have only 2 resources. But for OMAP platforms there can be 3 resources (2 irq resource and 1 iomem resource). Fixed it here.

---
Changes from v1:
*) Removed redundant initialization of *i*

 drivers/usb/musb/omap2430.c |   18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
drivers/usb/musb/omap2430.c +2 -1
index 5b6113a..5bbef78 100644
@@ -481,7 +481,7 @@ static u64 omap2430_dmamask = DMA_BIT_MASK(32);
 
 static int omap2430_probe(struct platform_device *pdev)
 {
-	struct resource			musb_resources[2];
+	struct resource			musb_resources[3];
 	struct musb_hdrc_platform_data	*pdata = pdev->dev.platform_data;
 	struct omap_musb_board_data	*data;
 	struct platform_device		*musb;
@@ -489,6 +489,7 @@ static int omap2430_probe(struct platform_device *pdev)
 	struct device_node		*np = pdev->dev.of_node;
 	struct musb_hdrc_config		*config;
 	int				ret = -ENOMEM;
+	int				i;
 
 	glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
 	if (!glue) {
@@ -571,15 +572,12 @@ static int omap2430_probe(struct platform_device *pdev)
 	memset(musb_resources, 0x00, sizeof(*musb_resources) *
 			ARRAY_SIZE(musb_resources));
 

drivers/usb/musb/omap2430.c static int omap2430_probe(struct platform_device *pdev) · line 575

Quoted 10 lines
drivers/usb/musb/omap2430.c +1 -9
-	musb_resources[0].name = pdev->resource[0].name;
-	musb_resources[0].start = pdev->resource[0].start;
-	musb_resources[0].end = pdev->resource[0].end;
-	musb_resources[0].flags = pdev->resource[0].flags;
-
-	musb_resources[1].name = pdev->resource[1].name;
-	musb_resources[1].start = pdev->resource[1].start;
-	musb_resources[1].end = pdev->resource[1].end;
-	musb_resources[1].flags = pdev->resource[1].flags;
+	for (i = 0; i < ARRAY_SIZE(musb_resources); i++) {

then this is not enough, what if one device using omap2430.c has 2 resources and the other has 3 ? and what if a new one has 4 ?

Quoted 2 lines

How about using pdev->num_resources to dynamically allocate musb_resources array and using the same thing iterate here ?

Yeah. This looks better.

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html