diff mbox

[1/4] dma: imx-dma: Add a field to the driver's private data to distinguish names of interrupts

Message ID 1393093008-19667-1-git-send-email-shc_work@mail.ru (mailing list archive)
State Rejected
Delegated to: Vinod Koul
Headers show

Commit Message

Alexander Shiyan Feb. 22, 2014, 6:16 p.m. UTC
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 drivers/dma/imx-dma.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Andy Shevchenko Feb. 24, 2014, 9:02 a.m. UTC | #1
T24gU2F0LCAyMDE0LTAyLTIyIGF0IDIyOjE2ICswNDAwLCBBbGV4YW5kZXIgU2hpeWFuIHdyb3Rl
Og0KDQpEZXNjcmlwdGlvbj8NCg0KPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgU2hpeWFuIDxz
aGNfd29ya0BtYWlsLnJ1Pg0KPiAtLS0NCj4gIGRyaXZlcnMvZG1hL2lteC1kbWEuYyB8IDcgKysr
KystLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkN
Cj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9pbXgtZG1hLmMgYi9kcml2ZXJzL2RtYS9p
bXgtZG1hLmMNCj4gaW5kZXggNmY5YWMyMC4uN2VmMTZlOCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy
cy9kbWEvaW14LWRtYS5jDQo+ICsrKyBiL2RyaXZlcnMvZG1hL2lteC1kbWEuYw0KPiBAQCAtMTY3
LDYgKzE2Nyw3IEBAIHN0cnVjdCBpbXhkbWFfY2hhbm5lbCB7DQo+ICAJdTMyCQkJCWNjcl90b19k
ZXZpY2U7DQo+ICAJYm9vbAkJCQllbmFibGVkXzJkOw0KPiAgCWludAkJCQlzbG90XzJkOw0KPiAr
CWNoYXIJCQkJbmFtZVs2XTsNCg0KV2lsbCB5b3UgZ28gdG8gdXNlIHRoaXMgZnVydGhlcj8NCkF0
IGxlYXN0IEkgZGlkbid0IHNlZSBpbiB0aGlzIHBhdGNoIHNlcmllcy4NCg0KSWYgeWVzLCB0aGFu
IGF0dGFjaCBjb3JyZXNwb25kaW5nIHBhdGNoIHRvIHRoZSBzZXJpZXMgb3IgZXhwbGFpbiB0aGlz
IGluDQp0aGUgY29tbWl0IG1lc3NhZ2UuDQoNCk90aGVyd2lzZSwgcGxlYXNlLCB1c2UgbG9jYWwg
dmFyaWFibGVzLg0KDQo+ICB9Ow0KPiAgDQo+ICBlbnVtIGlteF9kbWFfdHlwZSB7DQo+IEBAIC0x
MTExLDcgKzExMTIsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBpbXhkbWFfcHJvYmUoc3RydWN0IHBs
YXRmb3JtX2RldmljZSAqcGRldikNCj4gIAkJfQ0KPiAgDQo+ICAJCXJldCA9IGRldm1fcmVxdWVz
dF9pcnEoJnBkZXYtPmRldiwgaXJxX2VyciwNCj4gLQkJCQkgICAgICAgaW14ZG1hX2Vycl9oYW5k
bGVyLCAwLCAiRE1BIiwgaW14ZG1hKTsNCj4gKwkJCQkgICAgICAgaW14ZG1hX2Vycl9oYW5kbGVy
LCAwLCAiRE1BRVJSIiwgaW14ZG1hKTsNCj4gIAkJaWYgKHJldCkgew0KPiAgCQkJZGV2X3dhcm4o
aW14ZG1hLT5kZXYsICJDYW4ndCByZWdpc3RlciBFUlJJUlEgZm9yIERNQVxuIik7DQo+ICAJCQln
b3RvIGVycjsNCj4gQEAgLTExNDUsOCArMTE0NiwxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBpbXhk
bWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gIAkJc3RydWN0IGlteGRt
YV9jaGFubmVsICppbXhkbWFjID0gJmlteGRtYS0+Y2hhbm5lbFtpXTsNCj4gIA0KPiAgCQlpZiAo
IWlzX2lteDFfZG1hKGlteGRtYSkpIHsNCj4gKwkJCXNwcmludGYoaW14ZG1hYy0+bmFtZSwgIkRN
QSVpIiwgaSk7DQo+ICAJCQlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGlycSAr
IGksDQo+IC0JCQkJCWRtYV9pcnFfaGFuZGxlciwgMCwgIkRNQSIsIGlteGRtYSk7DQo+ICsJCQkJ
CSAgICAgICBkbWFfaXJxX2hhbmRsZXIsIDAsDQo+ICsJCQkJCSAgICAgICBpbXhkbWFjLT5uYW1l
LCBpbXhkbWEpOw0KDQpJcyBpdCBuZWNlc3NhcnkgYXQgYWxsPyBBcyBJIGNhbiBzZWUgdGhlIGlu
dGVycnVwdHMgZ28gaW4gc2VxdWVuY2UuIFdoYXQNCmtpbmQgb2YgaGVscCBvZiB0aG9zZSBudW1i
ZXIgYXR0YWNoZWQ/IERlc2NyaWJlIGluIHRoZSBjb21taXQgbWVzc2FnZS4gDQoNCj4gIAkJCWlm
IChyZXQpIHsNCj4gIAkJCQlkZXZfd2FybihpbXhkbWEtPmRldiwgIkNhbid0IHJlZ2lzdGVyIElS
USAlZCAiDQo+ICAJCQkJCSAiZm9yIERNQSBjaGFubmVsICVkXG4iLA0KDQoNCi0tIA0KQW5keSBT
aGV2Y2hlbmtvIDxhbmRyaXkuc2hldmNoZW5rb0BpbnRlbC5jb20+DQpJbnRlbCBGaW5sYW5kIE95
DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KSW50ZWwgRmlubGFuZCBPeQpSZWdpc3RlcmVkIEFkZHJlc3M6IFBMIDI4
MSwgMDAxODEgSGVsc2lua2kgCkJ1c2luZXNzIElkZW50aXR5IENvZGU6IDAzNTc2MDYgLSA0IApE
b21pY2lsZWQgaW4gSGVsc2lua2kgCgpUaGlzIGUtbWFpbCBhbmQgYW55IGF0dGFjaG1lbnRzIG1h
eSBjb250YWluIGNvbmZpZGVudGlhbCBtYXRlcmlhbCBmb3IKdGhlIHNvbGUgdXNlIG9mIHRoZSBp
bnRlbmRlZCByZWNpcGllbnQocykuIEFueSByZXZpZXcgb3IgZGlzdHJpYnV0aW9uCmJ5IG90aGVy
cyBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQKcmVj
aXBpZW50LCBwbGVhc2UgY29udGFjdCB0aGUgc2VuZGVyIGFuZCBkZWxldGUgYWxsIGNvcGllcy4K

