summaryrefslogtreecommitdiff
path: root/board/twinkie/sniffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/twinkie/sniffer.c')
-rw-r--r--board/twinkie/sniffer.c72
1 files changed, 32 insertions, 40 deletions
diff --git a/board/twinkie/sniffer.c b/board/twinkie/sniffer.c
index 7d2d8d439f..ff7ad02f87 100644
--- a/board/twinkie/sniffer.c
+++ b/board/twinkie/sniffer.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -105,8 +105,8 @@ static void ep_tx(void)
btable_ep[USB_EP_SNIFFER].tx_addr = usb_sram_addr(ep_buf[b]);
}
/* re-enable data transmission if we have available data */
- btable_ep[USB_EP_SNIFFER].tx_count = (free_usb & (1<<b)) ? 0
- : EP_BUF_SIZE;
+ btable_ep[USB_EP_SNIFFER].tx_count =
+ (free_usb & (1 << b)) ? 0 : EP_BUF_SIZE;
STM32_TOGGLE_EP(USB_EP_SNIFFER, EP_TX_MASK, EP_TX_VALID, 0);
/* wake up the processing */
task_set_event(TASK_ID_SNIFFER, USB_EVENT);
@@ -127,7 +127,6 @@ static void ep_event(enum usb_ep_event evt)
}
USB_DECLARE_EP(USB_EP_SNIFFER, ep_tx, ep_tx, ep_event);
-
/* --- RX operation using comparator linked to timer --- */
/* RX on CC1 is using COMP1 triggering TIM1 CH1 */
#define TIM_RX1 1
@@ -144,13 +143,13 @@ USB_DECLARE_EP(USB_EP_SNIFFER, ep_tx, ep_tx, ep_event);
static const struct dma_option dma_tim_cc1 = {
DMAC_TIM_RX1, (void *)&STM32_TIM_CCRx(TIM_RX1, TIM_RX1_CCR_IDX),
STM32_DMA_CCR_MSIZE_8_BIT | STM32_DMA_CCR_PSIZE_8_BIT |
- STM32_DMA_CCR_CIRC | STM32_DMA_CCR_TCIE | STM32_DMA_CCR_HTIE
+ STM32_DMA_CCR_CIRC | STM32_DMA_CCR_TCIE | STM32_DMA_CCR_HTIE
};
static const struct dma_option dma_tim_cc2 = {
DMAC_TIM_RX2, (void *)&STM32_TIM_CCRx(TIM_RX2, TIM_RX2_CCR_IDX),
STM32_DMA_CCR_MSIZE_8_BIT | STM32_DMA_CCR_PSIZE_8_BIT |
- STM32_DMA_CCR_CIRC | STM32_DMA_CCR_TCIE | STM32_DMA_CCR_HTIE
+ STM32_DMA_CCR_CIRC | STM32_DMA_CCR_TCIE | STM32_DMA_CCR_HTIE
};
/* sequence number for sample buffers */
@@ -161,7 +160,7 @@ static uint32_t oflow;
#define SNIFFER_CHANNEL_CC1 0
#define SNIFFER_CHANNEL_CC2 1
-#define get_channel(b) (((b) >> 12) & 0x1)
+#define get_channel(b) (((b) >> 12) & 0x1)
void tim_rx1_handler(uint32_t stat)
{
@@ -171,8 +170,7 @@ void tim_rx1_handler(uint32_t stat)
uint32_t next = idx ? 0x0001 : 0x0100;
sample_tstamp[idx] = __hw_clock_source_read();
- sample_seq[idx] = ((seq++ << 3) & 0x0ff8) |
- (SNIFFER_CHANNEL_CC1<<12);
+ sample_seq[idx] = ((seq++ << 3) & 0x0ff8) | (SNIFFER_CHANNEL_CC1 << 12);
if (filled_dma & next) {
oflow++;
sample_seq[idx] |= 0x8000;
@@ -193,8 +191,7 @@ void tim_rx2_handler(uint32_t stat)
idx += 2;
sample_tstamp[idx] = __hw_clock_source_read();
- sample_seq[idx] = ((seq++ << 3) & 0x0ff8) |
- (SNIFFER_CHANNEL_CC2<<12);
+ sample_seq[idx] = ((seq++ << 3) & 0x0ff8) | (SNIFFER_CHANNEL_CC2 << 12);
if (filled_dma & next) {
oflow++;
sample_seq[idx] |= 0x8000;
@@ -209,10 +206,10 @@ void tim_rx2_handler(uint32_t stat)
static void tim_dma_handler(void)
{
stm32_dma_regs_t *dma = STM32_DMA1_REGS;
- uint32_t stat = dma->isr & (STM32_DMA_ISR_HTIF(DMAC_TIM_RX1)
- | STM32_DMA_ISR_TCIF(DMAC_TIM_RX1)
- | STM32_DMA_ISR_HTIF(DMAC_TIM_RX2)
- | STM32_DMA_ISR_TCIF(DMAC_TIM_RX2));
+ uint32_t stat = dma->isr & (STM32_DMA_ISR_HTIF(DMAC_TIM_RX1) |
+ STM32_DMA_ISR_TCIF(DMAC_TIM_RX1) |
+ STM32_DMA_ISR_HTIF(DMAC_TIM_RX2) |
+ STM32_DMA_ISR_TCIF(DMAC_TIM_RX2));
if (stat & STM32_DMA_ISR_ALL(DMAC_TIM_RX2))
tim_rx2_handler(stat);
else
@@ -251,30 +248,26 @@ static void rx_timer_init(int tim_id, timer_ctlr_t *tim, int ch_idx, int up_idx)
tim->sr = 0;
}
-
-
void sniffer_init(void)
{
/* remap TIM1 CH1/2/3 to DMA channel 6 */
STM32_SYSCFG_CFGR1 |= BIT(28);
/* TIM1 CH1 for CC1 RX */
- rx_timer_init(TIM_RX1, (void *)STM32_TIM_BASE(TIM_RX1),
- TIM_RX1_CCR_IDX, 2);
+ rx_timer_init(TIM_RX1, (void *)STM32_TIM_BASE(TIM_RX1), TIM_RX1_CCR_IDX,
+ 2);
/* TIM3 CH4 for CC2 RX */
- rx_timer_init(TIM_RX2, (void *)STM32_TIM_BASE(TIM_RX2),
- TIM_RX2_CCR_IDX, 2);
+ rx_timer_init(TIM_RX2, (void *)STM32_TIM_BASE(TIM_RX2), TIM_RX2_CCR_IDX,
+ 2);
/* turn on COMP/SYSCFG */
STM32_RCC_APB2ENR |= BIT(0);
- STM32_COMP_CSR = STM32_COMP_CMP1EN | STM32_COMP_CMP1MODE_HSPEED |
- STM32_COMP_CMP1INSEL_VREF12 |
- STM32_COMP_CMP1OUTSEL_TIM1_IC1 |
- STM32_COMP_CMP1HYST_HI |
- STM32_COMP_CMP2EN | STM32_COMP_CMP2MODE_HSPEED |
- STM32_COMP_CMP2INSEL_VREF12 |
- STM32_COMP_CMP2OUTSEL_TIM2_IC4 |
- STM32_COMP_CMP2HYST_HI;
+ STM32_COMP_CSR =
+ STM32_COMP_CMP1EN | STM32_COMP_CMP1MODE_HSPEED |
+ STM32_COMP_CMP1INSEL_VREF12 | STM32_COMP_CMP1OUTSEL_TIM1_IC1 |
+ STM32_COMP_CMP1HYST_HI | STM32_COMP_CMP2EN |
+ STM32_COMP_CMP2MODE_HSPEED | STM32_COMP_CMP2INSEL_VREF12 |
+ STM32_COMP_CMP2OUTSEL_TIM2_IC4 | STM32_COMP_CMP2HYST_HI;
/* start sampling the edges on the CC lines using the RX timers */
dma_start_rx(&dma_tim_cc1, RX_COUNT, samples[0]);
@@ -311,11 +304,11 @@ void sniffer_task(void)
ep_buf[u][0] = sample_seq[d >> 3] | (d & 7);
ep_buf[u][1] = sample_tstamp[d >> 3];
- memcpy_to_usbram(
- ((void *)usb_sram_addr(ep_buf[u]
- + (EP_PACKET_HEADER_SIZE>>1))),
- samples[d >> 4]+off,
- EP_PAYLOAD_SIZE);
+ memcpy_to_usbram(((void *)usb_sram_addr(
+ ep_buf[u] +
+ (EP_PACKET_HEADER_SIZE >> 1))),
+ samples[d >> 4] + off,
+ EP_PAYLOAD_SIZE);
atomic_clear_bits((atomic_t *)&free_usb, 1 << u);
u = !u;
atomic_clear_bits((atomic_t *)&filled_dma, 1 << d);
@@ -332,8 +325,8 @@ void sniffer_task(void)
int wait_packet(int pol, uint32_t min_edges, uint32_t timeout_us)
{
- stm32_dma_chan_t *chan = dma_get_channel(pol ? DMAC_TIM_RX2
- : DMAC_TIM_RX1);
+ stm32_dma_chan_t *chan =
+ dma_get_channel(pol ? DMAC_TIM_RX2 : DMAC_TIM_RX1);
uint32_t t0 = __hw_clock_source_read();
uint32_t c0 = chan->cndtr;
uint32_t t_gap = t0;
@@ -355,7 +348,7 @@ int wait_packet(int pol, uint32_t min_edges, uint32_t timeout_us)
total_edges += nb;
} else {
if ((t - t_gap) > 20 &&
- (total_edges - (t - t0)/256) >= min_edges)
+ (total_edges - (t - t0) / 256) >= min_edges)
/* real gap after the packet */
break;
}
@@ -392,11 +385,10 @@ static void sniffer_sysjump(void)
}
DECLARE_HOOK(HOOK_SYSJUMP, sniffer_sysjump, HOOK_PRIO_DEFAULT);
-static int command_sniffer(int argc, char **argv)
+static int command_sniffer(int argc, const char **argv)
{
ccprintf("Seq number:%d Overflows: %d\n", seq, oflow);
return EC_SUCCESS;
}
-DECLARE_CONSOLE_COMMAND(sniffer, command_sniffer,
- "[]", "Buffering status");
+DECLARE_CONSOLE_COMMAND(sniffer, command_sniffer, "[]", "Buffering status");