-
dwc_otg: Don't issue traffic to LS devices in FS mode
P33M committedSep 27, 2013 Issuing low-speed packets when the root port is in full-speed mode causes the root port to stop responding. Explicitly fail when enqueuing URBs to a LS endpoint on a FS bus.
-
popcornmix committed
Sep 27, 2013
-
dwc_otg: Fix for occasional lockup on boot when doing a USB reset
popcornmix committedSep 20, 2013 -
Add Ubiquiti WifiStation USB id to ath9k wifi driver
popcornmix committedSep 8, 2013 -
Merge pull request #380 from P33M/rpi-3.6.y
popcornmix committedSep 20, 2013 dwc_otg: Enable NAK holdoff for control split transactions
-
dwc_otg: Enable NAK holdoff for control split transactions
P33M committedSep 20, 2013 Certain low-speed devices take a very long time to complete a data or status stage of a control transaction, producing NAK responses until they complete internal processing - the USB2.0 spec limit is up to 500mS. This causes the same type of interrupt storm as seen with USB-serial dongles prior to c8edb23. In certain circumstances, usually while booting, this interrupt storm could cause SD card timeouts.
-
Add new config options: CPU_FREQ_STAT_DETAILS, DUMMY, QFMT_V1, QFMT_V…
popcornmix committedSep 7, 2013 …2, DLM
-
Enable CONFIG_COMPACTION and move to SLUB memory allocator.
popcornmix committedAug 30, 2013 See: #349
-
Merge pull request #362 from lurch/patch-1
popcornmix committedAug 23, 2013 Replace magic number with its #define name
-
Replace magic number with its #define name
lurch committedAug 22, 2013
-
Changes for new NOOBS multi partition booting from gsh
popcornmix committedAug 19, 2013
-
Increase to CONFIG_MMC_BLOCK_MINORS=32
popcornmix committedAug 15, 2013 and enable CONFIG_JUMP_LABEL See: #348
-
Merge pull request #352 from P33M/rpi-3.6.y
popcornmix committedAug 7, 2013 dwc_otg: root port and FIQ bugfixes
-
dwc_otg: prevent crashes on host port disconnects
P33M committedAug 5, 2013 Fix several issues resulting in crashes or inconsistent state if a Model A root port was disconnected. - Clean up queue heads properly in kill_urbs_in_qh_list by removing the empty QHs from the schedule lists - Set the halt status properly to prevent IRQ handlers from using freed memory - Add fiq_split related cleanup for saved registers - Make microframe scheduling reclaim host channels if active during a disconnect - Abort URBs with -ESHUTDOWN status response, informing device drivers so they respond in a more correct fashion and don't try to resubmit URBs - Prevent IRQ handlers from attempting to handle channel interrupts if the associated URB was dequeued (and the driver state was cleared)
-
dwc_otg: prevent leaking URBs during enqueue
P33M committedAug 5, 2013 A dwc_otg_urb would get leaked if the HCD enqueue function failed for any reason. Free the URB at the appropriate points.
-
dwc_otg: make fiq_split_enable imply fiq_fix_enable
P33M committedAug 5, 2013 Failing to set up the FIQ correctly would result in "IRQ 32: nobody cared" errors in dmesg.
-
Merge pull request #347 from P33M/rpi-3.6.y
P33M committedAug 2, 2013 dwc_otg: fix potential sleep while atomic during urb enqueue
-
dwc_otg: fix potential sleep while atomic during urb enqueue
P33M committedAug 2, 2013 Fixes a regression introduced with eb1b482. Kmalloc called from dwc_otg_hcd_qtd_add / dwc_otg_hcd_qtd_create did not always have the GPF_ATOMIC flag set. Force this flag when inside the larger critical section.
-
vchiq_util: Fix race condition in push/pop
The lack of memory barriers could (very rarely) result in vchiu_queue_pop reading the next value before it had been written (getting either NULL, or a value that had been popped once already).
-
VCHIQ: Fix mem leak of USER_SERVICE_T objects.
The userdata for VCHIQ services created through the ioctl API is a kmalloced structure. These objects were getting leaked, most notably in vchiq_release(), where the service could be closed, freed and removed from the service list before the wait-to-die loop was entered. This change adds a userdata termination callback, and implements it in the case where USER_SERVICE_T is used for the service userdata.
-
Merge pull request #344 from P33M/rpi-3.6.y
popcornmix committedJul 30, 2013 dwc_otg: fiq_split: use TTs with more granularity
-
dwc_otg: fiq_split: use TTs with more granularity
P33M committedJul 30, 2013 This fixes certain issues with split transaction scheduling. - Isochronous multi-packet OUT transactions now hog the TT until they are completed - this prevents hubs aborting transactions if they get a periodic start-split out-of-order - Don't perform TT allocation on non-periodic endpoints - this allows simultaneous use of the TT's bulk/control and periodic transaction buffers This commit will mainly affect USB audio playback.
-
Merge pull request #340 from P33M/rpi-3.6.y
popcornmix committedJul 27, 2013 dwc_otg: make channel halts with unknown state less damaging
-
dwc_otg: make channel halts with unknown state less damaging
P33M committedJul 23, 2013 If the IRQ received a channel halt interrupt through the FIQ with no other bits set, the IRQ would not release the host channel and never complete the URB. Add catchall handling to treat as a transaction error and retry.
-
Merge pull request #337 from P33M/rpi-3.6.y
popcornmix committedJul 22, 2013 dwc_otg: prevent BUG() in TT allocation if hub address is > 16
-
dwc_otg: prevent BUG() in TT allocation if hub address is > 16
P33M committedJul 22, 2013 A fixed-size array is used to track TT allocation. This was previously set to 16 which caused a crash because dwc_otg_hcd_allocate_port would read past the end of the array. This was hit if a hub was plugged in which enumerated as addr > 16, due to previous device resets or unplugs. Also add #ifdef FIQ_DEBUG around hcd->hub_port_alloc[], which grows to a large size if 128 hub addresses are supported. This field is for debug only for tracking which frame an allocate happened in.
-
Merge pull request #334 from P33M/rpi-3.6.y
popcornmix committedJul 19, 2013 dwc_otg: prevent OOPSes during device disconnects
-
dwc_otg: prevent OOPSes during device disconnects
P33M committedJul 18, 2013 The dwc_otg_urb_enqueue function is thread-unsafe. In particular the access of urb->hcpriv, usb_hcd_link_urb_to_ep, dwc_otg_urb->qtd and friends does not occur within a critical section and so if a device was unplugged during activity there was a high chance that the usbcore hub_thread would try to disable the endpoint with partially- formed entries in the URB queue. This would result in BUG() or null pointer dereferences. Fix so that access of urb->hcpriv, enqueuing to the hardware and adding to usbcore endpoint URB lists is contained within a single critical section.
-
dwc_otg: whitespace cleanup in dwc_otg_urb_enqueue
P33M committedJul 18, 2013
-
Merge pull request #330 from P33M/rpi-3.6.y
popcornmix committedJul 16, 2013 dwc_otg: more robust interrupt handling
-
dwc_otg: fiq: prevent FIQ thrash and incorrect state passing to IRQ
P33M committedJul 13, 2013 In the case of a transaction to a device that had previously aborted due to an error, several interrupts are enabled to reset the error count when a device responds. This has the side-effect of making the FIQ thrash because the hardware will generate multiple instances of a NAK on an IN bulk/interrupt endpoint and multiple instances of ACK on an OUT bulk/interrupt endpoint. Make the FIQ mask and clear the associated interrupts. Additionally, on non-split transactions make sure that only unmasked interrupts are cleared. This caused a hard-to-trigger but serious race condition when you had the combination of an endpoint awaiting error recovery and a transaction completed on an endpoint - due to the sequencing and timing of interrupts generated by the dwc_otg core, it was possible to confuse the IRQ handler.
-
dwc_otg: mask correct interrupts after transaction error recovery
P33M committedJul 13, 2013 The dwc_otg driver will unmask certain interrupts on a transaction that previously halted in the error state in order to reset the QTD error count. The various fine-grained interrupt handlers do not consider that other interrupts besides themselves were unmasked. By disabling the two other interrupts only ever enabled in DMA mode for this purpose, we can avoid unnecessary function calls in the IRQ handler. This will also prevent an unneccesary FIQ interrupt from being generated if the FIQ is enabled.
-
sdhci-bcm2807: Increase sync_after_dma timeout
popcornmix committedJul 10, 2013 The current timeout is being hit with some cards that complete successfully with a longer timeout. The timeout is not handled well, and is believed to be a code path that causes corruption. 872a8ff suggests that crappy cards can take up to 3 seconds to respond
-
Gordon Hollingworth committed
Jul 8, 2013