aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch
diff options
context:
space:
mode:
authorJonas Gorski <jogo@openwrt.org>2015-06-17 10:22:04 +0000
committerJonas Gorski <jogo@openwrt.org>2015-06-17 10:22:04 +0000
commitb9c13dc540403877ee43369ce0027f43c7cab928 (patch)
treedec25a80e17d7c6d67b6daf822c22f5d10db3dd5 /target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch
parent966f1ab30128279f7b07acda088f4f3399718867 (diff)
downloadupstream-b9c13dc540403877ee43369ce0027f43c7cab928.tar.gz
upstream-b9c13dc540403877ee43369ce0027f43c7cab928.tar.bz2
upstream-b9c13dc540403877ee43369ce0027f43c7cab928.zip
kernel: update 3.18 to 3.18.16
Changelogs: * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.15 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.16 Signed-off-by: Jonas Gorski <jogo@openwrt.org> Backport of r46011. git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@46015 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch')
-rw-r--r--target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch34
1 files changed, 17 insertions, 17 deletions
diff --git a/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch b/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch
index 79818803e6..e41b8a0d2e 100644
--- a/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch
+++ b/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch
@@ -5089,7 +5089,7 @@
return 1;
}
-@@ -2805,6 +2809,7 @@ static int prepare_ring(struct xhci_hcd
+@@ -2810,6 +2814,7 @@ static int prepare_ring(struct xhci_hcd
next = ring->enqueue;
while (last_trb(xhci, ring, ring->enq_seg, next)) {
@@ -5097,7 +5097,7 @@
/* If we're not dealing with 0.95 hardware or isoc rings
* on AMD 0.96 host, clear the chain bit.
*/
-@@ -2814,6 +2819,9 @@ static int prepare_ring(struct xhci_hcd
+@@ -2819,6 +2824,9 @@ static int prepare_ring(struct xhci_hcd
next->link.control &= cpu_to_le32(~TRB_CHAIN);
else
next->link.control |= cpu_to_le32(TRB_CHAIN);
@@ -5107,7 +5107,7 @@
wmb();
next->link.control ^= cpu_to_le32(TRB_CYCLE);
-@@ -2944,6 +2952,9 @@ static void giveback_first_trb(struct xh
+@@ -2949,6 +2957,9 @@ static void giveback_first_trb(struct xh
start_trb->field[3] |= cpu_to_le32(start_cycle);
else
start_trb->field[3] &= cpu_to_le32(~TRB_CYCLE);
@@ -5117,7 +5117,7 @@
xhci_ring_ep_doorbell(xhci, slot_id, ep_index, stream_id);
}
-@@ -2999,6 +3010,29 @@ static u32 xhci_td_remainder(unsigned in
+@@ -3004,6 +3015,29 @@ static u32 xhci_td_remainder(unsigned in
return (remainder >> 10) << 17;
}
@@ -5147,7 +5147,7 @@
/*
* For xHCI 1.0 host controllers, TD size is the number of max packet sized
* packets remaining in the TD (*not* including this TRB).
-@@ -3136,6 +3170,7 @@ static int queue_bulk_sg_tx(struct xhci_
+@@ -3141,6 +3175,7 @@ static int queue_bulk_sg_tx(struct xhci_
}
/* Set the TRB length, TD size, and interrupter fields. */
@@ -5155,7 +5155,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
urb->transfer_buffer_length -
-@@ -3145,6 +3180,12 @@ static int queue_bulk_sg_tx(struct xhci_
+@@ -3150,6 +3185,12 @@ static int queue_bulk_sg_tx(struct xhci_
trb_buff_len, total_packet_count, urb,
num_trbs - 1);
}
@@ -5168,7 +5168,7 @@
length_field = TRB_LEN(trb_buff_len) |
remainder |
TRB_INTR_TARGET(0);
-@@ -3207,6 +3248,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3212,6 +3253,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
int running_total, trb_buff_len, ret;
unsigned int total_packet_count;
u64 addr;
@@ -5178,7 +5178,7 @@
if (urb->num_sgs)
return queue_bulk_sg_tx(xhci, mem_flags, urb, slot_id, ep_index);
-@@ -3232,6 +3276,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3237,6 +3281,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
running_total += TRB_MAX_BUFF_SIZE;
}
/* FIXME: this doesn't deal with URB_ZERO_PACKET - need one more */
@@ -5204,7 +5204,7 @@
ret = prepare_transfer(xhci, xhci->devs[slot_id],
ep_index, urb->stream_id,
-@@ -3291,6 +3354,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3296,6 +3359,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
field |= TRB_ISP;
/* Set the TRB length, TD size, and interrupter fields. */
@@ -5212,7 +5212,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
urb->transfer_buffer_length -
-@@ -3300,6 +3364,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3305,6 +3369,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
trb_buff_len, total_packet_count, urb,
num_trbs - 1);
}
@@ -5223,7 +5223,7 @@
length_field = TRB_LEN(trb_buff_len) |
remainder |
TRB_INTR_TARGET(0);
-@@ -3389,7 +3457,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3394,7 +3462,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field |= 0x1;
/* xHCI 1.0 6.4.1.2.1: Transfer Type field */
@@ -5235,7 +5235,7 @@
if (urb->transfer_buffer_length > 0) {
if (setup->bRequestType & USB_DIR_IN)
field |= TRB_TX_TYPE(TRB_DATA_IN);
-@@ -3413,7 +3485,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3418,7 +3490,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field = TRB_TYPE(TRB_DATA);
length_field = TRB_LEN(urb->transfer_buffer_length) |
@@ -5248,7 +5248,7 @@
TRB_INTR_TARGET(0);
if (urb->transfer_buffer_length > 0) {
if (setup->bRequestType & USB_DIR_IN)
-@@ -3536,6 +3613,9 @@ static int xhci_queue_isoc_tx(struct xhc
+@@ -3541,6 +3618,9 @@ static int xhci_queue_isoc_tx(struct xhc
u64 start_addr, addr;
int i, j;
bool more_trbs_coming;
@@ -5258,7 +5258,7 @@
ep_ring = xhci->devs[slot_id]->eps[ep_index].ring;
-@@ -3549,6 +3629,21 @@ static int xhci_queue_isoc_tx(struct xhc
+@@ -3554,6 +3634,21 @@ static int xhci_queue_isoc_tx(struct xhc
start_trb = &ep_ring->enqueue->generic;
start_cycle = ep_ring->cycle_state;
@@ -5280,7 +5280,7 @@
urb_priv = urb->hcpriv;
/* Queue the first TRB, even if it's zero-length */
for (i = 0; i < num_tds; i++) {
-@@ -3620,9 +3715,13 @@ static int xhci_queue_isoc_tx(struct xhc
+@@ -3625,9 +3720,13 @@ static int xhci_queue_isoc_tx(struct xhc
} else {
td->last_trb = ep_ring->enqueue;
field |= TRB_IOC;
@@ -5294,7 +5294,7 @@
/* Set BEI bit except for the last td */
if (i < num_tds - 1)
field |= TRB_BEI;
-@@ -3637,6 +3736,7 @@ static int xhci_queue_isoc_tx(struct xhc
+@@ -3642,6 +3741,7 @@ static int xhci_queue_isoc_tx(struct xhc
trb_buff_len = td_remain_len;
/* Set the TRB length, TD size, & interrupter fields. */
@@ -5302,7 +5302,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
td_len - running_total);
-@@ -3646,6 +3746,10 @@ static int xhci_queue_isoc_tx(struct xhc
+@@ -3651,6 +3751,10 @@ static int xhci_queue_isoc_tx(struct xhc
total_packet_count, urb,
(trbs_per_td - j - 1));
}