From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?UmljaGFyZCBSw7ZqZm9ycw==?= Subject: Re: [PATCH 1/6] mmc: sdhci-pltfm: Add structure for host-specific data Date: Wed, 29 Sep 2010 23:24:25 +0200 Message-ID: <4CA3AE89.2030107@pelagicore.com> References: <1285790884-3516-1-git-send-email-w.sang@pengutronix.de> <1285790884-3516-2-git-send-email-w.sang@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1285790884-3516-2-git-send-email-w.sang@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Wolfram Sang Cc: Zhu Richard-R65037 , linux-mmc@vger.kernel.org, =?UTF-8?B?UmljaGFyZCBSw7ZqZm9ycw==?= , zhangfei gao , Anton Vorontsov , Philip Rakity , linux-arm-kernel@lists.infradead.org List-Id: linux-mmc@vger.kernel.org T24gMDkvMjkvMjAxMCAxMDowNyBQTSwgV29sZnJhbSBTYW5nIHdyb3RlOgo+IFdlIG5lZWQgdG8g Y2Fycnkgc29tZSBpbmZvcm1hdGlvbiBwZXIgaG9zdCwgZS5nLiB0aGUgY2xvY2suIEFkZCBhCj4g c3RydWN0dXJlIGZvciBpdCBhbmQgaW5pdGlhbGl6ZSBpdCBpbiB0aGUgZ2VuZXJpYyBwYXJ0LiBB bHNvIGRvIG5vdCB1c2UKPiB0aGUgcGFyZW50IG9mIHRoZSBwbGF0Zm9ybV9kZXZpY2UgKGlmIGl0 IGlzIGF2YWlsYWJsZSksIHRoaXMgYnJlYWtzIHRoZQo+IGNsb2NrLW1hdGNoaW5nIG9uIEFSTS4K ClRoZSByZWFzb24gaXQncyB0aGVyZSBpcyBmb3IgaW5zdGFuY2UgYSBjYXNlIHdoZW4gdGhlIHNo ZGNpIGRldmljZSBpcyBleHBvc2VkCmZyb20gYSBNRkQgZGV2aWNlIHdoaWNoIHNpdHMgb24gdG9w IG9mIFBDSS4gVGhlbiB0aGUgcGFyZW50IChQQ0kgZGV2aWNlKQppcyB0aGUgZGV2aWNlIHRoYXQg aXMgRE1BIGNhcGFibGUuIFRoaXMgcGF0Y2ggd2lsbCBicmVhayBzdWNoIHVzYWdlLgoKV2hhdCBp cyB0aGUgcHVycG9zZSBvZiB0aGlzIHBhdGNoPyBZb3UgYWxsb2NhdGUgc3BhY2UgZm9yIGFuIGV4 dHJhIHN0cnVjdCwKd2hpY2ggeW91IGhhdmUgYSBwb2ludGVyIHBvaW50aW5nIHRvLCBidXQgeW91 IG5ldmVyIHVzZSB0aGUgcG9pbnRlcj8KCj4KPiBTaWduZWQtb2ZmLWJ5OiBXb2xmcmFtIFNhbmc8 dy5zYW5nQHBlbmd1dHJvbml4LmRlPgo+IENjOiBSaWNoYXJkIFLDtmpmb3JzPHJpY2hhcmQucm9q Zm9ycy5leHRAbW9jZWFuLWxhYnMuY29tPgo+IC0tLQo+Cj4gQ2hhbmdlcyBzaW5jZSBsYXN0IHZl cnNpb246Cj4KPiAqIGFkZGVkIHR5cGVzLmgKCkkgc2F3IG5vIHR5cGVzLmg/Cgo+ICogcmVtb3Zl ZCB1c2FnZSBvZiBwZGV2LT5kZXYucGFyZW50IHRvIGVuc3VyZSBjbGstbWF0Y2hpbmcKPiAgICBQ bGVhc2Ugc3BlYWsgdXAgaWYgdGhpcyBoYXMgYSB1c2UgY2FzZSBJIGZhaWxlZCB0byBzZWUhCj4K PiAgIGRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGx0Zm0uYyB8ICAgIDggKysrKy0tLS0KPiAgIGRy aXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGx0Zm0uaCB8ICAgIDcgKysrKysrKwo+ICAgMiBmaWxlcyBj aGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGx0Zm0uYyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kt cGx0Zm0uYwo+IGluZGV4IGUwNDVlM2MuLjA5NWNhOWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9t bWMvaG9zdC9zZGhjaS1wbHRmbS5jCj4gKysrIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1wbHRm bS5jCj4gQEAgLTU1LDYgKzU1LDcgQEAgc3RhdGljIGludCBfX2RldmluaXQgc2RoY2lfcGx0Zm1f cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgIAlzdHJ1Y3Qgc2RoY2lfcGx0 Zm1fZGF0YSAqcGRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKPiAgIAljb25zdCBzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlX2lkICpwbGF0aWQgPSBwbGF0Zm9ybV9nZXRfZGV2aWNlX2lkKHBk ZXYpOwo+ICAgCXN0cnVjdCBzZGhjaV9ob3N0ICpob3N0Owo+ICsJc3RydWN0IHNkaGNpX3BsdGZt X2hvc3QgKnBsdGZtX2hvc3Q7Cj4gICAJc3RydWN0IHJlc291cmNlICppb21lbTsKPiAgIAlpbnQg cmV0Owo+Cj4gQEAgLTcxLDE2ICs3MiwxNSBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBzZGhjaV9w bHRmbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCQlkZXZfZXJyKCZw ZGV2LT5kZXYsICJJbnZhbGlkIGlvbWVtIHNpemUuIFlvdSBtYXkgIgo+ICAgCQkJImV4cGVyaWVu Y2UgcHJvYmxlbXMuXG4iKTsKPgo+IC0JaWYgKHBkZXYtPmRldi5wYXJlbnQpCj4gLQkJaG9zdCA9 IHNkaGNpX2FsbG9jX2hvc3QocGRldi0+ZGV2LnBhcmVudCwgMCk7Cj4gLQllbHNlCj4gLQkJaG9z dCA9IHNkaGNpX2FsbG9jX2hvc3QoJnBkZXYtPmRldiwgMCk7Cj4gKwlob3N0ID0gc2RoY2lfYWxs b2NfaG9zdCgmcGRldi0+ZGV2LCBzaXplb2YoKnBsdGZtX2hvc3QpKTsKPgo+ICAgCWlmIChJU19F UlIoaG9zdCkpIHsKPiAgIAkJcmV0ID0gUFRSX0VSUihob3N0KTsKPiAgIAkJZ290byBlcnI7Cj4g ICAJfQo+Cj4gKwlwbHRmbV9ob3N0ID0gc2RoY2lfcHJpdihob3N0KTsKPiArCj4gICAJaG9zdC0+ aHdfbmFtZSA9ICJwbGF0Zm9ybSI7Cj4gICAJaWYgKHBkYXRhJiYgIHBkYXRhLT5vcHMpCj4gICAJ CWhvc3QtPm9wcyA9IHBkYXRhLT5vcHM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qv c2RoY2ktcGx0Zm0uaCBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGx0Zm0uaAo+IGluZGV4IDkw MGYzMjkuLjkzYTAzMTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1wbHRm bS5oCj4gKysrIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1wbHRmbS5oCj4gQEAgLTExLDggKzEx LDE1IEBACj4gICAjaWZuZGVmIF9EUklWRVJTX01NQ19TREhDSV9QTFRGTV9ICj4gICAjZGVmaW5l IF9EUklWRVJTX01NQ19TREhDSV9QTFRGTV9ICj4KPiArI2luY2x1ZGU8bGludXgvY2xrLmg+Cj4g KyNpbmNsdWRlPGxpbnV4L3R5cGVzLmg+Cj4gICAjaW5jbHVkZTxsaW51eC9zZGhjaS1wbHRmbS5o Pgo+Cj4gK3N0cnVjdCBzZGhjaV9wbHRmbV9ob3N0IHsKPiArCXN0cnVjdCBjbGsgKmNsazsKPiAr CXUzMiBzY3JhdGNocGFkOyAvKiB0byBoYW5kbGUgcXVpcmtzIGFjcm9zcyBpby1hY2Nlc3NvciBj YWxscyAqLwo+ICt9Owo+ICsKPiAgIGV4dGVybiBzdHJ1Y3Qgc2RoY2lfcGx0Zm1fZGF0YSBzZGhj aV9jbnMzeHh4X3BkYXRhOwo+Cj4gICAjZW5kaWYgLyogX0RSSVZFUlNfTU1DX1NESENJX1BMVEZN X0ggKi8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: richard.rojfors@pelagicore.com (=?UTF-8?B?UmljaGFyZCBSw7ZqZm9ycw==?=) Date: Wed, 29 Sep 2010 23:24:25 +0200 Subject: [PATCH 1/6] mmc: sdhci-pltfm: Add structure for host-specific data In-Reply-To: <1285790884-3516-2-git-send-email-w.sang@pengutronix.de> References: <1285790884-3516-1-git-send-email-w.sang@pengutronix.de> <1285790884-3516-2-git-send-email-w.sang@pengutronix.de> Message-ID: <4CA3AE89.2030107@pelagicore.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 09/29/2010 10:07 PM, Wolfram Sang wrote: > We need to carry some information per host, e.g. the clock. Add a > structure for it and initialize it in the generic part. Also do not use > the parent of the platform_device (if it is available), this breaks the > clock-matching on ARM. The reason it's there is for instance a case when the shdci device is exposed from a MFD device which sits on top of PCI. Then the parent (PCI device) is the device that is DMA capable. This patch will break such usage. What is the purpose of this patch? You allocate space for an extra struct, which you have a pointer pointing to, but you never use the pointer? > > Signed-off-by: Wolfram Sang > Cc: Richard R?jfors > --- > > Changes since last version: > > * added types.h I saw no types.h? > * removed usage of pdev->dev.parent to ensure clk-matching > Please speak up if this has a use case I failed to see! > > drivers/mmc/host/sdhci-pltfm.c | 8 ++++---- > drivers/mmc/host/sdhci-pltfm.h | 7 +++++++ > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c > index e045e3c..095ca9d 100644 > --- a/drivers/mmc/host/sdhci-pltfm.c > +++ b/drivers/mmc/host/sdhci-pltfm.c > @@ -55,6 +55,7 @@ static int __devinit sdhci_pltfm_probe(struct platform_device *pdev) > struct sdhci_pltfm_data *pdata = pdev->dev.platform_data; > const struct platform_device_id *platid = platform_get_device_id(pdev); > struct sdhci_host *host; > + struct sdhci_pltfm_host *pltfm_host; > struct resource *iomem; > int ret; > > @@ -71,16 +72,15 @@ static int __devinit sdhci_pltfm_probe(struct platform_device *pdev) > dev_err(&pdev->dev, "Invalid iomem size. You may " > "experience problems.\n"); > > - if (pdev->dev.parent) > - host = sdhci_alloc_host(pdev->dev.parent, 0); > - else > - host = sdhci_alloc_host(&pdev->dev, 0); > + host = sdhci_alloc_host(&pdev->dev, sizeof(*pltfm_host)); > > if (IS_ERR(host)) { > ret = PTR_ERR(host); > goto err; > } > > + pltfm_host = sdhci_priv(host); > + > host->hw_name = "platform"; > if (pdata&& pdata->ops) > host->ops = pdata->ops; > diff --git a/drivers/mmc/host/sdhci-pltfm.h b/drivers/mmc/host/sdhci-pltfm.h > index 900f329..93a0319 100644 > --- a/drivers/mmc/host/sdhci-pltfm.h > +++ b/drivers/mmc/host/sdhci-pltfm.h > @@ -11,8 +11,15 @@ > #ifndef _DRIVERS_MMC_SDHCI_PLTFM_H > #define _DRIVERS_MMC_SDHCI_PLTFM_H > > +#include > +#include > #include > > +struct sdhci_pltfm_host { > + struct clk *clk; > + u32 scratchpad; /* to handle quirks across io-accessor calls */ > +}; > + > extern struct sdhci_pltfm_data sdhci_cns3xxx_pdata; > > #endif /* _DRIVERS_MMC_SDHCI_PLTFM_H */