Symbol: fman
drivers/clk/clk-qoriq.c
1417
if (idx >= ARRAY_SIZE(cg->fman))
drivers/clk/clk-qoriq.c
1419
clk = cg->fman[idx];
drivers/clk/clk-qoriq.c
477
cg->fman[0] = cg->pll[CGA_PLL2].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
479
cg->fman[0] = cg->pll[PLATFORM_PLL].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
489
cg->fman[0] = cg->pll[CGA_PLL3].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
491
cg->fman[0] = cg->pll[PLATFORM_PLL].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
494
cg->fman[1] = cg->pll[CGA_PLL3].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
496
cg->fman[1] = cg->pll[PLATFORM_PLL].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
509
cg->fman[0] = cg->pll[CGA_PLL2].div[div].clk;
drivers/clk/clk-qoriq.c
511
cg->fman[0] = cg->pll[PLATFORM_PLL].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
524
cg->fman[0] = cg->pll[CGA_PLL3].div[div].clk;
drivers/clk/clk-qoriq.c
526
cg->fman[0] = cg->pll[PLATFORM_PLL].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
529
cg->fman[1] = cg->pll[CGA_PLL3].div[div].clk;
drivers/clk/clk-qoriq.c
531
cg->fman[1] = cg->pll[PLATFORM_PLL].div[PLL_DIV2].clk;
drivers/clk/clk-qoriq.c
536
cg->fman[0] = cg->hwaccel[1];
drivers/clk/clk-qoriq.c
541
cg->fman[0] = cg->pll[PLATFORM_PLL].div[PLL_DIV1].clk;
drivers/clk/clk-qoriq.c
546
cg->fman[0] = cg->hwaccel[0];
drivers/clk/clk-qoriq.c
551
cg->fman[0] = cg->hwaccel[3];
drivers/clk/clk-qoriq.c
552
cg->fman[1] = cg->hwaccel[4];
drivers/clk/clk-qoriq.c
96
struct clk *fman[2];
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
547
vmw_fences_update(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
1016
dev_priv->fman = vmw_fence_manager_init(dev_priv);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
1017
if (unlikely(dev_priv->fman == NULL)) {
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
1141
vmw_fence_manager_takedown(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
1185
vmw_fence_manager_takedown(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
1528
vmw_fence_fifo_down(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
1552
vmw_fence_fifo_up(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
516
vmw_fence_fifo_up(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
546
vmw_fence_fifo_down(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
591
vmw_fence_fifo_down(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
540
struct vmw_fence_manager *fman;
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
3838
ret = vmw_user_fence_create(file_priv, dev_priv->fman,
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
3841
ret = vmw_fence_create(dev_priv->fman, sequence, p_fence);
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
3893
fence_rep.passed_seqno = vmw_fences_update(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
103
struct vmw_fence_manager *fman = fman_from_fence(fence);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
104
struct vmw_private *dev_priv = fman->dev_priv;
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
121
static u32 __vmw_fences_update(struct vmw_fence_manager *fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
132
struct vmw_fence_manager *fman = kzalloc_obj(*fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
134
if (unlikely(!fman))
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
137
fman->dev_priv = dev_priv;
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
138
spin_lock_init(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
139
INIT_LIST_HEAD(&fman->fence_list);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
140
fman->fifo_down = true;
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
141
fman->ctx = dma_fence_context_alloc(1);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
143
return fman;
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
146
void vmw_fence_manager_takedown(struct vmw_fence_manager *fman)
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
150
spin_lock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
151
lists_empty = list_empty(&fman->fence_list);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
152
spin_unlock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
155
kfree(fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
158
static int vmw_fence_obj_init(struct vmw_fence_manager *fman,
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
164
dma_fence_init(&fence->base, &vmw_fence_ops, &fman->lock,
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
165
fman->ctx, seqno);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
168
spin_lock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
169
if (unlikely(fman->fifo_down)) {
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
178
list_add_tail(&fence->head, &fman->fence_list);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
181
spin_unlock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
186
static u32 __vmw_fences_update(struct vmw_fence_manager *fman)
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
190
const u32 seqno = vmw_fence_read(fman->dev_priv);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
192
list_for_each_entry_safe(fence, next_fence, &fman->fence_list, head) {
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
196
vmw_seqno_waiter_remove(fman->dev_priv);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
204
atomic_set_release(&fman->dev_priv->last_read_seqno, seqno);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
208
u32 vmw_fences_update(struct vmw_fence_manager *fman)
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
211
spin_lock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
212
seqno = __vmw_fences_update(fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
213
spin_unlock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
219
struct vmw_fence_manager *fman = fman_from_fence(fence);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
224
vmw_fences_update(fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
247
int vmw_fence_create(struct vmw_fence_manager *fman,
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
258
ret = vmw_fence_obj_init(fman, fence, seqno, vmw_fence_destroy);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
291
struct vmw_fence_manager *fman,
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
307
ret = vmw_fence_obj_init(fman, &ufence->fence, seqno,
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
348
void vmw_fence_fifo_down(struct vmw_fence_manager *fman)
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
357
spin_lock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
358
fman->fifo_down = true;
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
359
while (!list_empty(&fman->fence_list)) {
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
361
list_entry(fman->fence_list.prev, struct vmw_fence_obj,
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
364
spin_unlock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
376
spin_lock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
378
spin_unlock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
381
void vmw_fence_fifo_up(struct vmw_fence_manager *fman)
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
383
spin_lock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
384
fman->fifo_down = false;
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
385
spin_unlock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
57
struct vmw_fence_manager *fman = fman_from_fence(fence);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
581
struct vmw_fence_manager *fman = fman_from_fence(fence);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
588
eaction->dev = &fman->dev_priv->drm;
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
611
struct vmw_fence_manager *fman = fman_from_fence(fence);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
612
struct drm_device *dev = &fman->dev_priv->drm;
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
71
spin_lock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
74
vmw_seqno_waiter_remove(fman->dev_priv);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
75
spin_unlock(&fman->lock);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.h
52
extern void vmw_fence_manager_takedown(struct vmw_fence_manager *fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.h
72
u32 vmw_fences_update(struct vmw_fence_manager *fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.h
80
extern int vmw_fence_create(struct vmw_fence_manager *fman,
drivers/gpu/drm/vmwgfx/vmwgfx_fence.h
85
struct vmw_fence_manager *fman,
drivers/gpu/drm/vmwgfx/vmwgfx_fence.h
90
extern void vmw_fence_fifo_up(struct vmw_fence_manager *fman);
drivers/gpu/drm/vmwgfx/vmwgfx_fence.h
92
extern void vmw_fence_fifo_down(struct vmw_fence_manager *fman);
drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
135
last_read_seqno = vmw_fences_update(dev_priv->fman);
drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
62
vmw_fences_update(dev_priv->fman);
drivers/net/ethernet/freescale/fman/fman.c
1003
iowrite32be(tmp, &fman->qmi_regs->fmqm_ien);
drivers/net/ethernet/freescale/fman/fman.c
1006
tmp = ioread32be(&fman->qmi_regs->fmqm_eien);
drivers/net/ethernet/freescale/fman/fman.c
1011
iowrite32be(tmp, &fman->qmi_regs->fmqm_eien);
drivers/net/ethernet/freescale/fman/fman.c
1014
tmp = ioread32be(&fman->qmi_regs->fmqm_eien);
drivers/net/ethernet/freescale/fman/fman.c
1019
iowrite32be(tmp, &fman->qmi_regs->fmqm_eien);
drivers/net/ethernet/freescale/fman/fman.c
1022
tmp = ioread32be(&fman->bmi_regs->fmbm_ier);
drivers/net/ethernet/freescale/fman/fman.c
1027
iowrite32be(tmp, &fman->bmi_regs->fmbm_ier);
drivers/net/ethernet/freescale/fman/fman.c
1030
tmp = ioread32be(&fman->bmi_regs->fmbm_ier);
drivers/net/ethernet/freescale/fman/fman.c
1035
iowrite32be(tmp, &fman->bmi_regs->fmbm_ier);
drivers/net/ethernet/freescale/fman/fman.c
1038
tmp = ioread32be(&fman->bmi_regs->fmbm_ier);
drivers/net/ethernet/freescale/fman/fman.c
1043
iowrite32be(tmp, &fman->bmi_regs->fmbm_ier);
drivers/net/ethernet/freescale/fman/fman.c
1046
tmp = ioread32be(&fman->bmi_regs->fmbm_ier);
drivers/net/ethernet/freescale/fman/fman.c
1051
iowrite32be(tmp, &fman->bmi_regs->fmbm_ier);
drivers/net/ethernet/freescale/fman/fman.c
1054
tmp = ioread32be(&fman->fpm_regs->fm_rie);
drivers/net/ethernet/freescale/fman/fman.c
1057
enable_rams_ecc(fman->fpm_regs);
drivers/net/ethernet/freescale/fman/fman.c
1064
disable_rams_ecc(fman->fpm_regs);
drivers/net/ethernet/freescale/fman/fman.c
1067
iowrite32be(tmp, &fman->fpm_regs->fm_rie);
drivers/net/ethernet/freescale/fman/fman.c
1070
tmp = ioread32be(&fman->fpm_regs->fm_rie);
drivers/net/ethernet/freescale/fman/fman.c
1073
enable_rams_ecc(fman->fpm_regs);
drivers/net/ethernet/freescale/fman/fman.c
1080
disable_rams_ecc(fman->fpm_regs);
drivers/net/ethernet/freescale/fman/fman.c
1083
iowrite32be(tmp, &fman->fpm_regs->fm_rie);
drivers/net/ethernet/freescale/fman/fman.c
1190
static void free_init_resources(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1192
if (fman->cam_offset)
drivers/net/ethernet/freescale/fman/fman.c
1193
fman_muram_free_mem(fman->muram, fman->cam_offset,
drivers/net/ethernet/freescale/fman/fman.c
1194
fman->cam_size);
drivers/net/ethernet/freescale/fman/fman.c
1195
if (fman->fifo_offset)
drivers/net/ethernet/freescale/fman/fman.c
1196
fman_muram_free_mem(fman->muram, fman->fifo_offset,
drivers/net/ethernet/freescale/fman/fman.c
1197
fman->fifo_size);
drivers/net/ethernet/freescale/fman/fman.c
1200
static irqreturn_t bmi_err_event(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1203
struct fman_bmi_regs __iomem *bmi_rg = fman->bmi_regs;
drivers/net/ethernet/freescale/fman/fman.c
1217
ret = fman->exception_cb(fman, FMAN_EX_BMI_STORAGE_PROFILE_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1219
ret = fman->exception_cb(fman, FMAN_EX_BMI_LIST_RAM_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1221
ret = fman->exception_cb(fman, FMAN_EX_BMI_STATISTICS_RAM_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1223
ret = fman->exception_cb(fman, FMAN_EX_BMI_DISPATCH_RAM_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1228
static irqreturn_t qmi_err_event(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1231
struct fman_qmi_regs __iomem *qmi_rg = fman->qmi_regs;
drivers/net/ethernet/freescale/fman/fman.c
1246
ret = fman->exception_cb(fman, FMAN_EX_QMI_DOUBLE_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1248
ret = fman->exception_cb(fman,
drivers/net/ethernet/freescale/fman/fman.c
1254
static irqreturn_t dma_err_event(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1259
struct fman_dma_regs __iomem *dma_rg = fman->dma_regs;
drivers/net/ethernet/freescale/fman/fman.c
1289
hw_port_id_to_sw_port_id(fman->state->rev_info.major, port_id);
drivers/net/ethernet/freescale/fman/fman.c
1293
ret = fman->bus_error_cb(fman, relative_port_id, addr, tnum,
drivers/net/ethernet/freescale/fman/fman.c
1297
ret = fman->exception_cb(fman, FMAN_EX_DMA_SINGLE_PORT_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1299
ret = fman->exception_cb(fman, FMAN_EX_DMA_READ_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1301
ret = fman->exception_cb(fman, FMAN_EX_DMA_SYSTEM_WRITE_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1303
ret = fman->exception_cb(fman, FMAN_EX_DMA_FM_WRITE_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1308
static irqreturn_t fpm_err_event(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1311
struct fman_fpm_regs __iomem *fpm_rg = fman->fpm_regs;
drivers/net/ethernet/freescale/fman/fman.c
1320
ret = fman->exception_cb(fman, FMAN_EX_FPM_DOUBLE_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1322
ret = fman->exception_cb(fman, FMAN_EX_FPM_STALL_ON_TASKS);
drivers/net/ethernet/freescale/fman/fman.c
1325
ret = fman->exception_cb(fman, FMAN_EX_FPM_SINGLE_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1330
static irqreturn_t muram_err_intr(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1333
struct fman_fpm_regs __iomem *fpm_rg = fman->fpm_regs;
drivers/net/ethernet/freescale/fman/fman.c
1343
ret = fman->exception_cb(fman, FMAN_EX_MURAM_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1348
static irqreturn_t qmi_event(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1351
struct fman_qmi_regs __iomem *qmi_rg = fman->qmi_regs;
drivers/net/ethernet/freescale/fman/fman.c
1365
ret = fman->exception_cb(fman, FMAN_EX_QMI_SINGLE_ECC);
drivers/net/ethernet/freescale/fman/fman.c
1370
static void enable_time_stamp(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1372
struct fman_fpm_regs __iomem *fpm_rg = fman->fpm_regs;
drivers/net/ethernet/freescale/fman/fman.c
1373
u16 fm_clk_freq = fman->state->fm_clk_freq;
drivers/net/ethernet/freescale/fman/fman.c
1376
ts_freq = (u32)(1 << fman->state->count1_micro_bit);
drivers/net/ethernet/freescale/fman/fman.c
1401
fman->state->enabled_time_stamp = true;
drivers/net/ethernet/freescale/fman/fman.c
1404
static int clear_iram(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1409
iram = fman->base_addr + IMEM_OFFSET;
drivers/net/ethernet/freescale/fman/fman.c
1420
for (i = 0; i < (fman->state->fm_iram_size / 4); i++)
drivers/net/ethernet/freescale/fman/fman.c
1423
iowrite32be(fman->state->fm_iram_size - 4, &iram->iadd);
drivers/net/ethernet/freescale/fman/fman.c
1524
static int set_size_of_fifo(struct fman *fman, u8 port_id, u32 *size_of_fifo,
drivers/net/ethernet/freescale/fman/fman.c
1527
struct fman_bmi_regs __iomem *bmi_rg = fman->bmi_regs;
drivers/net/ethernet/freescale/fman/fman.c
1536
if (extra_fifo && !fman->state->extra_fifo_pool_size)
drivers/net/ethernet/freescale/fman/fman.c
1537
fman->state->extra_fifo_pool_size =
drivers/net/ethernet/freescale/fman/fman.c
1538
fman->state->num_of_rx_ports * FMAN_BMI_FIFO_UNITS;
drivers/net/ethernet/freescale/fman/fman.c
1540
fman->state->extra_fifo_pool_size =
drivers/net/ethernet/freescale/fman/fman.c
1541
max(fman->state->extra_fifo_pool_size, extra_fifo);
drivers/net/ethernet/freescale/fman/fman.c
1544
if ((fman->state->accumulated_fifo_size + fifo) >
drivers/net/ethernet/freescale/fman/fman.c
1545
(fman->state->total_fifo_size -
drivers/net/ethernet/freescale/fman/fman.c
1546
fman->state->extra_fifo_pool_size)) {
drivers/net/ethernet/freescale/fman/fman.c
1547
dev_err(fman->dev, "%s: Requested fifo size and extra size exceed total FIFO size.\n",
drivers/net/ethernet/freescale/fman/fman.c
1559
fman->state->accumulated_fifo_size += fifo;
drivers/net/ethernet/freescale/fman/fman.c
1564
static int set_num_of_tasks(struct fman *fman, u8 port_id, u8 *num_of_tasks,
drivers/net/ethernet/freescale/fman/fman.c
1567
struct fman_bmi_regs __iomem *bmi_rg = fman->bmi_regs;
drivers/net/ethernet/freescale/fman/fman.c
1573
fman->state->extra_tasks_pool_size =
drivers/net/ethernet/freescale/fman/fman.c
1574
max(fman->state->extra_tasks_pool_size, extra_tasks);
drivers/net/ethernet/freescale/fman/fman.c
1577
if ((fman->state->accumulated_num_of_tasks + tasks) >
drivers/net/ethernet/freescale/fman/fman.c
1578
(fman->state->total_num_of_tasks -
drivers/net/ethernet/freescale/fman/fman.c
1579
fman->state->extra_tasks_pool_size)) {
drivers/net/ethernet/freescale/fman/fman.c
1580
dev_err(fman->dev, "%s: Requested num_of_tasks and extra tasks pool for fm%d exceed total num_of_tasks.\n",
drivers/net/ethernet/freescale/fman/fman.c
1581
__func__, fman->state->fm_id);
drivers/net/ethernet/freescale/fman/fman.c
1585
fman->state->accumulated_num_of_tasks += tasks;
drivers/net/ethernet/freescale/fman/fman.c
1597
static int set_num_of_open_dmas(struct fman *fman, u8 port_id,
drivers/net/ethernet/freescale/fman/fman.c
1601
struct fman_bmi_regs __iomem *bmi_rg = fman->bmi_regs;
drivers/net/ethernet/freescale/fman/fman.c
1623
fman->state->extra_open_dmas_pool_size =
drivers/net/ethernet/freescale/fman/fman.c
1624
(u8)max(fman->state->extra_open_dmas_pool_size,
drivers/net/ethernet/freescale/fman/fman.c
1626
fman->state->accumulated_num_of_open_dmas += current_val;
drivers/net/ethernet/freescale/fman/fman.c
1633
fman->state->extra_open_dmas_pool_size =
drivers/net/ethernet/freescale/fman/fman.c
1634
(u8)max(fman->state->extra_open_dmas_pool_size,
drivers/net/ethernet/freescale/fman/fman.c
1637
if ((fman->state->rev_info.major < 6) &&
drivers/net/ethernet/freescale/fman/fman.c
1638
(fman->state->accumulated_num_of_open_dmas - current_val +
drivers/net/ethernet/freescale/fman/fman.c
1639
open_dmas > fman->state->max_num_of_open_dmas)) {
drivers/net/ethernet/freescale/fman/fman.c
1640
dev_err(fman->dev, "%s: Requested num_of_open_dmas for fm%d exceeds total num_of_open_dmas.\n",
drivers/net/ethernet/freescale/fman/fman.c
1641
__func__, fman->state->fm_id);
drivers/net/ethernet/freescale/fman/fman.c
1643
} else if ((fman->state->rev_info.major >= 6) &&
drivers/net/ethernet/freescale/fman/fman.c
1644
!((fman->state->rev_info.major == 6) &&
drivers/net/ethernet/freescale/fman/fman.c
1645
(fman->state->rev_info.minor == 0)) &&
drivers/net/ethernet/freescale/fman/fman.c
1646
(fman->state->accumulated_num_of_open_dmas -
drivers/net/ethernet/freescale/fman/fman.c
1648
fman->state->dma_thresh_max_commq + 1)) {
drivers/net/ethernet/freescale/fman/fman.c
1649
dev_err(fman->dev, "%s: Requested num_of_open_dmas for fm%d exceeds DMA Command queue (%d)\n",
drivers/net/ethernet/freescale/fman/fman.c
1650
__func__, fman->state->fm_id,
drivers/net/ethernet/freescale/fman/fman.c
1651
fman->state->dma_thresh_max_commq + 1);
drivers/net/ethernet/freescale/fman/fman.c
1655
WARN_ON(fman->state->accumulated_num_of_open_dmas < current_val);
drivers/net/ethernet/freescale/fman/fman.c
1657
fman->state->accumulated_num_of_open_dmas -= current_val;
drivers/net/ethernet/freescale/fman/fman.c
1658
fman->state->accumulated_num_of_open_dmas += open_dmas;
drivers/net/ethernet/freescale/fman/fman.c
1660
if (fman->state->rev_info.major < 6)
drivers/net/ethernet/freescale/fman/fman.c
1662
(u8)(fman->state->accumulated_num_of_open_dmas +
drivers/net/ethernet/freescale/fman/fman.c
1663
fman->state->extra_open_dmas_pool_size);
drivers/net/ethernet/freescale/fman/fman.c
1684
static int fman_config(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1689
base_addr = fman->dts_params.base_addr;
drivers/net/ethernet/freescale/fman/fman.c
1691
fman->state = kzalloc_obj(*fman->state);
drivers/net/ethernet/freescale/fman/fman.c
1692
if (!fman->state)
drivers/net/ethernet/freescale/fman/fman.c
1696
fman->cfg = kzalloc_obj(*fman->cfg);
drivers/net/ethernet/freescale/fman/fman.c
1697
if (!fman->cfg)
drivers/net/ethernet/freescale/fman/fman.c
1701
fman->muram =
drivers/net/ethernet/freescale/fman/fman.c
1702
fman_muram_init(fman->dts_params.muram_res.start,
drivers/net/ethernet/freescale/fman/fman.c
1703
resource_size(&fman->dts_params.muram_res));
drivers/net/ethernet/freescale/fman/fman.c
1704
if (!fman->muram)
drivers/net/ethernet/freescale/fman/fman.c
1708
fman->state->fm_id = fman->dts_params.id;
drivers/net/ethernet/freescale/fman/fman.c
1709
fman->state->fm_clk_freq = fman->dts_params.clk_freq;
drivers/net/ethernet/freescale/fman/fman.c
1710
fman->state->qman_channel_base = fman->dts_params.qman_channel_base;
drivers/net/ethernet/freescale/fman/fman.c
1711
fman->state->num_of_qman_channels =
drivers/net/ethernet/freescale/fman/fman.c
1712
fman->dts_params.num_of_qman_channels;
drivers/net/ethernet/freescale/fman/fman.c
1713
fman->state->res = fman->dts_params.res;
drivers/net/ethernet/freescale/fman/fman.c
1714
fman->exception_cb = fman_exceptions;
drivers/net/ethernet/freescale/fman/fman.c
1715
fman->bus_error_cb = fman_bus_error;
drivers/net/ethernet/freescale/fman/fman.c
1716
fman->fpm_regs = base_addr + FPM_OFFSET;
drivers/net/ethernet/freescale/fman/fman.c
1717
fman->bmi_regs = base_addr + BMI_OFFSET;
drivers/net/ethernet/freescale/fman/fman.c
1718
fman->qmi_regs = base_addr + QMI_OFFSET;
drivers/net/ethernet/freescale/fman/fman.c
1719
fman->dma_regs = base_addr + DMA_OFFSET;
drivers/net/ethernet/freescale/fman/fman.c
1720
fman->hwp_regs = base_addr + HWP_OFFSET;
drivers/net/ethernet/freescale/fman/fman.c
1721
fman->kg_regs = base_addr + KG_OFFSET;
drivers/net/ethernet/freescale/fman/fman.c
1722
fman->base_addr = base_addr;
drivers/net/ethernet/freescale/fman/fman.c
1724
spin_lock_init(&fman->spinlock);
drivers/net/ethernet/freescale/fman/fman.c
1725
fman_defconfig(fman->cfg);
drivers/net/ethernet/freescale/fman/fman.c
1727
fman->state->extra_fifo_pool_size = 0;
drivers/net/ethernet/freescale/fman/fman.c
1728
fman->state->exceptions = (EX_DMA_BUS_ERROR |
drivers/net/ethernet/freescale/fman/fman.c
1745
fman_get_revision(fman, &fman->state->rev_info);
drivers/net/ethernet/freescale/fman/fman.c
1747
err = fill_soc_specific_params(fman->state);
drivers/net/ethernet/freescale/fman/fman.c
1752
if (fman->state->rev_info.major >= 6)
drivers/net/ethernet/freescale/fman/fman.c
1753
fman->cfg->dma_aid_mode = FMAN_DMA_AID_OUT_PORT_ID;
drivers/net/ethernet/freescale/fman/fman.c
1755
fman->cfg->qmi_def_tnums_thresh = fman->state->qmi_def_tnums_thresh;
drivers/net/ethernet/freescale/fman/fman.c
1757
fman->state->total_num_of_tasks =
drivers/net/ethernet/freescale/fman/fman.c
1758
(u8)DFLT_TOTAL_NUM_OF_TASKS(fman->state->rev_info.major,
drivers/net/ethernet/freescale/fman/fman.c
1759
fman->state->rev_info.minor,
drivers/net/ethernet/freescale/fman/fman.c
1760
fman->state->bmi_max_num_of_tasks);
drivers/net/ethernet/freescale/fman/fman.c
1762
if (fman->state->rev_info.major < 6) {
drivers/net/ethernet/freescale/fman/fman.c
1763
fman->cfg->dma_comm_qtsh_clr_emer =
drivers/net/ethernet/freescale/fman/fman.c
1764
(u8)DFLT_DMA_COMM_Q_LOW(fman->state->rev_info.major,
drivers/net/ethernet/freescale/fman/fman.c
1765
fman->state->dma_thresh_max_commq);
drivers/net/ethernet/freescale/fman/fman.c
1767
fman->cfg->dma_comm_qtsh_asrt_emer =
drivers/net/ethernet/freescale/fman/fman.c
1768
(u8)DFLT_DMA_COMM_Q_HIGH(fman->state->rev_info.major,
drivers/net/ethernet/freescale/fman/fman.c
1769
fman->state->dma_thresh_max_commq);
drivers/net/ethernet/freescale/fman/fman.c
1771
fman->cfg->dma_cam_num_of_entries =
drivers/net/ethernet/freescale/fman/fman.c
1772
DFLT_DMA_CAM_NUM_OF_ENTRIES(fman->state->rev_info.major);
drivers/net/ethernet/freescale/fman/fman.c
1774
fman->cfg->dma_read_buf_tsh_clr_emer =
drivers/net/ethernet/freescale/fman/fman.c
1775
DFLT_DMA_READ_INT_BUF_LOW(fman->state->dma_thresh_max_buf);
drivers/net/ethernet/freescale/fman/fman.c
1777
fman->cfg->dma_read_buf_tsh_asrt_emer =
drivers/net/ethernet/freescale/fman/fman.c
1778
DFLT_DMA_READ_INT_BUF_HIGH(fman->state->dma_thresh_max_buf);
drivers/net/ethernet/freescale/fman/fman.c
1780
fman->cfg->dma_write_buf_tsh_clr_emer =
drivers/net/ethernet/freescale/fman/fman.c
1781
DFLT_DMA_WRITE_INT_BUF_LOW(fman->state->dma_thresh_max_buf);
drivers/net/ethernet/freescale/fman/fman.c
1783
fman->cfg->dma_write_buf_tsh_asrt_emer =
drivers/net/ethernet/freescale/fman/fman.c
1784
DFLT_DMA_WRITE_INT_BUF_HIGH(fman->state->dma_thresh_max_buf);
drivers/net/ethernet/freescale/fman/fman.c
1786
fman->cfg->dma_axi_dbg_num_of_beats =
drivers/net/ethernet/freescale/fman/fman.c
1793
kfree(fman->cfg);
drivers/net/ethernet/freescale/fman/fman.c
1795
kfree(fman->state);
drivers/net/ethernet/freescale/fman/fman.c
1797
kfree(fman);
drivers/net/ethernet/freescale/fman/fman.c
1801
static int fman_reset(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1806
if (fman->state->rev_info.major < 6) {
drivers/net/ethernet/freescale/fman/fman.c
1807
iowrite32be(FPM_RSTC_FM_RESET, &fman->fpm_regs->fm_rstc);
drivers/net/ethernet/freescale/fman/fman.c
1812
} while (((ioread32be(&fman->fpm_regs->fm_rstc)) &
drivers/net/ethernet/freescale/fman/fman.c
1829
dev_err(fman->dev, "%s: Couldn't find guts node\n",
drivers/net/ethernet/freescale/fman/fman.c
1836
dev_err(fman->dev, "%s: Couldn't map %pOF regs\n",
drivers/net/ethernet/freescale/fman/fman.c
1844
if (fman->dts_params.id == 0)
drivers/net/ethernet/freescale/fman/fman.c
1854
iowrite32be(FPM_RSTC_FM_RESET, &fman->fpm_regs->fm_rstc);
drivers/net/ethernet/freescale/fman/fman.c
1860
} while (((ioread32be(&fman->fpm_regs->fm_rstc)) &
drivers/net/ethernet/freescale/fman/fman.c
1885
dev_dbg(fman->dev, "%s: Didn't perform FManV3 reset due to Errata A007273!\n",
drivers/net/ethernet/freescale/fman/fman.c
1893
static int fman_init(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
1898
if (is_init_done(fman->cfg))
drivers/net/ethernet/freescale/fman/fman.c
1901
fman->state->count1_micro_bit = FM_TIMESTAMP_1_USEC_BIT;
drivers/net/ethernet/freescale/fman/fman.c
1903
cfg = fman->cfg;
drivers/net/ethernet/freescale/fman/fman.c
1906
if (fman->state->rev_info.major < 6)
drivers/net/ethernet/freescale/fman/fman.c
1907
fman->state->exceptions &= ~FMAN_EX_BMI_DISPATCH_RAM_ECC;
drivers/net/ethernet/freescale/fman/fman.c
1909
if (fman->state->rev_info.major >= 6)
drivers/net/ethernet/freescale/fman/fman.c
1910
fman->state->exceptions &= ~FMAN_EX_QMI_SINGLE_ECC;
drivers/net/ethernet/freescale/fman/fman.c
1913
memset_io((void __iomem *)(fman->base_addr + CGP_OFFSET), 0,
drivers/net/ethernet/freescale/fman/fman.c
1914
fman->state->fm_port_num_of_cg);
drivers/net/ethernet/freescale/fman/fman.c
1922
fman->liodn_offset[i] =
drivers/net/ethernet/freescale/fman/fman.c
1923
ioread32be(&fman->bmi_regs->fmbm_spliodn[i - 1]);
drivers/net/ethernet/freescale/fman/fman.c
1926
liodn_base = ioread32be(&fman->dma_regs->fmdmplr[i / 2]);
drivers/net/ethernet/freescale/fman/fman.c
1935
fman->liodn_base[i] = liodn_base;
drivers/net/ethernet/freescale/fman/fman.c
1938
err = fman_reset(fman);
drivers/net/ethernet/freescale/fman/fman.c
1942
if (ioread32be(&fman->qmi_regs->fmqm_gs) & QMI_GS_HALT_NOT_BUSY) {
drivers/net/ethernet/freescale/fman/fman.c
1943
resume(fman->fpm_regs);
drivers/net/ethernet/freescale/fman/fman.c
1948
} while (((ioread32be(&fman->qmi_regs->fmqm_gs)) &
drivers/net/ethernet/freescale/fman/fman.c
1951
dev_warn(fman->dev, "%s: QMI is in halt not busy state\n",
drivers/net/ethernet/freescale/fman/fman.c
1955
if (clear_iram(fman) != 0)
drivers/net/ethernet/freescale/fman/fman.c
1958
cfg->exceptions = fman->state->exceptions;
drivers/net/ethernet/freescale/fman/fman.c
1962
err = dma_init(fman);
drivers/net/ethernet/freescale/fman/fman.c
1964
free_init_resources(fman);
drivers/net/ethernet/freescale/fman/fman.c
1969
fpm_init(fman->fpm_regs, fman->cfg);
drivers/net/ethernet/freescale/fman/fman.c
1973
fman->fifo_offset = fman_muram_alloc(fman->muram,
drivers/net/ethernet/freescale/fman/fman.c
1974
fman->state->total_fifo_size);
drivers/net/ethernet/freescale/fman/fman.c
1975
if (IS_ERR_VALUE(fman->fifo_offset)) {
drivers/net/ethernet/freescale/fman/fman.c
1976
free_init_resources(fman);
drivers/net/ethernet/freescale/fman/fman.c
1977
dev_err(fman->dev, "%s: MURAM alloc for BMI FIFO failed\n",
drivers/net/ethernet/freescale/fman/fman.c
1982
cfg->fifo_base_addr = fman->fifo_offset;
drivers/net/ethernet/freescale/fman/fman.c
1983
cfg->total_fifo_size = fman->state->total_fifo_size;
drivers/net/ethernet/freescale/fman/fman.c
1984
cfg->total_num_of_tasks = fman->state->total_num_of_tasks;
drivers/net/ethernet/freescale/fman/fman.c
1985
cfg->clk_freq = fman->state->fm_clk_freq;
drivers/net/ethernet/freescale/fman/fman.c
1988
bmi_init(fman->bmi_regs, fman->cfg);
drivers/net/ethernet/freescale/fman/fman.c
1991
qmi_init(fman->qmi_regs, fman->cfg);
drivers/net/ethernet/freescale/fman/fman.c
1994
hwp_init(fman->hwp_regs);
drivers/net/ethernet/freescale/fman/fman.c
1997
fman->keygen = keygen_init(fman->kg_regs);
drivers/net/ethernet/freescale/fman/fman.c
1998
if (!fman->keygen)
drivers/net/ethernet/freescale/fman/fman.c
2001
err = enable(fman, cfg);
drivers/net/ethernet/freescale/fman/fman.c
2005
enable_time_stamp(fman);
drivers/net/ethernet/freescale/fman/fman.c
2007
kfree(fman->cfg);
drivers/net/ethernet/freescale/fman/fman.c
2008
fman->cfg = NULL;
drivers/net/ethernet/freescale/fman/fman.c
2013
static int fman_set_exception(struct fman *fman,
drivers/net/ethernet/freescale/fman/fman.c
2018
if (!is_init_done(fman->cfg))
drivers/net/ethernet/freescale/fman/fman.c
2024
fman->state->exceptions |= bit_mask;
drivers/net/ethernet/freescale/fman/fman.c
2026
fman->state->exceptions &= ~bit_mask;
drivers/net/ethernet/freescale/fman/fman.c
2028
dev_err(fman->dev, "%s: Undefined exception (%d)\n",
drivers/net/ethernet/freescale/fman/fman.c
2033
return set_exception(fman, exception, enable);
drivers/net/ethernet/freescale/fman/fman.c
2049
void fman_register_intr(struct fman *fman, enum fman_event_modules module,
drivers/net/ethernet/freescale/fman/fman.c
2059
fman->intr_mng[event].isr_cb = isr_cb;
drivers/net/ethernet/freescale/fman/fman.c
2060
fman->intr_mng[event].src_handle = src_arg;
drivers/net/ethernet/freescale/fman/fman.c
2075
void fman_unregister_intr(struct fman *fman, enum fman_event_modules module,
drivers/net/ethernet/freescale/fman/fman.c
2083
fman->intr_mng[event].isr_cb = NULL;
drivers/net/ethernet/freescale/fman/fman.c
2084
fman->intr_mng[event].src_handle = NULL;
drivers/net/ethernet/freescale/fman/fman.c
2097
int fman_set_port_params(struct fman *fman,
drivers/net/ethernet/freescale/fman/fman.c
2104
spin_lock_irqsave(&fman->spinlock, flags);
drivers/net/ethernet/freescale/fman/fman.c
2106
err = set_num_of_tasks(fman, port_params->port_id,
drivers/net/ethernet/freescale/fman/fman.c
2117
fman->state->accumulated_num_of_deq_tnums +=
drivers/net/ethernet/freescale/fman/fman.c
2119
enq_th = (ioread32be(&fman->qmi_regs->fmqm_gc) &
drivers/net/ethernet/freescale/fman/fman.c
2124
if (enq_th >= (fman->state->qmi_max_num_of_tnums -
drivers/net/ethernet/freescale/fman/fman.c
2125
fman->state->accumulated_num_of_deq_tnums)) {
drivers/net/ethernet/freescale/fman/fman.c
2127
fman->state->qmi_max_num_of_tnums -
drivers/net/ethernet/freescale/fman/fman.c
2128
fman->state->accumulated_num_of_deq_tnums - 1;
drivers/net/ethernet/freescale/fman/fman.c
2130
reg = ioread32be(&fman->qmi_regs->fmqm_gc);
drivers/net/ethernet/freescale/fman/fman.c
2133
iowrite32be(reg, &fman->qmi_regs->fmqm_gc);
drivers/net/ethernet/freescale/fman/fman.c
2136
deq_th = ioread32be(&fman->qmi_regs->fmqm_gc) &
drivers/net/ethernet/freescale/fman/fman.c
2143
if ((deq_th <= fman->state->accumulated_num_of_deq_tnums) &&
drivers/net/ethernet/freescale/fman/fman.c
2144
(deq_th < fman->state->qmi_max_num_of_tnums - 1)) {
drivers/net/ethernet/freescale/fman/fman.c
2145
deq_th = fman->state->accumulated_num_of_deq_tnums + 1;
drivers/net/ethernet/freescale/fman/fman.c
2146
reg = ioread32be(&fman->qmi_regs->fmqm_gc);
drivers/net/ethernet/freescale/fman/fman.c
2149
iowrite32be(reg, &fman->qmi_regs->fmqm_gc);
drivers/net/ethernet/freescale/fman/fman.c
2153
err = set_size_of_fifo(fman, port_params->port_id,
drivers/net/ethernet/freescale/fman/fman.c
2159
err = set_num_of_open_dmas(fman, port_params->port_id,
drivers/net/ethernet/freescale/fman/fman.c
2165
set_port_liodn(fman, port_id, fman->liodn_base[port_id],
drivers/net/ethernet/freescale/fman/fman.c
2166
fman->liodn_offset[port_id]);
drivers/net/ethernet/freescale/fman/fman.c
2168
if (fman->state->rev_info.major < 6)
drivers/net/ethernet/freescale/fman/fman.c
2169
set_port_order_restoration(fman->fpm_regs, port_id);
drivers/net/ethernet/freescale/fman/fman.c
2171
mac_id = hw_port_id_to_sw_port_id(fman->state->rev_info.major, port_id);
drivers/net/ethernet/freescale/fman/fman.c
2173
if (port_params->max_frame_length >= fman->state->mac_mfl[mac_id]) {
drivers/net/ethernet/freescale/fman/fman.c
2174
fman->state->port_mfl[mac_id] = port_params->max_frame_length;
drivers/net/ethernet/freescale/fman/fman.c
2176
dev_warn(fman->dev, "%s: Port (%d) max_frame_length is smaller than MAC (%d) current MTU\n",
drivers/net/ethernet/freescale/fman/fman.c
2182
spin_unlock_irqrestore(&fman->spinlock, flags);
drivers/net/ethernet/freescale/fman/fman.c
2187
spin_unlock_irqrestore(&fman->spinlock, flags);
drivers/net/ethernet/freescale/fman/fman.c
2201
int fman_reset_mac(struct fman *fman, u8 mac_id)
drivers/net/ethernet/freescale/fman/fman.c
2203
struct fman_fpm_regs __iomem *fpm_rg = fman->fpm_regs;
drivers/net/ethernet/freescale/fman/fman.c
2206
if (fman->state->rev_info.major >= 6) {
drivers/net/ethernet/freescale/fman/fman.c
2207
dev_err(fman->dev, "%s: FMan MAC reset no available for FMan V3!\n",
drivers/net/ethernet/freescale/fman/fman.c
2245
dev_warn(fman->dev, "%s: Illegal MAC Id [%d]\n",
drivers/net/ethernet/freescale/fman/fman.c
2272
int fman_set_mac_max_frame(struct fman *fman, u8 mac_id, u16 mfl)
drivers/net/ethernet/freescale/fman/fman.c
2277
if ((!fman->state->port_mfl[mac_id]) ||
drivers/net/ethernet/freescale/fman/fman.c
2278
(mfl <= fman->state->port_mfl[mac_id])) {
drivers/net/ethernet/freescale/fman/fman.c
2279
fman->state->mac_mfl[mac_id] = mfl;
drivers/net/ethernet/freescale/fman/fman.c
2281
dev_warn(fman->dev, "%s: MAC max_frame_length is larger than Port max_frame_length\n",
drivers/net/ethernet/freescale/fman/fman.c
2297
u16 fman_get_clock_freq(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
2299
return fman->state->fm_clk_freq;
drivers/net/ethernet/freescale/fman/fman.c
2310
u32 fman_get_bmi_max_fifo_size(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
2312
return fman->state->bmi_max_fifo_size;
drivers/net/ethernet/freescale/fman/fman.c
2327
void fman_get_revision(struct fman *fman, struct fman_rev_info *rev_info)
drivers/net/ethernet/freescale/fman/fman.c
2331
tmp = ioread32be(&fman->fpm_regs->fm_ip_rev_1);
drivers/net/ethernet/freescale/fman/fman.c
2347
u32 fman_get_qman_channel_id(struct fman *fman, u32 port_id)
drivers/net/ethernet/freescale/fman/fman.c
2351
if (fman->state->rev_info.major >= 6) {
drivers/net/ethernet/freescale/fman/fman.c
2357
for (i = 0; i < fman->state->num_of_qman_channels; i++) {
drivers/net/ethernet/freescale/fman/fman.c
2367
for (i = 0; i < fman->state->num_of_qman_channels; i++) {
drivers/net/ethernet/freescale/fman/fman.c
2373
if (i == fman->state->num_of_qman_channels)
drivers/net/ethernet/freescale/fman/fman.c
2376
return fman->state->qman_channel_base + i;
drivers/net/ethernet/freescale/fman/fman.c
2388
struct resource *fman_get_mem_region(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
2390
return fman->state->res;
drivers/net/ethernet/freescale/fman/fman.c
2492
struct fman *fman_bind(struct device *fm_dev)
drivers/net/ethernet/freescale/fman/fman.c
2494
return (struct fman *)(dev_get_drvdata(get_device(fm_dev)));
drivers/net/ethernet/freescale/fman/fman.c
2508
struct fman *fman = (struct fman *)handle;
drivers/net/ethernet/freescale/fman/fman.c
2513
if (!is_init_done(fman->cfg))
drivers/net/ethernet/freescale/fman/fman.c
2516
fpm_rg = fman->fpm_regs;
drivers/net/ethernet/freescale/fman/fman.c
2524
single_ret = bmi_err_event(fman);
drivers/net/ethernet/freescale/fman/fman.c
2529
single_ret = qmi_err_event(fman);
drivers/net/ethernet/freescale/fman/fman.c
2534
single_ret = fpm_err_event(fman);
drivers/net/ethernet/freescale/fman/fman.c
2539
single_ret = dma_err_event(fman);
drivers/net/ethernet/freescale/fman/fman.c
2544
single_ret = muram_err_intr(fman);
drivers/net/ethernet/freescale/fman/fman.c
2551
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 0);
drivers/net/ethernet/freescale/fman/fman.c
2556
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 1);
drivers/net/ethernet/freescale/fman/fman.c
2561
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 2);
drivers/net/ethernet/freescale/fman/fman.c
2566
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 3);
drivers/net/ethernet/freescale/fman/fman.c
2571
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 4);
drivers/net/ethernet/freescale/fman/fman.c
2576
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 5);
drivers/net/ethernet/freescale/fman/fman.c
2581
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 6);
drivers/net/ethernet/freescale/fman/fman.c
2586
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 7);
drivers/net/ethernet/freescale/fman/fman.c
2591
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 8);
drivers/net/ethernet/freescale/fman/fman.c
2596
single_ret = call_mac_isr(fman, FMAN_EV_ERR_MAC0 + 9);
drivers/net/ethernet/freescale/fman/fman.c
2606
struct fman *fman = (struct fman *)handle;
drivers/net/ethernet/freescale/fman/fman.c
2611
if (!is_init_done(fman->cfg))
drivers/net/ethernet/freescale/fman/fman.c
2614
fpm_rg = fman->fpm_regs;
drivers/net/ethernet/freescale/fman/fman.c
2622
single_ret = qmi_event(fman);
drivers/net/ethernet/freescale/fman/fman.c
2629
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 0);
drivers/net/ethernet/freescale/fman/fman.c
2634
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 1);
drivers/net/ethernet/freescale/fman/fman.c
2639
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 2);
drivers/net/ethernet/freescale/fman/fman.c
2644
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 3);
drivers/net/ethernet/freescale/fman/fman.c
2649
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 4);
drivers/net/ethernet/freescale/fman/fman.c
2654
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 5);
drivers/net/ethernet/freescale/fman/fman.c
2659
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 6);
drivers/net/ethernet/freescale/fman/fman.c
2664
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 7);
drivers/net/ethernet/freescale/fman/fman.c
2669
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 8);
drivers/net/ethernet/freescale/fman/fman.c
2674
single_ret = call_mac_isr(fman, FMAN_EV_MAC0 + 9);
drivers/net/ethernet/freescale/fman/fman.c
2689
static struct fman *read_dts_node(struct platform_device *of_dev)
drivers/net/ethernet/freescale/fman/fman.c
2691
struct fman *fman;
drivers/net/ethernet/freescale/fman/fman.c
2700
fman = kzalloc_obj(*fman);
drivers/net/ethernet/freescale/fman/fman.c
2701
if (!fman)
drivers/net/ethernet/freescale/fman/fman.c
2712
fman->dts_params.id = (u8)val;
drivers/net/ethernet/freescale/fman/fman.c
2724
fman->dts_params.err_irq = err;
drivers/net/ethernet/freescale/fman/fman.c
2730
__func__, fman->dts_params.id);
drivers/net/ethernet/freescale/fman/fman.c
2738
__func__, fman->dts_params.id);
drivers/net/ethernet/freescale/fman/fman.c
2742
fman->dts_params.clk_freq = DIV_ROUND_UP(clk_rate, 1000000);
drivers/net/ethernet/freescale/fman/fman.c
2751
fman->dts_params.qman_channel_base = range[0];
drivers/net/ethernet/freescale/fman/fman.c
2752
fman->dts_params.num_of_qman_channels = range[1];
drivers/net/ethernet/freescale/fman/fman.c
2764
&fman->dts_params.muram_res);
drivers/net/ethernet/freescale/fman/fman.c
2775
"fman", fman);
drivers/net/ethernet/freescale/fman/fman.c
2782
if (fman->dts_params.err_irq != 0) {
drivers/net/ethernet/freescale/fman/fman.c
2783
err = devm_request_irq(&of_dev->dev, fman->dts_params.err_irq,
drivers/net/ethernet/freescale/fman/fman.c
2785
"fman-err", fman);
drivers/net/ethernet/freescale/fman/fman.c
2788
__func__, fman->dts_params.err_irq, err);
drivers/net/ethernet/freescale/fman/fman.c
2800
fman->dts_params.base_addr = base_addr;
drivers/net/ethernet/freescale/fman/fman.c
2801
fman->dts_params.res = res;
drivers/net/ethernet/freescale/fman/fman.c
2803
fman->dev = &of_dev->dev;
drivers/net/ethernet/freescale/fman/fman.c
2817
return fman;
drivers/net/ethernet/freescale/fman/fman.c
2822
kfree(fman);
drivers/net/ethernet/freescale/fman/fman.c
2828
struct fman *fman;
drivers/net/ethernet/freescale/fman/fman.c
2834
fman = read_dts_node(of_dev);
drivers/net/ethernet/freescale/fman/fman.c
2835
if (IS_ERR(fman))
drivers/net/ethernet/freescale/fman/fman.c
2836
return PTR_ERR(fman);
drivers/net/ethernet/freescale/fman/fman.c
2838
err = fman_config(fman);
drivers/net/ethernet/freescale/fman/fman.c
2844
if (fman_init(fman) != 0) {
drivers/net/ethernet/freescale/fman/fman.c
2849
if (fman->dts_params.err_irq == 0) {
drivers/net/ethernet/freescale/fman/fman.c
2850
fman_set_exception(fman, FMAN_EX_DMA_BUS_ERROR, false);
drivers/net/ethernet/freescale/fman/fman.c
2851
fman_set_exception(fman, FMAN_EX_DMA_READ_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2852
fman_set_exception(fman, FMAN_EX_DMA_SYSTEM_WRITE_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2853
fman_set_exception(fman, FMAN_EX_DMA_FM_WRITE_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2854
fman_set_exception(fman, FMAN_EX_DMA_SINGLE_PORT_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2855
fman_set_exception(fman, FMAN_EX_FPM_STALL_ON_TASKS, false);
drivers/net/ethernet/freescale/fman/fman.c
2856
fman_set_exception(fman, FMAN_EX_FPM_SINGLE_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2857
fman_set_exception(fman, FMAN_EX_FPM_DOUBLE_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2858
fman_set_exception(fman, FMAN_EX_QMI_SINGLE_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2859
fman_set_exception(fman, FMAN_EX_QMI_DOUBLE_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2860
fman_set_exception(fman,
drivers/net/ethernet/freescale/fman/fman.c
2862
fman_set_exception(fman, FMAN_EX_BMI_LIST_RAM_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2863
fman_set_exception(fman, FMAN_EX_BMI_STORAGE_PROFILE_ECC,
drivers/net/ethernet/freescale/fman/fman.c
2865
fman_set_exception(fman, FMAN_EX_BMI_STATISTICS_RAM_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2866
fman_set_exception(fman, FMAN_EX_BMI_DISPATCH_RAM_ECC, false);
drivers/net/ethernet/freescale/fman/fman.c
2869
dev_set_drvdata(dev, fman);
drivers/net/ethernet/freescale/fman/fman.c
2871
dev_dbg(dev, "FMan%d probed\n", fman->dts_params.id);
drivers/net/ethernet/freescale/fman/fman.c
547
static irqreturn_t fman_exceptions(struct fman *fman,
drivers/net/ethernet/freescale/fman/fman.c
550
dev_dbg(fman->dev, "%s: FMan[%d] exception %d\n",
drivers/net/ethernet/freescale/fman/fman.c
551
__func__, fman->state->fm_id, exception);
drivers/net/ethernet/freescale/fman/fman.c
556
static irqreturn_t fman_bus_error(struct fman *fman, u8 __maybe_unused port_id,
drivers/net/ethernet/freescale/fman/fman.c
561
dev_dbg(fman->dev, "%s: FMan[%d] bus error: port_id[%d]\n",
drivers/net/ethernet/freescale/fman/fman.c
562
__func__, fman->state->fm_id, port_id);
drivers/net/ethernet/freescale/fman/fman.c
567
static inline irqreturn_t call_mac_isr(struct fman *fman, u8 id)
drivers/net/ethernet/freescale/fman/fman.c
569
if (fman->intr_mng[id].isr_cb) {
drivers/net/ethernet/freescale/fman/fman.c
570
fman->intr_mng[id].isr_cb(fman->intr_mng[id].src_handle);
drivers/net/ethernet/freescale/fman/fman.c
610
static void set_port_liodn(struct fman *fman, u8 port_id,
drivers/net/ethernet/freescale/fman/fman.c
615
iowrite32be(liodn_ofst, &fman->bmi_regs->fmbm_spliodn[port_id - 1]);
drivers/net/ethernet/freescale/fman/fman.c
619
tmp = ioread32be(&fman->dma_regs->fmdmplr[port_id / 2]);
drivers/net/ethernet/freescale/fman/fman.c
627
iowrite32be(tmp, &fman->dma_regs->fmdmplr[port_id / 2]);
drivers/net/ethernet/freescale/fman/fman.c
679
static int dma_init(struct fman *fman)
drivers/net/ethernet/freescale/fman/fman.c
681
struct fman_dma_regs __iomem *dma_rg = fman->dma_regs;
drivers/net/ethernet/freescale/fman/fman.c
682
struct fman_cfg *cfg = fman->cfg;
drivers/net/ethernet/freescale/fman/fman.c
743
fman->cam_size =
drivers/net/ethernet/freescale/fman/fman.c
744
(u32)(fman->cfg->dma_cam_num_of_entries * DMA_CAM_SIZEOF_ENTRY);
drivers/net/ethernet/freescale/fman/fman.c
745
fman->cam_offset = fman_muram_alloc(fman->muram, fman->cam_size);
drivers/net/ethernet/freescale/fman/fman.c
746
if (IS_ERR_VALUE(fman->cam_offset)) {
drivers/net/ethernet/freescale/fman/fman.c
747
dev_err(fman->dev, "%s: MURAM alloc for DMA CAM failed\n",
drivers/net/ethernet/freescale/fman/fman.c
752
if (fman->state->rev_info.major == 2) {
drivers/net/ethernet/freescale/fman/fman.c
755
fman_muram_free_mem(fman->muram, fman->cam_offset,
drivers/net/ethernet/freescale/fman/fman.c
756
fman->cam_size);
drivers/net/ethernet/freescale/fman/fman.c
758
fman->cam_size = fman->cfg->dma_cam_num_of_entries * 72 + 128;
drivers/net/ethernet/freescale/fman/fman.c
759
fman->cam_offset = fman_muram_alloc(fman->muram,
drivers/net/ethernet/freescale/fman/fman.c
760
fman->cam_size);
drivers/net/ethernet/freescale/fman/fman.c
761
if (IS_ERR_VALUE(fman->cam_offset)) {
drivers/net/ethernet/freescale/fman/fman.c
762
dev_err(fman->dev, "%s: MURAM alloc for DMA CAM failed\n",
drivers/net/ethernet/freescale/fman/fman.c
767
if (fman->cfg->dma_cam_num_of_entries % 8 ||
drivers/net/ethernet/freescale/fman/fman.c
768
fman->cfg->dma_cam_num_of_entries > 32) {
drivers/net/ethernet/freescale/fman/fman.c
769
dev_err(fman->dev, "%s: wrong dma_cam_num_of_entries\n",
drivers/net/ethernet/freescale/fman/fman.c
775
fman_muram_offset_to_vbase(fman->muram,
drivers/net/ethernet/freescale/fman/fman.c
776
fman->cam_offset);
drivers/net/ethernet/freescale/fman/fman.c
778
(32 - fman->cfg->dma_cam_num_of_entries)) - 1),
drivers/net/ethernet/freescale/fman/fman.c
782
fman->cfg->cam_base_addr = fman->cam_offset;
drivers/net/ethernet/freescale/fman/fman.c
927
static int enable(struct fman *fman, struct fman_cfg *cfg)
drivers/net/ethernet/freescale/fman/fman.c
941
iowrite32be(BMI_INIT_START, &fman->bmi_regs->fmbm_init);
drivers/net/ethernet/freescale/fman/fman.c
943
&fman->qmi_regs->fmqm_gc);
drivers/net/ethernet/freescale/fman/fman.c
948
static int set_exception(struct fman *fman,
drivers/net/ethernet/freescale/fman/fman.c
955
tmp = ioread32be(&fman->dma_regs->fmdmmr);
drivers/net/ethernet/freescale/fman/fman.c
961
iowrite32be(tmp, &fman->dma_regs->fmdmmr);
drivers/net/ethernet/freescale/fman/fman.c
966
tmp = ioread32be(&fman->dma_regs->fmdmmr);
drivers/net/ethernet/freescale/fman/fman.c
971
iowrite32be(tmp, &fman->dma_regs->fmdmmr);
drivers/net/ethernet/freescale/fman/fman.c
974
tmp = ioread32be(&fman->fpm_regs->fmfp_ee);
drivers/net/ethernet/freescale/fman/fman.c
979
iowrite32be(tmp, &fman->fpm_regs->fmfp_ee);
drivers/net/ethernet/freescale/fman/fman.c
982
tmp = ioread32be(&fman->fpm_regs->fmfp_ee);
drivers/net/ethernet/freescale/fman/fman.c
987
iowrite32be(tmp, &fman->fpm_regs->fmfp_ee);
drivers/net/ethernet/freescale/fman/fman.c
990
tmp = ioread32be(&fman->fpm_regs->fmfp_ee);
drivers/net/ethernet/freescale/fman/fman.c
995
iowrite32be(tmp, &fman->fpm_regs->fmfp_ee);
drivers/net/ethernet/freescale/fman/fman.c
998
tmp = ioread32be(&fman->qmi_regs->fmqm_ien);
drivers/net/ethernet/freescale/fman/fman.h
266
typedef irqreturn_t (fman_exceptions_cb)(struct fman *fman,
drivers/net/ethernet/freescale/fman/fman.h
280
typedef irqreturn_t (fman_bus_error_cb)(struct fman *fman, u8 port_id,
drivers/net/ethernet/freescale/fman/fman.h
350
void fman_get_revision(struct fman *fman, struct fman_rev_info *rev_info);
drivers/net/ethernet/freescale/fman/fman.h
352
void fman_register_intr(struct fman *fman, enum fman_event_modules mod,
drivers/net/ethernet/freescale/fman/fman.h
356
void fman_unregister_intr(struct fman *fman, enum fman_event_modules mod,
drivers/net/ethernet/freescale/fman/fman.h
359
int fman_set_port_params(struct fman *fman,
drivers/net/ethernet/freescale/fman/fman.h
362
int fman_reset_mac(struct fman *fman, u8 mac_id);
drivers/net/ethernet/freescale/fman/fman.h
364
u16 fman_get_clock_freq(struct fman *fman);
drivers/net/ethernet/freescale/fman/fman.h
366
u32 fman_get_bmi_max_fifo_size(struct fman *fman);
drivers/net/ethernet/freescale/fman/fman.h
368
int fman_set_mac_max_frame(struct fman *fman, u8 mac_id, u16 mfl);
drivers/net/ethernet/freescale/fman/fman.h
370
u32 fman_get_qman_channel_id(struct fman *fman, u32 port_id);
drivers/net/ethernet/freescale/fman/fman.h
372
struct resource *fman_get_mem_region(struct fman *fman);
drivers/net/ethernet/freescale/fman/fman.h
382
struct fman *fman_bind(struct device *dev);
drivers/net/ethernet/freescale/fman/fman.h
80
struct fman; /* FMan data */
drivers/net/ethernet/freescale/fman/fman_port.c
1308
port->fm = port->dts_params.fman;
drivers/net/ethernet/freescale/fman/fman_port.c
1485
keygen = port->dts_params.fman->keygen;
drivers/net/ethernet/freescale/fman/fman_port.c
1745
struct fman *fman;
drivers/net/ethernet/freescale/fman/fman_port.c
1779
fman = dev_get_drvdata(&fm_pdev->dev);
drivers/net/ethernet/freescale/fman/fman_port.c
1780
if (!fman) {
drivers/net/ethernet/freescale/fman/fman_port.c
1833
qman_channel_id = fman_get_qman_channel_id(fman, port_id);
drivers/net/ethernet/freescale/fman/fman_port.c
1851
port->dts_params.fman = fman;
drivers/net/ethernet/freescale/fman/fman_port.c
421
struct fman *fman; /* FMan Handle */
drivers/net/ethernet/freescale/fman/mac.c
168
priv->fman = fman_bind(mac_dev->fman_dev);
drivers/net/ethernet/freescale/fman/mac.c
169
if (!priv->fman) {
drivers/net/ethernet/freescale/fman/mac.c
191
err = devm_request_resource(dev, fman_get_mem_region(priv->fman),
drivers/net/ethernet/freescale/fman/mac.c
293
params.fm = (void *)priv->fman;
drivers/net/ethernet/freescale/fman/mac.c
32
struct fman *fman;