{"push_id":835832452,"size":11,"distinct_size":11,"ref":"refs/heads/swift","head":"d32018d6446c48b47eb6cf7288eaa11d5b4f24c9","before":"05737d30416f397cb19cfdf45991df7aee3bba1e","commits":[{"sha":"b205c6db9b5e0d701ac21b075d37fc750f3dd931","author":{"email":"51907cac86db5f2ed57a4ac58c042ecc27c0b352@codeaurora.org","name":"Manu Gautam"},"message":"USB: gadget: u_ether: Optimize TX interrupt on completion\n\nThough dl aggregation is enabled and set to more than 3 packets,\nstill most of the time single packets are queued to the DCD.\nSending single packet adds extra penalty, as for every transfer\ncomplete controller may do some clean up before fetching new\nrequest to the HW.\n\nIn the current Tx aggregation logic, on receiving packet from\nnetwork layer, after preparing the usb_req checks if number of\npackets aggregated is max aggregated value or if packets queued\nto DCD is less than TX_FIFO_THRESHOLD, then it immediately\nqueues the packet to DCD, otherwise, it parks the packet for\nfurther aggregation. On any tx completion handler, checks if\nthere is any parked tx packet, if yes, then queues the parked tx\npacket to DCD in completion handler. In high throughput test\ncases, there may be back to back completion handlers being\ncalled, due to any rx or tx endpoint completions. This may cause\ntx completion handler being called frequency and this may cause,\ntx completion handler may queue the parked packet to DCD before\nit gets aggregated with the multiple packets.\n\nWith this new tx aggregation logic, instead of queuing the parked\naggregated packet on every tx completion handler, checks the\ncompleted request no_interrupt flag, if it is zero, then only\nallow queuing the parked packet to DCD. With this logic, giving\nsufficient time for more aggregation. To make this logic to work,\nrequire to have synchronization between when to start aggregation\nand how many packets can be queued with no_interrupt flag set\nsequentially, hence adding new flag MAX_TX_REQ_WITH_NO_INT that\nis being used in aggregation logic and no_interupt logic.\n\nChange-Id: I84fb4a4d3d20bb3ddb2f33c64cb4b65373b363ea\nSigned-off-by: Manu Gautam <mgautam@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/b205c6db9b5e0d701ac21b075d37fc750f3dd931"},{"sha":"2847da376cf8c3e5802f36086b48de2321929fff","author":{"email":"51907cac86db5f2ed57a4ac58c042ecc27c0b352@codeaurora.org","name":"Manu Gautam"},"message":"USB: gadget: u_ether: unalign IP header to make DMA aligned\n\nNET_IP_ALIGN value 2 helps to align the IP packet buffer\nand this may help CPU handling of IP packets. But, this\ncauses the RNDIS RX buffer pointer to become unaligned.\nSome USB controller DMA engines may expect aligned buffers\nfor efficient data transfers, otherwise takes extra cycles\nand may cause performance penalty. Chip Idea USB controller\nis one in this category. With this change, observed RNDIS\nperformance improvement by around 10Mbps in TCP Bi-directional\ntests.\n\nChange-Id: I49e3deace3dcc5749d73a1297eb48ddbf03da675\nSigned-off-by: Manu Gautam <mgautam@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/2847da376cf8c3e5802f36086b48de2321929fff"},{"sha":"612a0fad2cef873aeeed6ce42d86f29373f7a6f7","author":{"email":"76e30dc6511df6537bc8f74ebde59f1a6034d162@codeaurora.org","name":"Vijayavardhan Vennapusa"},"message":"USB: Perform block reset during resume for recovery from flush failures\n\nIn case EP flush and EP prime failures are seen during disconnect,\nrecovery flag is set to do block reset to recover on cable re-connect from\nEP flush and EP prime failures. This might lead to unclocked access if in\ncase usb_bam disconnect_work is still in progress. Hence fix this by moving\nthis block reset to suspend and perform before entering low power mode and\nmake sure block reset is performed in case of recovery flag is set by not\nscheduling statemachine till recovery is done.\n\nChange-Id: Ie87c069a7b1763c01fccfeb1e51d585f3ac4cc08\nSigned-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>\nSigned-off-by: Manu Gautam <mgautam@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/612a0fad2cef873aeeed6ce42d86f29373f7a6f7"},{"sha":"672957f63dd9dbe7df7ad5e9655ae1a9ba62e507","author":{"email":"51907cac86db5f2ed57a4ac58c042ecc27c0b352@codeaurora.org","name":"Manu Gautam"},"message":"USB: msm_otg: Restore BUS bandwidth vote upon device bus resume\n\nDriver votes for high BUS bandwidth on starting peripheral mode.\nThis vote is removed on entering LPM but is not restored on LPM\nexit for peripheral mode. Fix this to bump up NOC frequencies when\nUSB exits LPM in device mode, allowing consistent performance.\n\nChange-Id: Idd2e2a5898a5104aae49ef6f2e9c07fd9572e9da\nSigned-off-by: Manu Gautam <mgautam@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/672957f63dd9dbe7df7ad5e9655ae1a9ba62e507"},{"sha":"f2ce5c15166e9600b6d8e851ed132acefa9041f9","author":{"email":"51907cac86db5f2ed57a4ac58c042ecc27c0b352@codeaurora.org","name":"Manu Gautam"},"message":"USB: msm_otg: Add support for AHB2AHB Bypass Mode in device mode\n\nWith AHB2AHB Bypass Mode, USB 2.0 Core is running using PNOC clock\nand runs synchronous to PNOC which provides better throughput.\nAHB2AHB Bypass mode can be enable with USB controller using\nUSB_AHBMODE register. It has below requirement :\n- It should be enable before setting kicking USB controller\n(i.e. setting R/S bit).\n- PNOC should be running at MAX speed to get better throughput.\n- While doing asynchronous clock reset with USB core, it is required\nto disable this functionality as PNOC clock can't be disable and\nre-enable as it is performed with other USB core clock.\n- Hardware reset when switching from peripheral to host mode.\n\nChange-Id: I9feac91b8885a393a13a039e9c89d63d0af2aed6\nSigned-off-by: Manu Gautam <mgautam@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/f2ce5c15166e9600b6d8e851ed132acefa9041f9"},{"sha":"218e9c65fd693cadc8a4153d9601db893018fc2e","author":{"email":"427b3e89cfa4833e90373054043f85c2b5772665@codeaurora.org","name":"Hemant Kumar"},"message":"usb: gadget: audio: Prevent opening playback and capture stream twice\n\nVoice over USB mode, playback and capture streams are opened twice from\ntwo threads at the same time, when playback and capture devices are\nselected together in host PC. This would cause memory map failure with AFE.\nFix this by splitting the gaudio_open_streams() function into\ngaudio_open_playback_streams() and gaudio_open_capture_streams().\n\nCRs-Fixed: 883629\nChange-Id: I388b13558c3445c3d7e4694b9e4ed6fdd33596a1\nSigned-off-by: Hemant Kumar <hemantk@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/218e9c65fd693cadc8a4153d9601db893018fc2e"},{"sha":"e24cc604843eb0c29201834b26962a3a5ffcc2a7","author":{"email":"51907cac86db5f2ed57a4ac58c042ecc27c0b352@codeaurora.org","name":"Manu Gautam"},"message":"usb: gadget: audio: open/close Audio files on USB connect/disconnect\n\nDriver currently opens files on bind_config and then doesn't close\nthem. It prevents system to enter suspend state as AFE keeps pushing\ndata to apps. Change this design to open Audio streams on USB connect\n(after set_alt) and close on disconnect i.e. function_disable. Also,\nfree usb_req and req->buff on disconnect after calling ep_disable as\nbuffers are currently not freed at all.\n\nChange-Id: Ia6960c399aec2e082d04ad4409fa36880e87a5b7\nSigned-off-by: Manu Gautam <mgautam@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/e24cc604843eb0c29201834b26962a3a5ffcc2a7"},{"sha":"d57aade9ddddcc53f49293a2810e5ddde4cf9d8b","author":{"email":"51907cac86db5f2ed57a4ac58c042ecc27c0b352@codeaurora.org","name":"Manu Gautam"},"message":"usb: gadget: audio: Queue multiple buffers for TX (capture)\n\nDriver is currently using only one buffer for TX. This may\ncause underruns at USB hardware if interrupt threshold is\ngreater than or equal to bInterval. Use multiple buffers\nto handle this.\n\nChange-Id: I9758aef3e88e066da28e7eb2cbc5b8c6f56d47c1\nSigned-off-by: Manu Gautam <mgautam@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/d57aade9ddddcc53f49293a2810e5ddde4cf9d8b"},{"sha":"3a8be35f39bf66c0802671887407398f7ba17999","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"usb: gadget: audio: Prevent opening playback and capture stream twice\"","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/3a8be35f39bf66c0802671887407398f7ba17999"},{"sha":"084f30788ea408c2ee61702493dfeebc7db0f1bc","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"USB: Perform block reset during resume for recovery from flush failures\"","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/084f30788ea408c2ee61702493dfeebc7db0f1bc"},{"sha":"d32018d6446c48b47eb6cf7288eaa11d5b4f24c9","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"USB: msm_otg: Add support for AHB2AHB Bypass Mode in device mode\"","distinct":true,"url":"https://api.github.com/repos/mifl/android_kernel_qcom_msm/commits/d32018d6446c48b47eb6cf7288eaa11d5b4f24c9"}]}