--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vinod Koul March 6, 2014, 3:17 p.m. UTC | #2
On Sat, Feb 22, 2014 at 10:16:45PM +0400, Alexander Shiyan wrote:
> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> ---
>  drivers/dma/imx-dma.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
> index 6f9ac20..7ef16e8 100644
> --- a/drivers/dma/imx-dma.c
> +++ b/drivers/dma/imx-dma.c
> @@ -167,6 +167,7 @@ struct imxdma_channel {
>  	u32				ccr_to_device;
>  	bool				enabled_2d;
>  	int				slot_2d;
> +	char				name[6];
and this seems unused, so can you give motivation for this change?
Alexander Shiyan March 6, 2014, 3:33 p.m. UTC | #3
???????,  6 ????? 2014, 20:47 +05:30 ?? Vinod Koul <vinod.koul@intel.com>:
> On Sat, Feb 22, 2014 at 10:16:45PM +0400, Alexander Shiyan wrote:
> > Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> > ---
> >  drivers/dma/imx-dma.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
> > index 6f9ac20..7ef16e8 100644
> > --- a/drivers/dma/imx-dma.c
> > +++ b/drivers/dma/imx-dma.c
> > @@ -167,6 +167,7 @@ struct imxdma_channel {
> >  	u32				ccr_to_device;
> >  	bool				enabled_2d;
> >  	int				slot_2d;
> > +	char				name[6];
> and this seems unused, so can you give motivation for this change?

This is used by devm_request_irq() in the code a bit below.
Currently IRQ statistics shows like:

# cat /proc/interrupts
...
 48:          1  mxc-avic  32  DMA
 49:          0  mxc-avic  33  DMA
 50:          0  mxc-avic  34  DMA
 51:          0  mxc-avic  35  DMA
 52:          0  mxc-avic  36  DMA
 53:          0  mxc-avic  37  DMA
 54:          0  mxc-avic  38  DMA
 55:          0  mxc-avic  39  DMA
 56:          0  mxc-avic  40  DMA
 57:          0  mxc-avic  41  DMA
 58:          0  mxc-avic  42  DMA
 59:          0  mxc-avic  43  DMA
 60:          0  mxc-avic  44  DMA
 61:          0  mxc-avic  45  DMA
 62:          0  mxc-avic  46  DMA
 63:          0  mxc-avic  47  DMA
 
...
> >  enum imx_dma_type {
> > @@ -1111,7 +1112,7 @@ static int __init imxdma_probe(struct platform_device *pdev)
> >  		}
> >  
> >  		ret = devm_request_irq(&pdev->dev, irq_err,
> > -				       imxdma_err_handler, 0, "DMA", imxdma);
> > +				       imxdma_err_handler, 0, "DMAERR", imxdma);
> >  		if (ret) {
> >  			dev_warn(imxdma->dev, "Can't register ERRIRQ for DMA\n");
> >  			goto err;
> > @@ -1145,8 +1146,10 @@ static int __init imxdma_probe(struct platform_device *pdev)
> >  		struct imxdma_channel *imxdmac = &imxdma->channel[i];
> >  
> >  		if (!is_imx1_dma(imxdma)) {
> > +			sprintf(imxdmac->name, "DMA%i", i);
> >  			ret = devm_request_irq(&pdev->dev, irq + i,
> > -					dma_irq_handler, 0, "DMA", imxdma);
> > +					       dma_irq_handler, 0,
> > +					       imxdmac->name, imxdma);

Here.
So, as a result this change, we could distinguish DMA channels.

> >  			if (ret) {
> >  				dev_warn(imxdma->dev, "Can't register IRQ %d "
> >  					 "for DMA channel %d\n",
> > -- 

---
Vinod Koul March 7, 2014, 6:37 a.m. UTC | #4
On Thu, Mar 06, 2014 at 07:33:32PM +0400, Alexander Shiyan wrote:
> ???????,  6 ????? 2014, 20:47 +05:30 ?? Vinod Koul <vinod.koul@intel.com>:
> > On Sat, Feb 22, 2014 at 10:16:45PM +0400, Alexander Shiyan wrote:
> > > Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> > > ---
> > >  drivers/dma/imx-dma.c | 7 +++++--
> > >  1 file changed, 5 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
> > > index 6f9ac20..7ef16e8 100644
> > > --- a/drivers/dma/imx-dma.c
> > > +++ b/drivers/dma/imx-dma.c
> > > @@ -167,6 +167,7 @@ struct imxdma_channel {
> > >  	u32				ccr_to_device;
> > >  	bool				enabled_2d;
> > >  	int				slot_2d;
> > > +	char				name[6];
> > and this seems unused, so can you give motivation for this change?
> 
> This is used by devm_request_irq() in the code a bit below.
> Currently IRQ statistics shows like:
> 
> # cat /proc/interrupts
> ...
>  48:          1  mxc-avic  32  DMA
>  49:          0  mxc-avic  33  DMA
>  50:          0  mxc-avic  34  DMA
>  51:          0  mxc-avic  35  DMA
>  52:          0  mxc-avic  36  DMA
>  53:          0  mxc-avic  37  DMA
>  54:          0  mxc-avic  38  DMA
>  55:          0  mxc-avic  39  DMA
>  56:          0  mxc-avic  40  DMA
>  57:          0  mxc-avic  41  DMA
>  58:          0  mxc-avic  42  DMA
>  59:          0  mxc-avic  43  DMA
>  60:          0  mxc-avic  44  DMA
>  61:          0  mxc-avic  45  DMA
>  62:          0  mxc-avic  46  DMA
>  63:          0  mxc-avic  47  DMA
>  
> ...
> > >  enum imx_dma_type {
> > > @@ -1111,7 +1112,7 @@ static int __init imxdma_probe(struct platform_device *pdev)
> > >  		}
> > >  
> > >  		ret = devm_request_irq(&pdev->dev, irq_err,
> > > -				       imxdma_err_handler, 0, "DMA", imxdma);
> > > +				       imxdma_err_handler, 0, "DMAERR", imxdma);
> > >  		if (ret) {
> > >  			dev_warn(imxdma->dev, "Can't register ERRIRQ for DMA\n");
> > >  			goto err;
> > > @@ -1145,8 +1146,10 @@ static int __init imxdma_probe(struct platform_device *pdev)
> > >  		struct imxdma_channel *imxdmac = &imxdma->channel[i];
> > >  
> > >  		if (!is_imx1_dma(imxdma)) {
> > > +			sprintf(imxdmac->name, "DMA%i", i);
> > >  			ret = devm_request_irq(&pdev->dev, irq + i,
> > > -					dma_irq_handler, 0, "DMA", imxdma);
> > > +					       dma_irq_handler, 0,
> > > +					       imxdmac->name, imxdma);
> 
> Here.
> So, as a result this change, we could distinguish DMA channels.
> 
> > >  			if (ret) {
> > >  				dev_warn(imxdma->dev, "Can't register IRQ %d "
> > >  					 "for DMA channel %d\n",
> > > -- 
> 
> ---
well this should be part of changelog too. 6 months down the line you wouldn't
remember why you did this, so changelog would help :)
diff mbox

Patch

diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
index 6f9ac20..7ef16e8 100644
--- a/drivers/dma/imx-dma.c
+++ b/drivers/dma/imx-dma.c
@@ -167,6 +167,7 @@  struct imxdma_channel {
 	u32				ccr_to_device;
 	bool				enabled_2d;
 	int				slot_2d;
+	char				name[6];
 };
 
 enum imx_dma_type {
@@ -1111,7 +1112,7 @@  static int __init imxdma_probe(struct platform_device *pdev)
 		}
 
 		ret = devm_request_irq(&pdev->dev, irq_err,
-				       imxdma_err_handler, 0, "DMA", imxdma);
+				       imxdma_err_handler, 0, "DMAERR", imxdma);
 		if (ret) {
 			dev_warn(imxdma->dev, "Can't register ERRIRQ for DMA\n");
 			goto err;
@@ -1145,8 +1146,10 @@  static int __init imxdma_probe(struct platform_device *pdev)
 		struct imxdma_channel *imxdmac = &imxdma->channel[i];
 
 		if (!is_imx1_dma(imxdma)) {
+			sprintf(imxdmac->name, "DMA%i", i);
 			ret = devm_request_irq(&pdev->dev, irq + i,
-					dma_irq_handler, 0, "DMA", imxdma);
+					       dma_irq_handler, 0,
+					       imxdmac->name, imxdma);
 			if (ret) {
 				dev_warn(imxdma->dev, "Can't register IRQ %d "
 					 "for DMA channel %d\n",