From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [V3,1/2] dmaengine: fsl-dpaa2-qdma: Add the DPDMAI(Data Path DMA Interface) support From: Vinod Koul Message-Id: <20190426124550.GE28103@vkoul-mobl> Date: Fri, 26 Apr 2019 18:15:50 +0530 To: Peng Ma Cc: dan.j.williams@intel.com, leoyang.li@nxp.com, linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org List-ID: T24gMDktMDQtMTksIDE1OjIyLCBQZW5nIE1hIHdyb3RlOgoKU3ViamVjdCBtaXNzZWQgUEFUQ0gg dGFnIQoKPiBUaGUgTUMgZXhwb3J0cyB0aGUgRFBETUFJIG9iamVjdCBhcyBhbiBpbnRlcmZhY2Ug dG8gb3BlcmF0ZSB0aGUgRFBBQTIgUURNQQoKd2hhdHMgTUMsIERQRE1BSSwgRFBBQTIKCj4gRW5n aW5lLiBUaGUgRFBETUFJIGVuYWJsZXMgc2VuZGluZyBmcmFtZS1iYXNlZCByZXF1ZXN0cyB0byBR RE1BIGFuZCByZWNlaXZpbmcKPiBiYWNrIGNvbmZpcm1hdGlvbiByZXNwb25zZSBvbiB0cmFuc2Fj dGlvbiBjb21wbGV0aW9uLCB1dGlsaXppbmcgdGhlIERQQUEyIFFCTWFuCj4gaW5mcmFzdHJ1Y3R1 cmUuIERQRE1BSSBvYmplY3QgcHJvdmlkZXMgdXAgdG8gdHdvIHByaW9yaXRpZXMgZm9yIHByb2Nl c3NpbmcgUURNQQo+IHJlcXVlc3RzLgoKPiAraW50IGRwZG1haV9vcGVuKHN0cnVjdCBmc2xfbWNf aW8gKm1jX2lvLAo+ICsJCXUzMiBjbWRfZmxhZ3MsCj4gKwkJaW50IGRwZG1haV9pZCwKPiArCQl1 MTYgKnRva2VuKQoKY291bGQgYmUgd3JpdHRlbiBhczoKCmludCBkcGRtYWlfb3BlbihzdHJ1Y3Qg ZnNsX21jX2lvICptY19pbywgdTMyIGNtZF9mbGFncywKICAgICAgICAgICAgICAgIGludCBkcGRt YWlfaWQsIHUxNiAqdG9rZW4pCgpMb29rcyBuZWF0ZXIsIHJpZ2h0PyBJdCB3b3VsZCBiZSB0byBy ZXJlYWQgY29kaW5nIGd1aWRlbGluZXMgYW5kIHJ1bgpjaGVja3BhdGNoIHdpdGggLS1zdHJpY3Qg b24gdGhpcwoKCj4gK3sKPiArCXN0cnVjdCBmc2xfbWNfY29tbWFuZCBjbWQgPSB7IDAgfTsKCndo ZXJlIGlzIHRoaXMgZGVmaW5lZD8KCj4gKwlzdHJ1Y3QgZHBkbWFpX2NtZF9vcGVuICpjbWRfcGFy YW1zOwo+ICsJaW50IGVycjsKPiArCj4gKwkvKiBwcmVwYXJlIGNvbW1hbmQgKi8KPiArCWNtZC5o ZWFkZXIgPSBtY19lbmNvZGVfY21kX2hlYWRlcihEUERNQUlfQ01ESURfT1BFTiwKPiArCQkJCQkg IGNtZF9mbGFncywKPiArCQkJCQkgIDApOwo+ICsKPiArCWNtZF9wYXJhbXMgPSAoc3RydWN0IGRw ZG1haV9jbWRfb3BlbiAqKWNtZC5wYXJhbXM7CgpJIGRvbnQgbGlrZSBjYXN0cywgY2FuIHlvdSBl eHBsYWluCgo+ICsJY21kX3BhcmFtcy0+ZHBkbWFpX2lkID0gY3B1X3RvX2xlMzIoZHBkbWFpX2lk KTsKPiArCj4gKwkvKiBzZW5kIGNvbW1hbmQgdG8gbWMqLwo+ICsJZXJyID0gbWNfc2VuZF9jb21t YW5kKG1jX2lvLCAmY21kKTsKPiArCWlmIChlcnIpCj4gKwkJcmV0dXJuIGVycjsKPiArCj4gKwkv KiByZXRyaWV2ZSByZXNwb25zZSBwYXJhbWV0ZXJzICovCj4gKwkqdG9rZW4gPSBtY19jbWRfaGRy X3JlYWRfdG9rZW4oJmNtZCk7Cj4gKwlyZXR1cm4gMDsKPiArfQoKd2hvIHdpbGwgY2FsbCB0aGlz IEFQST8KCj4gK2ludCBkcGRtYWlfY3JlYXRlKHN0cnVjdCBmc2xfbWNfaW8gKm1jX2lvLAo+ICsJ CSAgdTMyIGNtZF9mbGFncywKPiArCQkgIGNvbnN0IHN0cnVjdCBkcGRtYWlfY2ZnICpjZmcsCj4g KwkJICB1MTYgKnRva2VuKQo+ICt7Cj4gKwlzdHJ1Y3QgZnNsX21jX2NvbW1hbmQgY21kID0geyAw IH07Cj4gKwlpbnQgZXJyOwo+ICsKPiArCS8qIHByZXBhcmUgY29tbWFuZCAqLwo+ICsJY21kLmhl YWRlciA9IG1jX2VuY29kZV9jbWRfaGVhZGVyKERQRE1BSV9DTURJRF9DUkVBVEUsCj4gKwkJCQkJ ICBjbWRfZmxhZ3MsCj4gKwkJCQkJICAwKTsKCndoeSB3YXN0ZSBhIGxpbmUsIGxhc3QgYXJnIGNh biBiZSBpbiBwcmV2aW91cyBsaW5lIQoKPiAraW50IGRwZG1haV9nZXRfdHhfcXVldWUoc3RydWN0 IGZzbF9tY19pbyAqbWNfaW8sCj4gKwkJCXUzMiBjbWRfZmxhZ3MsCj4gKwkJCXUxNiB0b2tlbiwK PiArCQkJdTggcHJpb3JpdHksCj4gKwkJCXN0cnVjdCBkcGRtYWlfdHhfcXVldWVfYXR0ciAqYXR0 cikKPiArewo+ICsJc3RydWN0IGZzbF9tY19jb21tYW5kIGNtZCA9IHsgMCB9Owo+ICsJc3RydWN0 IGRwZG1haV9jbWRfcXVldWUgKmNtZF9wYXJhbXM7Cj4gKwlzdHJ1Y3QgZHBkbWFpX3JzcF9nZXRf dHhfcXVldWUgKnJzcF9wYXJhbXM7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCS8qIHByZXBhcmUgY29t bWFuZCAqLwo+ICsJY21kLmhlYWRlciA9IG1jX2VuY29kZV9jbWRfaGVhZGVyKERQRE1BSV9DTURJ RF9HRVRfVFhfUVVFVUUsCj4gKwkJCQkJICBjbWRfZmxhZ3MsCj4gKwkJCQkJICB0b2tlbik7Cj4g Kwo+ICsJY21kX3BhcmFtcyA9IChzdHJ1Y3QgZHBkbWFpX2NtZF9xdWV1ZSAqKWNtZC5wYXJhbXM7 Cj4gKwljbWRfcGFyYW1zLT5xdWV1ZSA9IHByaW9yaXR5Owo+ICsKPiArCS8qIHNlbmQgY29tbWFu ZCB0byBtYyovCj4gKwllcnIgPSBtY19zZW5kX2NvbW1hbmQobWNfaW8sICZjbWQpOwo+ICsJaWYg KGVycikKPiArCQlyZXR1cm4gZXJyOwo+ICsKPiArCS8qIHJldHJpZXZlIHJlc3BvbnNlIHBhcmFt ZXRlcnMgKi8KPiArCj4gKwlyc3BfcGFyYW1zID0gKHN0cnVjdCBkcGRtYWlfcnNwX2dldF90eF9x dWV1ZSAqKWNtZC5wYXJhbXM7Cj4gKwlhdHRyLT5mcWlkID0gbGUzMl90b19jcHUocnNwX3BhcmFt cy0+ZnFpZCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KCk9rYXkgdGhpcyBmaWxlIGRvZXMgbm90 IHVzZSBhbnkgb2YgZG1hZW5naW5lIGFwaXMsIGlzIHRoaXMgYSBkbWFlbmdpbmUKZHJpdmVyPwoK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvZnNsLWRwYWEyLXFkbWEvZHBkbWFpLmggYi9kcml2 ZXJzL2RtYS9mc2wtZHBhYTItcWRtYS9kcGRtYWkuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4g aW5kZXggMDAwMDAwMC4uYzhhN2I3Zgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2Rt YS9mc2wtZHBhYTItcWRtYS9kcGRtYWkuaAo+IEBAIC0wLDAgKzEsNTI0IEBACj4gKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCj4gKy8qIENvcHlyaWdodCAyMDE0LTIwMTgg TlhQICovCj4gKwo+ICsvKgo+ICsgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKPiArICogbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6 Cj4gKyAqICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh Ym92ZSBjb3B5cmlnaHQKPiArICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgo+ICsgKiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cj4gKyAqIG5vdGljZSwg dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0 aGUKPiArICogZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp dGggdGhlIGRpc3RyaWJ1dGlvbi4KPiArICogKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBhYm92 ZS1saXN0ZWQgY29weXJpZ2h0IGhvbGRlcnMgbm9yIHRoZQo+ICsgKiBuYW1lcyBvZiBhbnkgY29u dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwo+ICsg KiBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0 ZW4gcGVybWlzc2lvbi4KPiArICoKPiArICoKPiArICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0 d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQo+ICsgKiBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoIkdQTCIpIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZQo+ICsgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoYXQgTGljZW5z ZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQo+ICsgKiBsYXRlciB2ZXJzaW9uLgo+ICsgKgo+ICsg KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg Q09OVFJJQlVUT1JTICJBUyBJUyIKPiArICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQo+ICsgKiBJTVBMSUVE IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRQo+ICsgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP UFlSSUdIVCBIT0xERVJTIE9SIENPTlRSSUJVVE9SUyBCRQo+ICsgKiBMSUFCTEUgRk9SIEFOWSBE SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCj4gKyAq IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS T0NVUkVNRU5UIE9GCj4gKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwo+ICsgKiBJTlRFUlJVUFRJT04pIEhP V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgo+ ICsgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ R0VOQ0UgT1IgT1RIRVJXSVNFKQo+ICsgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQo+ICsgKiBQT1NTSUJJ TElUWSBPRiBTVUNIIERBTUFHRS4KPiArICovCgp3ZSBoYXZlIFNpUERYIHRhZywgd2h5IGRvIHlv dSBuZWVkIHRocyBoZXJlIQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_PASS,T_DKIMWL_WL_HIGH, USER_AGENT_MUTT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE590C43218 for ; Fri, 26 Apr 2019 12:46:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BECD92084F for ; Fri, 26 Apr 2019 12:46:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556282764; bh=ydMoE2lxrI6T7Lp8FQ7vaxTOP0crHdPE0/Pvavc1xig=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=VG0/tjh8RWwPGif88ON05+pkWgLwX6QkfQafKvt+RWv5q3Fc12E7fLBnobkeltBjf 0guSpOGp2vz6J7KI9L6NPLE2Y1fsRsOwPyOuZDjqVdffIY6O1/TBekutYoNAZDXRJP B0XBfJP54c/wl0o8fOOf4sZDPknywXjXz84tpdP8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726245AbfDZMp7 (ORCPT ); Fri, 26 Apr 2019 08:45:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:39540 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726039AbfDZMp5 (ORCPT ); Fri, 26 Apr 2019 08:45:57 -0400 Received: from localhost (unknown [171.76.113.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 06A72206C1; Fri, 26 Apr 2019 12:45:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556282757; bh=ydMoE2lxrI6T7Lp8FQ7vaxTOP0crHdPE0/Pvavc1xig=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=N4+MwCuKZi80NxAWVk7chnP02NuwecayAFdiOG7mb/zXxfop5+166celMECSOYOBE GTJakMg3B9ezWhFmK6b+nWmluePQufQg7Apmj+H+rXOKEjbZs4cRIJ8jB3RvCFHIxO 7vb+jOeDOiidDRYiCUF7ox3Obh1iw4XbHpre8s14= Date: Fri, 26 Apr 2019 18:15:50 +0530 From: Vinod Koul To: Peng Ma Cc: dan.j.williams@intel.com, leoyang.li@nxp.com, linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org Subject: Re: [V3 1/2] dmaengine: fsl-dpaa2-qdma: Add the DPDMAI(Data Path DMA Interface) support Message-ID: <20190426124550.GE28103@vkoul-mobl> References: <20190409072212.15860-1-peng.ma@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline In-Reply-To: <20190409072212.15860-1-peng.ma@nxp.com> User-Agent: Mutt/1.11.3 (2019-02-01) Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org Message-ID: <20190426124550.w30GPk4Poc8EIGwj-1WkFTpz4LdwDdvlm6avaXL9qCw@z> On 09-04-19, 15:22, Peng Ma wrote: Subject missed PATCH tag! > The MC exports the DPDMAI object as an interface to operate the DPAA2 QDMA whats MC, DPDMAI, DPAA2 > Engine. The DPDMAI enables sending frame-based requests to QDMA and receiving > back confirmation response on transaction completion, utilizing the DPAA2 QBMan > infrastructure. DPDMAI object provides up to two priorities for processing QDMA > requests. > +int dpdmai_open(struct fsl_mc_io *mc_io, > + u32 cmd_flags, > + int dpdmai_id, > + u16 *token) could be written as: int dpdmai_open(struct fsl_mc_io *mc_io, u32 cmd_flags, int dpdmai_id, u16 *token) Looks neater, right? It would be to reread coding guidelines and run checkpatch with --strict on this > +{ > + struct fsl_mc_command cmd = { 0 }; where is this defined? > + struct dpdmai_cmd_open *cmd_params; > + int err; > + > + /* prepare command */ > + cmd.header = mc_encode_cmd_header(DPDMAI_CMDID_OPEN, > + cmd_flags, > + 0); > + > + cmd_params = (struct dpdmai_cmd_open *)cmd.params; I dont like casts, can you explain > + cmd_params->dpdmai_id = cpu_to_le32(dpdmai_id); > + > + /* send command to mc*/ > + err = mc_send_command(mc_io, &cmd); > + if (err) > + return err; > + > + /* retrieve response parameters */ > + *token = mc_cmd_hdr_read_token(&cmd); > + return 0; > +} who will call this API? > +int dpdmai_create(struct fsl_mc_io *mc_io, > + u32 cmd_flags, > + const struct dpdmai_cfg *cfg, > + u16 *token) > +{ > + struct fsl_mc_command cmd = { 0 }; > + int err; > + > + /* prepare command */ > + cmd.header = mc_encode_cmd_header(DPDMAI_CMDID_CREATE, > + cmd_flags, > + 0); why waste a line, last arg can be in previous line! > +int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io, > + u32 cmd_flags, > + u16 token, > + u8 priority, > + struct dpdmai_tx_queue_attr *attr) > +{ > + struct fsl_mc_command cmd = { 0 }; > + struct dpdmai_cmd_queue *cmd_params; > + struct dpdmai_rsp_get_tx_queue *rsp_params; > + int err; > + > + /* prepare command */ > + cmd.header = mc_encode_cmd_header(DPDMAI_CMDID_GET_TX_QUEUE, > + cmd_flags, > + token); > + > + cmd_params = (struct dpdmai_cmd_queue *)cmd.params; > + cmd_params->queue = priority; > + > + /* send command to mc*/ > + err = mc_send_command(mc_io, &cmd); > + if (err) > + return err; > + > + /* retrieve response parameters */ > + > + rsp_params = (struct dpdmai_rsp_get_tx_queue *)cmd.params; > + attr->fqid = le32_to_cpu(rsp_params->fqid); > + > + return 0; > +} Okay this file does not use any of dmaengine apis, is this a dmaengine driver? > diff --git a/drivers/dma/fsl-dpaa2-qdma/dpdmai.h b/drivers/dma/fsl-dpaa2-qdma/dpdmai.h > new file mode 100644 > index 0000000..c8a7b7f > --- /dev/null > +++ b/drivers/dma/fsl-dpaa2-qdma/dpdmai.h > @@ -0,0 +1,524 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* Copyright 2014-2018 NXP */ > + > +/* > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions are met: > + * * Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * * Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * * Neither the name of the above-listed copyright holders nor the > + * names of any contributors may be used to endorse or promote products > + * derived from this software without specific prior written permission. > + * > + * > + * ALTERNATIVELY, this software may be distributed under the terms of the > + * GNU General Public License ("GPL") as published by the Free Software > + * Foundation, either version 2 of that License or (at your option) any > + * later version. > + * > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > + * POSSIBILITY OF SUCH DAMAGE. > + */ we have SiPDX tag, why do you need ths here! -- ~Vinod