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=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 29D85C43610 for ; Thu, 29 Nov 2018 02:35:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EE0FB206B6 for ; Thu, 29 Nov 2018 02:35:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EE0FB206B6 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727727AbeK2NjF (ORCPT ); Thu, 29 Nov 2018 08:39:05 -0500 Received: from mailgw02.mediatek.com ([1.203.163.81]:44553 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727619AbeK2NjE (ORCPT ); Thu, 29 Nov 2018 08:39:04 -0500 X-UUID: e9ef9038344143468c31332f1e8b427b-20181129 X-UUID: e9ef9038344143468c31332f1e8b427b-20181129 Received: from mtkcas32.mediatek.inc [(172.27.4.250)] by mailgw02.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 273399762; Thu, 29 Nov 2018 10:35:02 +0800 Received: from mtkcas09.mediatek.inc (172.21.101.178) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 29 Nov 2018 10:35:00 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas09.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Thu, 29 Nov 2018 10:34:53 +0800 From: Chunfeng Yun To: Greg Kroah-Hartman CC: Felipe Balbi , Matthias Brugger , Chunfeng Yun , , , , , Subject: [PATCH 1/5] usb: mtu3: remove QMU checksum Date: Thu, 29 Nov 2018 10:34:32 +0800 Message-ID: X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The QMU checksum calculation is redundant, mostly used by debug, so remove it here. Signed-off-by: Chunfeng Yun --- drivers/usb/mtu3/mtu3_core.c | 2 -- drivers/usb/mtu3/mtu3_qmu.c | 26 -------------------------- 2 files changed, 28 deletions(-) diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c index ae70b9bfd797..3dce5fd9887d 100644 --- a/drivers/usb/mtu3/mtu3_core.c +++ b/drivers/usb/mtu3/mtu3_core.c @@ -592,8 +592,6 @@ static void mtu3_regs_init(struct mtu3 *mtu) mtu3_clrbits(mbase, U3D_LINK_RESET_INFO, WTCHRP_MSK); /* U2/U3 detected by HW */ mtu3_writel(mbase, U3D_DEVICE_CONF, 0); - /* enable QMU 16B checksum */ - mtu3_setbits(mbase, U3D_QCR0, QMU_CS16B_EN); /* vbus detected by HW */ mtu3_clrbits(mbase, U3D_MISC_CTRL, VBUS_FRC_EN | VBUS_ON); } diff --git a/drivers/usb/mtu3/mtu3_qmu.c b/drivers/usb/mtu3/mtu3_qmu.c index ff62ba232177..73ac042c45a8 100644 --- a/drivers/usb/mtu3/mtu3_qmu.c +++ b/drivers/usb/mtu3/mtu3_qmu.c @@ -154,27 +154,6 @@ void mtu3_gpd_ring_free(struct mtu3_ep *mep) memset(ring, 0, sizeof(*ring)); } -/* - * calculate check sum of a gpd or bd - * add "noinline" and "mb" to prevent wrong calculation - */ -static noinline u8 qmu_calc_checksum(u8 *data) -{ - u8 chksum = 0; - int i; - - data[1] = 0x0; /* set checksum to 0 */ - - mb(); /* ensure the gpd/bd is really up-to-date */ - for (i = 0; i < QMU_CHECKSUM_LEN; i++) - chksum += data[i]; - - /* Default: HWO=1, @flag[bit0] */ - chksum += 1; - - return 0xFF - chksum; -} - void mtu3_qmu_resume(struct mtu3_ep *mep) { struct mtu3 *mtu = mep->mtu; @@ -260,7 +239,6 @@ static int mtu3_prepare_tx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) if (req->zero) gpd->ext_flag |= GPD_EXT_FLAG_ZLP; - gpd->chksum = qmu_calc_checksum((u8 *)gpd); gpd->flag |= GPD_FLAGS_HWO; mreq->gpd = gpd; @@ -295,7 +273,6 @@ static int mtu3_prepare_rx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) gpd->next_gpd = cpu_to_le32(lower_32_bits(enq_dma)); ext_addr |= GPD_EXT_NGP(upper_32_bits(enq_dma)); gpd->rx_ext_addr = cpu_to_le16(ext_addr); - gpd->chksum = qmu_calc_checksum((u8 *)gpd); gpd->flag |= GPD_FLAGS_HWO; mreq->gpd = gpd; @@ -323,7 +300,6 @@ int mtu3_qmu_start(struct mtu3_ep *mep) /* set QMU start address */ write_txq_start_addr(mbase, epnum, ring->dma); mtu3_setbits(mbase, MU3D_EP_TXCR0(epnum), TX_DMAREQEN); - mtu3_setbits(mbase, U3D_QCR0, QMU_TX_CS_EN(epnum)); /* send zero length packet according to ZLP flag in GPD */ mtu3_setbits(mbase, U3D_QCR1, QMU_TX_ZLP(epnum)); mtu3_writel(mbase, U3D_TQERRIESR0, @@ -338,7 +314,6 @@ int mtu3_qmu_start(struct mtu3_ep *mep) } else { write_rxq_start_addr(mbase, epnum, ring->dma); mtu3_setbits(mbase, MU3D_EP_RXCR0(epnum), RX_DMAREQEN); - mtu3_setbits(mbase, U3D_QCR0, QMU_RX_CS_EN(epnum)); /* don't expect ZLP */ mtu3_clrbits(mbase, U3D_QCR3, QMU_RX_ZLP(epnum)); /* move to next GPD when receive ZLP */ @@ -441,7 +416,6 @@ static void qmu_tx_zlp_error_handler(struct mtu3 *mtu, u8 epnum) /* by pass the current GDP */ gpd_current->flag |= GPD_FLAGS_BPS; - gpd_current->chksum = qmu_calc_checksum((u8 *)gpd_current); gpd_current->flag |= GPD_FLAGS_HWO; /*enable DMAREQEN, switch back to QMU mode */ -- 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunfeng Yun Subject: [PATCH 1/5] usb: mtu3: remove QMU checksum Date: Thu, 29 Nov 2018 10:34:32 +0800 Message-ID: Mime-Version: 1.0 Content-Type: text/plain Return-path: Sender: linux-kernel-owner@vger.kernel.org To: Greg Kroah-Hartman Cc: Felipe Balbi , Matthias Brugger , Chunfeng Yun , linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org List-Id: devicetree@vger.kernel.org The QMU checksum calculation is redundant, mostly used by debug, so remove it here. Signed-off-by: Chunfeng Yun --- drivers/usb/mtu3/mtu3_core.c | 2 -- drivers/usb/mtu3/mtu3_qmu.c | 26 -------------------------- 2 files changed, 28 deletions(-) diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c index ae70b9bfd797..3dce5fd9887d 100644 --- a/drivers/usb/mtu3/mtu3_core.c +++ b/drivers/usb/mtu3/mtu3_core.c @@ -592,8 +592,6 @@ static void mtu3_regs_init(struct mtu3 *mtu) mtu3_clrbits(mbase, U3D_LINK_RESET_INFO, WTCHRP_MSK); /* U2/U3 detected by HW */ mtu3_writel(mbase, U3D_DEVICE_CONF, 0); - /* enable QMU 16B checksum */ - mtu3_setbits(mbase, U3D_QCR0, QMU_CS16B_EN); /* vbus detected by HW */ mtu3_clrbits(mbase, U3D_MISC_CTRL, VBUS_FRC_EN | VBUS_ON); } diff --git a/drivers/usb/mtu3/mtu3_qmu.c b/drivers/usb/mtu3/mtu3_qmu.c index ff62ba232177..73ac042c45a8 100644 --- a/drivers/usb/mtu3/mtu3_qmu.c +++ b/drivers/usb/mtu3/mtu3_qmu.c @@ -154,27 +154,6 @@ void mtu3_gpd_ring_free(struct mtu3_ep *mep) memset(ring, 0, sizeof(*ring)); } -/* - * calculate check sum of a gpd or bd - * add "noinline" and "mb" to prevent wrong calculation - */ -static noinline u8 qmu_calc_checksum(u8 *data) -{ - u8 chksum = 0; - int i; - - data[1] = 0x0; /* set checksum to 0 */ - - mb(); /* ensure the gpd/bd is really up-to-date */ - for (i = 0; i < QMU_CHECKSUM_LEN; i++) - chksum += data[i]; - - /* Default: HWO=1, @flag[bit0] */ - chksum += 1; - - return 0xFF - chksum; -} - void mtu3_qmu_resume(struct mtu3_ep *mep) { struct mtu3 *mtu = mep->mtu; @@ -260,7 +239,6 @@ static int mtu3_prepare_tx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) if (req->zero) gpd->ext_flag |= GPD_EXT_FLAG_ZLP; - gpd->chksum = qmu_calc_checksum((u8 *)gpd); gpd->flag |= GPD_FLAGS_HWO; mreq->gpd = gpd; @@ -295,7 +273,6 @@ static int mtu3_prepare_rx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) gpd->next_gpd = cpu_to_le32(lower_32_bits(enq_dma)); ext_addr |= GPD_EXT_NGP(upper_32_bits(enq_dma)); gpd->rx_ext_addr = cpu_to_le16(ext_addr); - gpd->chksum = qmu_calc_checksum((u8 *)gpd); gpd->flag |= GPD_FLAGS_HWO; mreq->gpd = gpd; @@ -323,7 +300,6 @@ int mtu3_qmu_start(struct mtu3_ep *mep) /* set QMU start address */ write_txq_start_addr(mbase, epnum, ring->dma); mtu3_setbits(mbase, MU3D_EP_TXCR0(epnum), TX_DMAREQEN); - mtu3_setbits(mbase, U3D_QCR0, QMU_TX_CS_EN(epnum)); /* send zero length packet according to ZLP flag in GPD */ mtu3_setbits(mbase, U3D_QCR1, QMU_TX_ZLP(epnum)); mtu3_writel(mbase, U3D_TQERRIESR0, @@ -338,7 +314,6 @@ int mtu3_qmu_start(struct mtu3_ep *mep) } else { write_rxq_start_addr(mbase, epnum, ring->dma); mtu3_setbits(mbase, MU3D_EP_RXCR0(epnum), RX_DMAREQEN); - mtu3_setbits(mbase, U3D_QCR0, QMU_RX_CS_EN(epnum)); /* don't expect ZLP */ mtu3_clrbits(mbase, U3D_QCR3, QMU_RX_ZLP(epnum)); /* move to next GPD when receive ZLP */ @@ -441,7 +416,6 @@ static void qmu_tx_zlp_error_handler(struct mtu3 *mtu, u8 epnum) /* by pass the current GDP */ gpd_current->flag |= GPD_FLAGS_BPS; - gpd_current->chksum = qmu_calc_checksum((u8 *)gpd_current); gpd_current->flag |= GPD_FLAGS_HWO; /*enable DMAREQEN, switch back to QMU mode */ -- 2.19.1 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: [1/5] usb: mtu3: remove QMU checksum From: Chunfeng Yun Message-Id: Date: Thu, 29 Nov 2018 10:34:32 +0800 To: Greg Kroah-Hartman Cc: Felipe Balbi , Matthias Brugger , Chunfeng Yun , linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org List-ID: VGhlIFFNVSBjaGVja3N1bSBjYWxjdWxhdGlvbiBpcyByZWR1bmRhbnQsIG1vc3RseSB1c2VkIGJ5 IGRlYnVnLApzbyByZW1vdmUgaXQgaGVyZS4KClNpZ25lZC1vZmYtYnk6IENodW5mZW5nIFl1biA8 Y2h1bmZlbmcueXVuQG1lZGlhdGVrLmNvbT4KLS0tCiBkcml2ZXJzL3VzYi9tdHUzL210dTNfY29y ZS5jIHwgIDIgLS0KIGRyaXZlcnMvdXNiL210dTMvbXR1M19xbXUuYyAgfCAyNiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3VzYi9tdHUzL210dTNfY29yZS5jIGIvZHJpdmVycy91c2IvbXR1My9t dHUzX2NvcmUuYwppbmRleCBhZTcwYjliZmQ3OTcuLjNkY2U1ZmQ5ODg3ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy91c2IvbXR1My9tdHUzX2NvcmUuYworKysgYi9kcml2ZXJzL3VzYi9tdHUzL210dTNf Y29yZS5jCkBAIC01OTIsOCArNTkyLDYgQEAgc3RhdGljIHZvaWQgbXR1M19yZWdzX2luaXQoc3Ry dWN0IG10dTMgKm10dSkKIAltdHUzX2NscmJpdHMobWJhc2UsIFUzRF9MSU5LX1JFU0VUX0lORk8s IFdUQ0hSUF9NU0spOwogCS8qIFUyL1UzIGRldGVjdGVkIGJ5IEhXICovCiAJbXR1M193cml0ZWwo bWJhc2UsIFUzRF9ERVZJQ0VfQ09ORiwgMCk7Ci0JLyogZW5hYmxlIFFNVSAxNkIgY2hlY2tzdW0g Ki8KLQltdHUzX3NldGJpdHMobWJhc2UsIFUzRF9RQ1IwLCBRTVVfQ1MxNkJfRU4pOwogCS8qIHZi dXMgZGV0ZWN0ZWQgYnkgSFcgKi8KIAltdHUzX2NscmJpdHMobWJhc2UsIFUzRF9NSVNDX0NUUkws IFZCVVNfRlJDX0VOIHwgVkJVU19PTik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdHUz L210dTNfcW11LmMgYi9kcml2ZXJzL3VzYi9tdHUzL210dTNfcW11LmMKaW5kZXggZmY2MmJhMjMy MTc3Li43M2FjMDQyYzQ1YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL210dTMvbXR1M19xbXUu YworKysgYi9kcml2ZXJzL3VzYi9tdHUzL210dTNfcW11LmMKQEAgLTE1NCwyNyArMTU0LDYgQEAg dm9pZCBtdHUzX2dwZF9yaW5nX2ZyZWUoc3RydWN0IG10dTNfZXAgKm1lcCkKIAltZW1zZXQocmlu ZywgMCwgc2l6ZW9mKCpyaW5nKSk7CiB9CiAKLS8qCi0gKiBjYWxjdWxhdGUgY2hlY2sgc3VtIG9m IGEgZ3BkIG9yIGJkCi0gKiBhZGQgIm5vaW5saW5lIiBhbmQgIm1iIiB0byBwcmV2ZW50IHdyb25n IGNhbGN1bGF0aW9uCi0gKi8KLXN0YXRpYyBub2lubGluZSB1OCBxbXVfY2FsY19jaGVja3N1bSh1 OCAqZGF0YSkKLXsKLQl1OCBjaGtzdW0gPSAwOwotCWludCBpOwotCi0JZGF0YVsxXSA9IDB4MDsg IC8qIHNldCBjaGVja3N1bSB0byAwICovCi0KLQltYigpOwkvKiBlbnN1cmUgdGhlIGdwZC9iZCBp cyByZWFsbHkgdXAtdG8tZGF0ZSAqLwotCWZvciAoaSA9IDA7IGkgPCBRTVVfQ0hFQ0tTVU1fTEVO OyBpKyspCi0JCWNoa3N1bSArPSBkYXRhW2ldOwotCi0JLyogRGVmYXVsdDogSFdPPTEsIEBmbGFn W2JpdDBdICovCi0JY2hrc3VtICs9IDE7Ci0KLQlyZXR1cm4gMHhGRiAtIGNoa3N1bTsKLX0KLQog dm9pZCBtdHUzX3FtdV9yZXN1bWUoc3RydWN0IG10dTNfZXAgKm1lcCkKIHsKIAlzdHJ1Y3QgbXR1 MyAqbXR1ID0gbWVwLT5tdHU7CkBAIC0yNjAsNyArMjM5LDYgQEAgc3RhdGljIGludCBtdHUzX3By ZXBhcmVfdHhfZ3BkKHN0cnVjdCBtdHUzX2VwICptZXAsIHN0cnVjdCBtdHUzX3JlcXVlc3QgKm1y ZXEpCiAJaWYgKHJlcS0+emVybykKIAkJZ3BkLT5leHRfZmxhZyB8PSBHUERfRVhUX0ZMQUdfWkxQ OwogCi0JZ3BkLT5jaGtzdW0gPSBxbXVfY2FsY19jaGVja3N1bSgodTggKilncGQpOwogCWdwZC0+ ZmxhZyB8PSBHUERfRkxBR1NfSFdPOwogCiAJbXJlcS0+Z3BkID0gZ3BkOwpAQCAtMjk1LDcgKzI3 Myw2IEBAIHN0YXRpYyBpbnQgbXR1M19wcmVwYXJlX3J4X2dwZChzdHJ1Y3QgbXR1M19lcCAqbWVw LCBzdHJ1Y3QgbXR1M19yZXF1ZXN0ICptcmVxKQogCWdwZC0+bmV4dF9ncGQgPSBjcHVfdG9fbGUz Mihsb3dlcl8zMl9iaXRzKGVucV9kbWEpKTsKIAlleHRfYWRkciB8PSBHUERfRVhUX05HUCh1cHBl cl8zMl9iaXRzKGVucV9kbWEpKTsKIAlncGQtPnJ4X2V4dF9hZGRyID0gY3B1X3RvX2xlMTYoZXh0 X2FkZHIpOwotCWdwZC0+Y2hrc3VtID0gcW11X2NhbGNfY2hlY2tzdW0oKHU4ICopZ3BkKTsKIAln cGQtPmZsYWcgfD0gR1BEX0ZMQUdTX0hXTzsKIAogCW1yZXEtPmdwZCA9IGdwZDsKQEAgLTMyMyw3 ICszMDAsNiBAQCBpbnQgbXR1M19xbXVfc3RhcnQoc3RydWN0IG10dTNfZXAgKm1lcCkKIAkJLyog c2V0IFFNVSBzdGFydCBhZGRyZXNzICovCiAJCXdyaXRlX3R4cV9zdGFydF9hZGRyKG1iYXNlLCBl cG51bSwgcmluZy0+ZG1hKTsKIAkJbXR1M19zZXRiaXRzKG1iYXNlLCBNVTNEX0VQX1RYQ1IwKGVw bnVtKSwgVFhfRE1BUkVRRU4pOwotCQltdHUzX3NldGJpdHMobWJhc2UsIFUzRF9RQ1IwLCBRTVVf VFhfQ1NfRU4oZXBudW0pKTsKIAkJLyogc2VuZCB6ZXJvIGxlbmd0aCBwYWNrZXQgYWNjb3JkaW5n IHRvIFpMUCBmbGFnIGluIEdQRCAqLwogCQltdHUzX3NldGJpdHMobWJhc2UsIFUzRF9RQ1IxLCBR TVVfVFhfWkxQKGVwbnVtKSk7CiAJCW10dTNfd3JpdGVsKG1iYXNlLCBVM0RfVFFFUlJJRVNSMCwK QEAgLTMzOCw3ICszMTQsNiBAQCBpbnQgbXR1M19xbXVfc3RhcnQoc3RydWN0IG10dTNfZXAgKm1l cCkKIAl9IGVsc2UgewogCQl3cml0ZV9yeHFfc3RhcnRfYWRkcihtYmFzZSwgZXBudW0sIHJpbmct PmRtYSk7CiAJCW10dTNfc2V0Yml0cyhtYmFzZSwgTVUzRF9FUF9SWENSMChlcG51bSksIFJYX0RN QVJFUUVOKTsKLQkJbXR1M19zZXRiaXRzKG1iYXNlLCBVM0RfUUNSMCwgUU1VX1JYX0NTX0VOKGVw bnVtKSk7CiAJCS8qIGRvbid0IGV4cGVjdCBaTFAgKi8KIAkJbXR1M19jbHJiaXRzKG1iYXNlLCBV M0RfUUNSMywgUU1VX1JYX1pMUChlcG51bSkpOwogCQkvKiBtb3ZlIHRvIG5leHQgR1BEIHdoZW4g cmVjZWl2ZSBaTFAgKi8KQEAgLTQ0MSw3ICs0MTYsNiBAQCBzdGF0aWMgdm9pZCBxbXVfdHhfemxw X2Vycm9yX2hhbmRsZXIoc3RydWN0IG10dTMgKm10dSwgdTggZXBudW0pCiAKIAkvKiBieSBwYXNz IHRoZSBjdXJyZW50IEdEUCAqLwogCWdwZF9jdXJyZW50LT5mbGFnIHw9IEdQRF9GTEFHU19CUFM7 Ci0JZ3BkX2N1cnJlbnQtPmNoa3N1bSA9IHFtdV9jYWxjX2NoZWNrc3VtKCh1OCAqKWdwZF9jdXJy ZW50KTsKIAlncGRfY3VycmVudC0+ZmxhZyB8PSBHUERfRkxBR1NfSFdPOwogCiAJLyplbmFibGUg RE1BUkVRRU4sIHN3aXRjaCBiYWNrIHRvIFFNVSBtb2RlICovCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: chunfeng.yun@mediatek.com (Chunfeng Yun) Date: Thu, 29 Nov 2018 10:34:32 +0800 Subject: [PATCH 1/5] usb: mtu3: remove QMU checksum Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org The QMU checksum calculation is redundant, mostly used by debug, so remove it here. Signed-off-by: Chunfeng Yun --- drivers/usb/mtu3/mtu3_core.c | 2 -- drivers/usb/mtu3/mtu3_qmu.c | 26 -------------------------- 2 files changed, 28 deletions(-) diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c index ae70b9bfd797..3dce5fd9887d 100644 --- a/drivers/usb/mtu3/mtu3_core.c +++ b/drivers/usb/mtu3/mtu3_core.c @@ -592,8 +592,6 @@ static void mtu3_regs_init(struct mtu3 *mtu) mtu3_clrbits(mbase, U3D_LINK_RESET_INFO, WTCHRP_MSK); /* U2/U3 detected by HW */ mtu3_writel(mbase, U3D_DEVICE_CONF, 0); - /* enable QMU 16B checksum */ - mtu3_setbits(mbase, U3D_QCR0, QMU_CS16B_EN); /* vbus detected by HW */ mtu3_clrbits(mbase, U3D_MISC_CTRL, VBUS_FRC_EN | VBUS_ON); } diff --git a/drivers/usb/mtu3/mtu3_qmu.c b/drivers/usb/mtu3/mtu3_qmu.c index ff62ba232177..73ac042c45a8 100644 --- a/drivers/usb/mtu3/mtu3_qmu.c +++ b/drivers/usb/mtu3/mtu3_qmu.c @@ -154,27 +154,6 @@ void mtu3_gpd_ring_free(struct mtu3_ep *mep) memset(ring, 0, sizeof(*ring)); } -/* - * calculate check sum of a gpd or bd - * add "noinline" and "mb" to prevent wrong calculation - */ -static noinline u8 qmu_calc_checksum(u8 *data) -{ - u8 chksum = 0; - int i; - - data[1] = 0x0; /* set checksum to 0 */ - - mb(); /* ensure the gpd/bd is really up-to-date */ - for (i = 0; i < QMU_CHECKSUM_LEN; i++) - chksum += data[i]; - - /* Default: HWO=1, @flag[bit0] */ - chksum += 1; - - return 0xFF - chksum; -} - void mtu3_qmu_resume(struct mtu3_ep *mep) { struct mtu3 *mtu = mep->mtu; @@ -260,7 +239,6 @@ static int mtu3_prepare_tx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) if (req->zero) gpd->ext_flag |= GPD_EXT_FLAG_ZLP; - gpd->chksum = qmu_calc_checksum((u8 *)gpd); gpd->flag |= GPD_FLAGS_HWO; mreq->gpd = gpd; @@ -295,7 +273,6 @@ static int mtu3_prepare_rx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) gpd->next_gpd = cpu_to_le32(lower_32_bits(enq_dma)); ext_addr |= GPD_EXT_NGP(upper_32_bits(enq_dma)); gpd->rx_ext_addr = cpu_to_le16(ext_addr); - gpd->chksum = qmu_calc_checksum((u8 *)gpd); gpd->flag |= GPD_FLAGS_HWO; mreq->gpd = gpd; @@ -323,7 +300,6 @@ int mtu3_qmu_start(struct mtu3_ep *mep) /* set QMU start address */ write_txq_start_addr(mbase, epnum, ring->dma); mtu3_setbits(mbase, MU3D_EP_TXCR0(epnum), TX_DMAREQEN); - mtu3_setbits(mbase, U3D_QCR0, QMU_TX_CS_EN(epnum)); /* send zero length packet according to ZLP flag in GPD */ mtu3_setbits(mbase, U3D_QCR1, QMU_TX_ZLP(epnum)); mtu3_writel(mbase, U3D_TQERRIESR0, @@ -338,7 +314,6 @@ int mtu3_qmu_start(struct mtu3_ep *mep) } else { write_rxq_start_addr(mbase, epnum, ring->dma); mtu3_setbits(mbase, MU3D_EP_RXCR0(epnum), RX_DMAREQEN); - mtu3_setbits(mbase, U3D_QCR0, QMU_RX_CS_EN(epnum)); /* don't expect ZLP */ mtu3_clrbits(mbase, U3D_QCR3, QMU_RX_ZLP(epnum)); /* move to next GPD when receive ZLP */ @@ -441,7 +416,6 @@ static void qmu_tx_zlp_error_handler(struct mtu3 *mtu, u8 epnum) /* by pass the current GDP */ gpd_current->flag |= GPD_FLAGS_BPS; - gpd_current->chksum = qmu_calc_checksum((u8 *)gpd_current); gpd_current->flag |= GPD_FLAGS_HWO; /*enable DMAREQEN, switch back to QMU mode */ -- 2.19.1