diff mbox

[v6,02/13] PCI: designware: Set func type of host init to int

Message ID 1413445963-24706-3-git-send-email-richard.zhu@freescale.com (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

Richard Zhu Oct. 16, 2014, 7:52 a.m. UTC
host init maybe failed, change the func type of host_init
defined in struct pci_host_ops from void to int.

Signed-off-by: Richard Zhu <richard.zhu@freescale.com>
---
 drivers/pci/host/pcie-designware.c | 7 +++++--
 drivers/pci/host/pcie-designware.h | 2 +-
 2 files changed, 6 insertions(+), 3 deletions(-)

Comments

Lucas Stach Oct. 16, 2014, 10:39 a.m. UTC | #1
Am Donnerstag, den 16.10.2014, 15:52 +0800 schrieb Richard Zhu:
> host init maybe failed, change the func type of host_init
> defined in struct pci_host_ops from void to int.
> 
> Signed-off-by: Richard Zhu <richard.zhu@freescale.com>

NAK. You are breaking compilation within the series here. If you are
going to change the prototype the dependant changes need to be in the
same patch. So squash in at least patch 3-5 plus the imx6 change.

> ---
>  drivers/pci/host/pcie-designware.c | 7 +++++--
>  drivers/pci/host/pcie-designware.h | 2 +-
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/host/pcie-designware.c b/drivers/pci/host/pcie-designware.c
> index b1f82ff..1a2b477 100644
> --- a/drivers/pci/host/pcie-designware.c
> +++ b/drivers/pci/host/pcie-designware.c
> @@ -578,8 +578,11 @@ int __init dw_pcie_host_init(struct pcie_port *pp)
>  		}
>  	}
>  
> -	if (pp->ops->host_init)
> -		pp->ops->host_init(pp);
> +	if (pp->ops->host_init) {
> +		ret = pp->ops->host_init(pp);
> +		if (ret < 0)
> +			return ret;
> +	}
>  
>  	dw_pcie_wr_own_conf(pp, PCI_BASE_ADDRESS_0, 4, 0);
>  
> diff --git a/drivers/pci/host/pcie-designware.h b/drivers/pci/host/pcie-designware.h
> index b0bfed0..57ab11d 100644
> --- a/drivers/pci/host/pcie-designware.h
> +++ b/drivers/pci/host/pcie-designware.h
> @@ -72,7 +72,7 @@ struct pcie_host_ops {
>  	int (*wr_other_conf)(struct pcie_port *pp, struct pci_bus *bus,
>  			unsigned int devfn, int where, int size, u32 val);
>  	int (*link_up)(struct pcie_port *pp);
> -	void (*host_init)(struct pcie_port *pp);
> +	int (*host_init)(struct pcie_port *pp);
>  	void (*msi_set_irq)(struct pcie_port *pp, int irq);
>  	void (*msi_clear_irq)(struct pcie_port *pp, int irq);
>  	u32 (*get_msi_data)(struct pcie_port *pp);


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Richard Zhu Oct. 20, 2014, 5:21 a.m. UTC | #2
DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEx1Y2FzIFN0YWNoIFttYWls
dG86bC5zdGFjaEBwZW5ndXRyb25peC5kZV0NCj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMTYs
IDIwMTQgNjozOSBQTQ0KPiBUbzogUmljaGFyZCBaaHUNCj4gQ2M6IGxpbnV4LXBjaUB2Z2VyLmtl
cm5lbC5vcmc7IEd1byBTaGF3bi1SNjUwNzM7IGZlc3RldmFtQGdtYWlsLmNvbTsNCj4gdGhhcnZl
eUBnYXRld29ya3MuY29tDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjYgMDIvMTNdIFBDSTogZGVz
aWdud2FyZTogU2V0IGZ1bmMgdHlwZSBvZiBob3N0IGluaXQgdG8NCj4gaW50DQo+IA0KPiBBbSBE
b25uZXJzdGFnLCBkZW4gMTYuMTAuMjAxNCwgMTU6NTIgKzA4MDAgc2NocmllYiBSaWNoYXJkIFpo
dToNCj4gPiBob3N0IGluaXQgbWF5YmUgZmFpbGVkLCBjaGFuZ2UgdGhlIGZ1bmMgdHlwZSBvZiBo
b3N0X2luaXQgZGVmaW5lZCBpbg0KPiA+IHN0cnVjdCBwY2lfaG9zdF9vcHMgZnJvbSB2b2lkIHRv
IGludC4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgWmh1IDxyaWNoYXJkLnpodUBm
cmVlc2NhbGUuY29tPg0KPiANCj4gTkFLLiBZb3UgYXJlIGJyZWFraW5nIGNvbXBpbGF0aW9uIHdp
dGhpbiB0aGUgc2VyaWVzIGhlcmUuIElmIHlvdSBhcmUgZ29pbmcgdG8NCj4gY2hhbmdlIHRoZSBw
cm90b3R5cGUgdGhlIGRlcGVuZGFudCBjaGFuZ2VzIG5lZWQgdG8gYmUgaW4gdGhlIHNhbWUgcGF0
Y2guIFNvDQo+IHNxdWFzaCBpbiBhdCBsZWFzdCBwYXRjaCAzLTUgcGx1cyB0aGUgaW14NiBjaGFu
Z2UuDQpbUmljaGFyZF0gU28sIHRoaXMgcGF0Y2ggc2hvdWxkIGJlIHNxdWFzaGVkIHdpdGggcGF0
Y2gzLTUsIGFuZCB0aGUgIlBDSTogaW14NjogQWRkIGlteDZzeCBwY2llIHN1cHBvcnQiLg0KVGhh
bmtzLg0KDQo+IA0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL3BjaS9ob3N0L3BjaWUtZGVzaWdud2Fy
ZS5jIHwgNyArKysrKy0tDQo+ID4gZHJpdmVycy9wY2kvaG9zdC9wY2llLWRlc2lnbndhcmUuaCB8
IDIgKy0NCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z
KC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG9zdC9wY2llLWRlc2lnbndh
cmUuYw0KPiA+IGIvZHJpdmVycy9wY2kvaG9zdC9wY2llLWRlc2lnbndhcmUuYw0KPiA+IGluZGV4
IGIxZjgyZmYuLjFhMmI0NzcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kvaG9zdC9wY2ll
LWRlc2lnbndhcmUuYw0KPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2hvc3QvcGNpZS1kZXNpZ253YXJl
LmMNCj4gPiBAQCAtNTc4LDggKzU3OCwxMSBAQCBpbnQgX19pbml0IGR3X3BjaWVfaG9zdF9pbml0
KHN0cnVjdCBwY2llX3BvcnQgKnBwKQ0KPiA+ICAJCX0NCj4gPiAgCX0NCj4gPg0KPiA+IC0JaWYg
KHBwLT5vcHMtPmhvc3RfaW5pdCkNCj4gPiAtCQlwcC0+b3BzLT5ob3N0X2luaXQocHApOw0KPiA+
ICsJaWYgKHBwLT5vcHMtPmhvc3RfaW5pdCkgew0KPiA+ICsJCXJldCA9IHBwLT5vcHMtPmhvc3Rf
aW5pdChwcCk7DQo+ID4gKwkJaWYgKHJldCA8IDApDQo+ID4gKwkJCXJldHVybiByZXQ7DQo+ID4g
Kwl9DQo+ID4NCj4gPiAgCWR3X3BjaWVfd3Jfb3duX2NvbmYocHAsIFBDSV9CQVNFX0FERFJFU1Nf
MCwgNCwgMCk7DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG9zdC9wY2llLWRl
c2lnbndhcmUuaA0KPiA+IGIvZHJpdmVycy9wY2kvaG9zdC9wY2llLWRlc2lnbndhcmUuaA0KPiA+
IGluZGV4IGIwYmZlZDAuLjU3YWIxMWQgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kvaG9z
dC9wY2llLWRlc2lnbndhcmUuaA0KPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2hvc3QvcGNpZS1kZXNp
Z253YXJlLmgNCj4gPiBAQCAtNzIsNyArNzIsNyBAQCBzdHJ1Y3QgcGNpZV9ob3N0X29wcyB7DQo+
ID4gIAlpbnQgKCp3cl9vdGhlcl9jb25mKShzdHJ1Y3QgcGNpZV9wb3J0ICpwcCwgc3RydWN0IHBj
aV9idXMgKmJ1cywNCj4gPiAgCQkJdW5zaWduZWQgaW50IGRldmZuLCBpbnQgd2hlcmUsIGludCBz
aXplLCB1MzIgdmFsKTsNCj4gPiAgCWludCAoKmxpbmtfdXApKHN0cnVjdCBwY2llX3BvcnQgKnBw
KTsNCj4gPiAtCXZvaWQgKCpob3N0X2luaXQpKHN0cnVjdCBwY2llX3BvcnQgKnBwKTsNCj4gPiAr
CWludCAoKmhvc3RfaW5pdCkoc3RydWN0IHBjaWVfcG9ydCAqcHApOw0KPiA+ICAJdm9pZCAoKm1z
aV9zZXRfaXJxKShzdHJ1Y3QgcGNpZV9wb3J0ICpwcCwgaW50IGlycSk7DQo+ID4gIAl2b2lkICgq
bXNpX2NsZWFyX2lycSkoc3RydWN0IHBjaWVfcG9ydCAqcHAsIGludCBpcnEpOw0KPiA+ICAJdTMy
ICgqZ2V0X21zaV9kYXRhKShzdHJ1Y3QgcGNpZV9wb3J0ICpwcCk7DQo+IA0KDQoNCkJlc3QgUmVn
YXJkcw0KUmljaGFyZCBaaHUNCg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/pci/host/pcie-designware.c b/drivers/pci/host/pcie-designware.c
index b1f82ff..1a2b477 100644
--- a/drivers/pci/host/pcie-designware.c
+++ b/drivers/pci/host/pcie-designware.c
@@ -578,8 +578,11 @@  int __init dw_pcie_host_init(struct pcie_port *pp)
 		}
 	}
 
-	if (pp->ops->host_init)
-		pp->ops->host_init(pp);
+	if (pp->ops->host_init) {
+		ret = pp->ops->host_init(pp);
+		if (ret < 0)
+			return ret;
+	}
 
 	dw_pcie_wr_own_conf(pp, PCI_BASE_ADDRESS_0, 4, 0);
 
diff --git a/drivers/pci/host/pcie-designware.h b/drivers/pci/host/pcie-designware.h
index b0bfed0..57ab11d 100644
--- a/drivers/pci/host/pcie-designware.h
+++ b/drivers/pci/host/pcie-designware.h
@@ -72,7 +72,7 @@  struct pcie_host_ops {
 	int (*wr_other_conf)(struct pcie_port *pp, struct pci_bus *bus,
 			unsigned int devfn, int where, int size, u32 val);
 	int (*link_up)(struct pcie_port *pp);
-	void (*host_init)(struct pcie_port *pp);
+	int (*host_init)(struct pcie_port *pp);
 	void (*msi_set_irq)(struct pcie_port *pp, int irq);
 	void (*msi_clear_irq)(struct pcie_port *pp, int irq);
 	u32 (*get_msi_data)(struct pcie_port *pp);