summaryrefslogtreecommitdiff
path: root/drivers/usb
AgeCommit message (Collapse)Author
2013-01-10usb: gadget: tegra: Fix current limit for CDP portRakesh Bodla
Do not overwrite the current limit with the value from gadget layer for CDP port. Update the CDP current limit to 1.5mA (as per BC1.2). Also, modifying few names of variables/functions for readability. Bug 1024302 Change-Id: I1e96782a762b20ecac50920bdd7c95c36d6e2cca Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/189095 Reviewed-by: Mandar Padmawar <mpadmawar@nvidia.com> Tested-by: Mandar Padmawar <mpadmawar@nvidia.com>
2013-01-08usb: host: tegra: remove dma buffer syncSuresh Mangipudi
Remove the dma_sync_* functions for usb transfer when DMA is used. Bug 953885 Bug 1192878 Change-Id: I12455ef3390799921db6efc2ae901515089fa45d Signed-off-by: Suresh Mangipudi <smangipudi@nvidia.com> Reviewed-on: http://git-master/r/188574 Reviewed-by: Hiroshi Doyu <hdoyu@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2013-01-04usb: gadget: tegra: default charger port as CDPRakesh Bodla
Based on LS status we are detecting CDP or DCP port. In other case, it is also safe to assume as DCP and no need to suspect any presence of bug. Bug 1207043 Change-Id: I6c3a7a5a207571694ba62d0298a5388d0b80ef16 Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/188539 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-12-17usb: gadget: tegra: Fix race conditionRakesh Bodla
There is race condition in turning ON the PHY. Due to this phy is not turned ON in some cases. Fixing this will make sure PHY is turned ON and off properly. Bug 1197760 Change-Id: If412cc6346562f03d3ee96a497adae8f5b15c9c6 Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/171439 Reviewed-by: Rohith Seelaboyina <rseelaboyina@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-12-04usb: gadget: tegra: Add Null CheckSri Krishna chowdary
coverity id; 20913 Bug 1046331 Change-Id: I4da83a06eef672f2e7b166e26ec14bd388afce6f Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Reviewed-on: http://git-master/r/167948 Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam <snikam@nvidia.com> GVS: Gerrit_Virtual_Submit
2012-12-04usb: gadget: nvusb: fix section mismatch warningDeepak Nibade
fix warning by removing __init from -nvusb_bind_config -nvusb_bind_func Bug 1038578 Change-Id: I85e1a952a180ba711e23d9f0fedbe5c10d0daada Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/167336 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Sri Krishna Chowdary <schowdary@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Preetham Chandru <pchandru@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-11-29usb: tegra-otg: moving to clk prepare APIsSivaram Nair
The clk_enable/clk_disable pair of APIs are replaced with clk_prepare_enable and clk_disable_unprepare. This is needed for the migration to common clk framework. Bug 920915 Change-Id: Ieb837ae5e93191dbc272e63ae24f8000410d8f98 Signed-off-by: Sivaram Nair <sivaramn@nvidia.com> Reviewed-on: http://git-master/r/162326 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bitan Biswas <bbiswas@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-11-22usb:class:nv-usb: driver to measure usb throughputPreetham Chandru R
a class driver to measure usb throughput Change-Id: Ibadfb7f5722e6969c93064fcf4ca79139fd08728 Signed-off-by: Preetham Chandru R <pchandru@nvidia.com> Reviewed-on: http://git-master/r/138994 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-11-22usb: gadget: nvusb: gadget driver to measure kpiPreetham Chandru R
This gadget driver is used to measure the usb kpi Change-Id: I1ec52af2e76a6c35ad0e4b52c68deb4be76807be Signed-off-by: Preetham Chandru R <pchandru@nvidia.com> Reviewed-on: http://git-master/r/138830 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
2012-11-21usb: otg: tegra: Fix builtin_host functionalityPetlozu Pravareshwar
When builtin_host is disabled sysfs interface to enable host mode should be created otherwise it should not be created. Also, enable ID interrupt only if builtin_host is enabled. Bug 1050988 Change-Id: I9618eab83e0c49847f9cb89718d9ea3c76ac129e Signed-off-by: Petlozu Pravareshwar <petlozup@nvidia.com> Reviewed-on: http://git-master/r/162356 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-11-21usb: host: tegra: USB hotplug detection using PMCRakesh Bodla
Add logic for detection of USB hotplug using PMC. Update the call backs appropriately. Bug 1057339 Bug 1171244 Change-Id: I85a3db3484e74c41198df8d0da9cc05a98bb6f2c Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/162267 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-11-14usb: gadget: phonet: Add Phonet over ACM for RMCBH Hsieh
* As submitted by RMC for modem support * Add Phonet over ACM support for RMC PegaPCI Bug 1066582 Bug 1167013 Change-Id: Id7883e30767d47200a1ed8ccb4e79f01a30c7a06 Signed-off-by: BH Hsieh <bhsieh@nvidia.com> Reviewed-on: http://git-master/r/160149 (cherry picked from commit 17ad36b016454666bf3c81036fe3d4e6987be591) Reviewed-on: http://git-master/r/162772 GVS: Gerrit_Virtual_Submit Reviewed-by: Steve Lin <stlin@nvidia.com>
2012-11-12drivers: usb: misc: Vendor specific driver for RMC PegaPCI.Raj Jayaraman
* As submitted by RMC for modem support * Bug 1054808 Change-Id: Ia3344591b4b56e61857dc4813bb1007807b4c445 Signed-off-by: Raj Jayaraman <rjayaraman@nvidia.com> Reviewed-on: http://git-master/r/160035 (cherry picked from commit 8931bc3cbf9c9f31a895509985f6cd167dc9d228) Reviewed-on: http://git-master/r/162295 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: WK Tsai <wtsai@nvidia.com> Reviewed-by: Steve Lin <stlin@nvidia.com>
2012-10-31usb: gadget: tegra: free resources in case of errorSri Krishna chowdary
Bug 1046331 Change-Id: Ic4f4665c77f2dc3b4c5aeb0e9be5b9e9173fddb0 Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Reviewed-on: http://git-master/r/159552 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2012-10-31usb: ehci: tegra: Add phy pre_suspend callback.Raj Jayaraman
Bug 1054808 Change-Id: I1de98ced6e8e30794907797bba05ad13190597a9 Signed-off-by: Raj Jayaraman <rjayaraman@nvidia.com> Reviewed-on: http://git-master/r/147305 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: WK Tsai <wtsai@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-10-26tegra: usb: disable interrupts when lockingSang-Hun Lee
Problem description: - tegra_udc_irq uses udc->lock - Some functions running in the process context was not disabling interrupts when locking udc->lock - If a function gets interrupted by tegra_udc_irq after locking udc->lock, a deadlock occurs, as tegra_udc_irq would also try to lock Fix description: - Use an interruption disabling variant of spin_lock Bug 983958 Change-Id: Ib774847212da64f1f727a207a4821860ffa7b4a8 Signed-off-by: Sang-Hun Lee <sanlee@nvidia.com> Reviewed-on: http://git-master/r/102693 (cherry picked from commit 168971ab0977d04e958671651c0be4be116fee01) Reviewed-on: http://git-master/r/147718 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-10-25usb: gadget: accessory: Fix section mismatchBenoit Goby
create_bulk_endpoints should not be __init since it is called when accessory is enabled Bug 1038578 Change-Id: Ia87d7fd31b31763a1f1ab6ccae179c282f1322c0 Signed-off-by: Benoit Goby <benoit@android.com> Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/145506 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Rakesh Bodla <rbodla@nvidia.com>
2012-10-24usb: cdc-acm: enable need_remote_wakeup by defaultVenu Byravarasu
This was disabled in a previous commit as it was thought that the flag prevented autosuspend from working. However autosuspend will succeed as long as the modem enumerates with the Remote Wakeup bit set in the bmAttributes field of the Configuration descriptor. Bug 1058567 Change-Id: I79b35f8edec4511da19bcc3f761d666d388c655d Signed-off-by: Neil Patel <neilp@nvidia.com> Reviewed-on: http://git-master/r/147062 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Steve Lin <stlin@nvidia.com>
2012-10-24usb: gadget: tegra: enable regulator nameRohith Seelaboyina
Specify device name for the regulator_get API Bug 1158669 Change-Id: I981728bc4e14bcedab49175b0350f8d93a2ac95a Signed-off-by: Rohith Seelaboyina <rseelaboyina@nvidia.com> Reviewed-on: http://git-master/r/145580 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-10-24usb: gadget: ether: fix clog tx transmitJay Cheng
With g_len initial from 0 and buffer size is 10, it cause interrupt(IOC) is triggered at entry 0 and 5, which is 1st and 6th entry in list. This deviate double bufferring design that expect to trigger interrupt at half and full. If interrupt is trggered at 0 and 5, when upper layer pass through data faster then u_ether driver can free up, then the data flow start clogging from g_len=6 till g_len=9 and no interrupt is triggered to free up memory to consume data from upper layer as illustrated below. [0][1][2][3][4] [5][6][7][8][9] IOC IOC Initial g_len as 1, so interrupt will be triggered at 5th and 10th as illustrated below. Especially, 10th entry, which is also last entry, must set interrupt to free up memory. [0][1][2][3][4] [5][6][7][8][9] IOC IOC Also enforce last entry in list to trigger interrupt in case user space change qmult value at run time that will cause misalignment with buffer size. For example: echo 4 > /sys/module/g_android/parameters/qmult [0][1][2][3][4] [5][6][7][8][9] IOC IOC IOC bug 1054552 Reviewed-on: http://git-master/r/139969 (cherry picked from commit 4ea9a0eff24d5f3c44402732e35bf12eaed7ed79) Change-Id: I449a007036f6aea73626921bb24925b2ec57e167 Signed-off-by: Jay Cheng <jacheng@nvidia.com> Reviewed-on: http://git-master/r/145243 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkat Moganty <vmoganty@nvidia.com> Reviewed-by: Michael Hsu <mhsu@nvidia.com>
2012-10-23usb: gadget: android:honor CONFIG_GADGET_VBUS_DRAWRakesh Bodla
Let the usb core handle whether device is self powered or bus powered. Bug 1130924 Change-Id: I01c4480b3dcc3777b5723107461521a3afcd39eb Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/146501 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-10-21usb: gadget: tegra: fix coverity issueSri Krishna chowdary
name cant be NULL, it is static array. Add check if name is empty string. Bug 1046331 Change-Id: I2615ae0d24e44025b7528e10d0dafb124d355b4f Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Reviewed-on: http://git-master/r/144374 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-10-19usb: gadget: tegra:change condition for vbus checkRakesh Bodla
Changing the condition for vbus check. VBUS will be present when OTG cable is connected, hence vbus status will be reflected wrong. Correct status is tracked through vbus_active variable. Bug 1158853 Change-Id: Ic904beb5919ddafef5becf39ddac1767cdda79cd Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/145148 Reviewed-by: Mrutyunjay Sawant <msawant@nvidia.com> Tested-by: Mrutyunjay Sawant <msawant@nvidia.com>
2012-10-19usb: gadget: tegra: fix coverity issueSri Krishna chowdary
req cant be NULL if _req is not NULL Bug 1046331 Change-Id: Ice984281fe3c670293a4ea80bd88a9aa014e645e Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Reviewed-on: http://git-master/r/144108 Reviewed-by: Mrutyunjay Sawant <msawant@nvidia.com> Tested-by: Mrutyunjay Sawant <msawant@nvidia.com>
2012-10-19usb: gadget: tegra: Add AHB prefetch buffer with IOMMUHiroshi Doyu
With PLATFORM_ENABLE_IOMMU, IOMMU'able devices need to work with IOMMU, where only IOMMU mapped pages are valid. AHB prefetcher for USB tried to access(read) beyond IOMMU mapped range. To avoid unnecessary DECERR from IOMMU(SMMU), 128 bytes are appended at the end of USB buffers at dma_{map,unmap}_single() but cache maint is done with the original size. Bug 1049290 Change-Id: I5646c83541eac263f9180bc6ae64e05d1e7c8a51 Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com> Reviewed-on: http://git-master/r/143531 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-10-18usb: host: tegra: fix coverity issueSri Krishna chowdary
Dereference pointer after NULL check. Bug 1046331 Change-Id: Ib4ca399fd6f81d29c27cb18207fa5da1b7d2c8d1 Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Reviewed-on: http://git-master/r/144111 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-by: Krishna Yarlagadda <kyarlagadda@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2012-10-15usb: otg: tegra: fix coverity issueSri Krishna chowdary
sscanf reads int into host and host is checked if it is less than 0. This suggests that host should be int rather than unsigned int. Bug 1046331 Change-Id: I8ac4d8113b0602625e2a5019f70f29797148ec5d Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Reviewed-on: http://git-master/r/144373 Reviewed-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam <snikam@nvidia.com>
2012-10-08usb: gadget: tegra: Using generic phy APIsVenu Byravarasu
As new set of APIs to support generic phy operations got added to linux kernel, making use of them in place of proprietary tegra phy APIs. Change-Id: I76ff3f44dbdc24f873f46e0055ae2cf29025258d Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-on: http://git-master/r/141468 Reviewed-by: Automatic_Commit_Validation_User Tested-by: Krishna Yarlagadda <kyarlagadda@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-10-08usb: host: tegra: Using generic phy APIsVenu Byravarasu
As new set of APIs to support generic phy operations got added to linux kernel, making use of them in place of proprietary tegra phy APIs. Change-Id: Ib3a68b5a1dee6c7656db11ddecc7c68eacc0dea4 Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-on: http://git-master/r/141467 Reviewed-by: Automatic_Commit_Validation_User Tested-by: Krishna Yarlagadda <kyarlagadda@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-09-18USB: gadget: f_audio_source: New gadget driver for audio outputMike Lockwood
This driver presents a standard USB audio class interface to the host and an ALSA PCM device to userspace Change-Id: If16b14a5ff27045f9cb2daaf1ae9195c5eeab7d0 Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-09-18USB: gadget: f_accessory: Add support for HID input devicesMike Lockwood
Change-Id: I4f1452db32508382df52acdc47c0eb395ae328c7 Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-09-14usb: gadget: tegra: check vbus before run bit setRohith Seelaboyina
Adding the check for vbus before setting the run bit. Bug 1046443 Reviewed-on: http://git-master/r/131733 (cherry picked from commit e2dcc0fff0bde89eced1482f3df763bfc7afd3a2) Change-Id: Ie88ad2ab60b0e8c7691d5b66e52f9ee6c19d34fa Signed-off-by: Rohith Seelaboyina <rseelaboyina@nvidia.com> Reviewed-on: http://git-master/r/132210 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venkata Jagadish <vjagadish@nvidia.com> Reviewed-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-08-30Merge commit 'v3.4.10' into android-t114-3.4Varun Wadekar
2012-08-29usb: otg: tegra: add stub runtime power managementRakesh Bodla
Add stub runtime power management calls. This provides the core PM framework with information about when the device is idle, etc. Bug 887315 Change-Id: I0dfe5c151fa5f987196a307441a2705ca52e70d7 Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/127358 Reviewed-by: Mrutyunjay Sawant <msawant@nvidia.com> Tested-by: Mrutyunjay Sawant <msawant@nvidia.com>
2012-08-28usb: otg: tegra: Notify USB events to otg coreRakesh Bodla
Notify USB connection events to otg core. These notifications will be used by drivers (e.g. otg wakelock driver) who registered for the events. Bug 1031034 Bug 976849 Change-Id: I3655071af9226e3aef385681fcabc94b9def4233 Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/127137 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Alex Courbot <acourbot@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-08-26usb: gadget: u_ether: fix kworker 100% CPU issue with still used interfaces ↵Michael Grzeschik
in eth_stop commit b1b552a69b8805e7e338074a9e8b670b4a795218 upstream. This patch fixes an issue introduced by patch: 72c973d usb: gadget: add usb_endpoint_descriptor to struct usb_ep Without this patch we see a kworker taking 100% CPU, after this sequence: - Connect gadget to a windows host - load g_ether - ifconfig up <ip>; ifconfig down; ifconfig up - ping <windows host> The "ifconfig down" results in calling eth_stop(), which will call usb_ep_disable() and, if the carrier is still ok, usb_ep_enable(): usb_ep_disable(link->in_ep); usb_ep_disable(link->out_ep); if (netif_carrier_ok(net)) { usb_ep_enable(link->in_ep); usb_ep_enable(link->out_ep); } The ep should stay enabled, but will not, as ep_disable set the desc pointer to NULL, therefore the subsequent ep_enable will fail. This leads to permanent rescheduling of the eth_work() worker as usb_ep_queue() (called by the worker) will fail due to the unconfigured endpoint. We fix this issue by saving the ep descriptors and re-assign them before usb_ep_enable(). Cc: Tatyana Brokhman <tlinder@codeaurora.org> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26usb: serial: mos7840: Fixup mos7840_chars_in_buffer()Mark Ferrell
commit 5c263b92f828af6a8cf54041db45ceae5af8f2ab upstream. * Use the buffer content length as opposed to the total buffer size. This can be a real problem when using the mos7840 as a usb serial-console as all kernel output is truncated during boot. Signed-off-by: Mark Ferrell <mferrell@uplogix.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26USB: ftdi_sio: Add VID/PID for Kondo Serial USBOzan Çağlayan
commit 7724a1edbe463b06d4e7831a41149ba095b16c53 upstream. This adds VID/PID for Kondo Kagaku Co. Ltd. Serial USB Adapter interface: http://www.kondo-robot.com/EN/wp/?cat=28 Tested by controlling an RCB3 board using libRCB3. Signed-off-by: Ozan Çağlayan <ozancag@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26USB: option: add ZTE K5006-ZBjørn Mork
commit f1b5c997e68533df1f96dcd3068a231bca495603 upstream. The ZTE (Vodafone) K5006-Z use the following interface layout: 00 DIAG 01 secondary 02 modem 03 networkcard 04 storage Ignoring interface #3 which is handled by the qmi_wwan driver. Signed-off-by: Bjørn Mork <bjorn@mork.no> Cc: Thomas Schäfer <tschaefer@t-online.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26USB: support the new interfaces of Huawei Data Card devices in option driverfangxiaozhi
commit ee6f827df9107139e8960326e49e1376352ced4d upstream. In this patch, we add new declarations into option.c to support the new interfaces of Huawei Data Card devices. And at the same time, remove the redundant declarations from option.c. Signed-off-by: fangxiaozhi <huananhu@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26xhci: Fix bug after deq ptr set to link TRB.Sarah Sharp
commit 50d0206fcaea3e736f912fd5b00ec6233fb4ce44 upstream. This patch fixes a particularly nasty bug that was revealed by the ring expansion patches. The bug has been present since the very beginning of the xHCI driver history, and could have caused general protection faults from bad memory accesses. The first thing to note is that a Set TR Dequeue Pointer command can move the dequeue pointer to a link TRB, if the canceled or stalled transfer TD ended just before a link TRB. The function to increment the dequeue pointer, inc_deq, was written before cancellation and stall support was added. It assumed that the dequeue pointer could never point to a link TRB. It would unconditionally increment the dequeue pointer at the start of the function, check if the pointer was now on a link TRB, and move it to the top of the next segment if so. This means that if a Set TR Dequeue Point command moved the dequeue pointer to a link TRB, a subsequent call to inc_deq() would move the pointer off the segment and into la-la-land. It would then read from that memory to determine if it was a link TRB. Other functions would often call inc_deq() until the dequeue pointer matched some other pointer, which means this function would quite happily read all of system memory before wrapping around to the right pointer value. Often, there would be another endpoint segment from a different ring allocated from the same DMA pool, which would be contiguous to the segment inc_deq just stepped off of. inc_deq would eventually find the link TRB in that segment, and blindly move the dequeue pointer back to the top of the correct ring segment. The only reason the original code worked at all is because there was only one ring segment. With the ring expansion patches, the dequeue pointer would eventually wrap into place, but the dequeue segment would be out-of-sync. On the second TD after the dequeue pointer was moved to a link TRB, trb_in_td() would fail (because the dequeue pointer and dequeue segment were out-of-sync), and this message would appear: ERROR Transfer event TRB DMA ptr not part of current TD This fixes bugzilla entry 4333 (option-based modem unhappy on USB 3.0 port: "Transfer event TRB DMA ptr not part of current TD", "rejecting I/O to offline device"), https://bugzilla.kernel.org/show_bug.cgi?id=43333 and possibly other general protection fault bugs as well. This patch should be backported to kernels as old as 2.6.31. A separate patch will be created for kernels older than 3.4, since inc_deq was modified in 3.4 and this patch will not apply. Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Tested-by: James Ettle <theholyettlz@googlemail.com> Tested-by: Matthew Hall <mhall@mhcomputing.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26xhci: Switch PPT ports to EHCI on shutdown.Sarah Sharp
commit e95829f474f0db3a4d940cae1423783edd966027 upstream. The Intel desktop boards DH77EB and DH77DF have a hardware issue that can be worked around by BIOS. If the USB ports are switched to xHCI on shutdown, the xHCI host will send a spurious interrupt, which will wake the system. Some BIOS will work around this, but not all. The bug can be avoided if the USB ports are switched back to EHCI on shutdown. The Intel Windows driver switches the ports back to EHCI, so change the Linux xHCI driver to do the same. Unfortunately, we can't tell the two effected boards apart from other working motherboards, because the vendors will change the DMI strings for the DH77EB and DH77DF boards to their own custom names. One example is Compulab's mini-desktop, the Intense-PC. Instead, key off the Panther Point xHCI host PCI vendor and device ID, and switch the ports over for all PPT xHCI hosts. The only impact this will have on non-effected boards is to add a couple hundred milliseconds delay on boot when the BIOS has to switch the ports over from EHCI to xHCI. This patch should be backported to kernels as old as 3.0, that contain the commit 69e848c2090aebba5698a1620604c7dccb448684 "Intel xhci: Support EHCI/xHCI port switching." Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Reported-by: Denis Turischev <denis@compulab.co.il> Tested-by: Denis Turischev <denis@compulab.co.il> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26xhci: Increase reset timeout for Renesas 720201 host.Sarah Sharp
commit 22ceac191211cf6688b1bf6ecd93c8b6bf80ed9b upstream. The NEC/Renesas 720201 xHCI host controller does not complete its reset within 250 milliseconds. In fact, it takes about 9 seconds to reset the host controller, and 1 second for the host to be ready for doorbell rings. Extend the reset and CNR polling timeout to 10 seconds each. This patch should be backported to kernels as old as 2.6.31, that contain the commit 66d4eadd8d067269ea8fead1a50fe87c2979a80d "USB: xhci: BIOS handoff and HW initialization." Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Reported-by: Edwin Klein Mentink <e.kleinmentink@zonnet.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26xhci: Add Etron XHCI_TRUST_TX_LENGTH quirk.Sarah Sharp
commit 5cb7df2b2d3afee7638b3ef23a5bcb89c6f07bd9 upstream. Gary reports that with recent kernels, he notices more xHCI driver warnings: xhci_hcd 0000:03:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk? We think his Etron xHCI host controller may have the same buggy behavior as the Fresco Logic xHCI host. When a short transfer is received, the host will mark the transfer as successfully completed when it should be marking it with a short completion. Fix this by turning on the XHCI_TRUST_TX_LENGTH quirk when the Etron host is discovered. Note that Gary has revision 1, but if Etron fixes this bug in future revisions, the quirk will have no effect. This patch should be backported to kernels as old as 2.6.36, that contain a backported version of commit 1530bbc6272d9da1e39ef8e06190d42c13a02733 "xhci: Add new short TX quirk for Fresco Logic host." Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Reported-by: Gary E. Miller <gem@rellim.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-23Merge commit 'v3.4.9' into android-t114-3.4Varun Wadekar
Linux v3.4.9 Conflicts: arch/arm/kernel/smp.c arch/arm/vfp/entry.S Change-Id: I731e815ed35ba9280374a5a3e5a6a8b6b805d695 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
2012-08-21usb: otg: tegra: fix racing USB connection eventsXin Xie
Sometimes USB connect and disconnect events is not detected properly. The OTG irq handler is using a workqueue which has no protection for multiple incoming event handling. This patch adds mutex to protect the workqueue for USB connection handling. BUG 968345 Change-Id: If1c6fec4231dd0dc918f7f278e0a1d7667782917 Signed-off-by: Xin Xie <xxie@nvidia.com> Reviewed-on: http://git-master/r/122308 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Rakesh Bodla <rbodla@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-08-21usb: gadget: tegra: remove unnecessary bus resumeXin Xie
Current Tegra UDC driver share same IRQ with OTG driver, and it will call bus_resume() even if there is no UDC IRQ pending. This patch will check UDC IRQ source and will not cause bus resume if no IRQ pending for UDC driver. BUG 1015685 Change-Id: Ifc5634ae5d1f7f1435c64bc527ab2e9fb8d0e36b Signed-off-by: Xin Xie <xxie@nvidia.com> Reviewed-on: http://git-master/r/121896 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-08-21usb: gadget: tegra_udc: use USB charging spec 1.2Xin Xie
Enable the USB charging based on the USB charging spec 1.2. Now we can detect: 1. SDP (stanardard downstream port) 2. CDP (charging downstream port) 3. DCP (dedicated charging port) 4. None (no cable connected) 5. Non-standard charger For some non-standard charger, we cannot detect it as DCP device. If we find a charger detected as USB device but no EP0 packet recieved with 1s, we then decided this is 1A charger. bug 968345 Change-Id: I804f90ea6e4794da8f52b1c3ebd694828d99f40e Signed-off-by: Xin Xie <xxie@nvidia.com> Reviewed-on: http://git-master/r/120218 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-08-21USB: gadget: f_audio_source: Adjust packet timing to reduce glitchesMike Lockwood
Increase max packet size and clean up timing logic so we can better recover from not getting an interrupt in time for a SOF. Bug 1026047 Signed-off-by: Mike Lockwood <lockwood@google.com> (cherry picked from commit 3d2096a7959d023bc31a3cf934c3d425de01c94f) Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Change-Id: I0a0a6f448e71e4a0c478bb44cadc54fa021e13e4 Reviewed-on: http://git-master/r/123344 Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
2012-08-21USB: gadget: f_audio_source: New gadget driver for audio outputMike Lockwood
This driver presents a standard USB audio class interface to the host and an ALSA PCM device to userspace Bug 1026047 Signed-off-by: Mike Lockwood <lockwood@google.com> (cherry picked from commit a23ff394752015a233dd3b27b05c9d913cbf5536) Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Change-Id: I4054e09888f17d9cdfcfd4a3d430ca5cfb3fd9fa Reviewed-on: http://git-master/r/123343 Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>