提交 ca58ce57 编写于 作者: M Madalin Bucur 提交者: David S. Miller

fsl/fman: move struct fman to header file

Signed-off-by: NMadalin Bucur <madalin.bucur@nxp.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 0df49584
...@@ -32,9 +32,6 @@ ...@@ -32,9 +32,6 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include "fman.h"
#include "fman_muram.h"
#include <linux/fsl/guts.h> #include <linux/fsl/guts.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/delay.h> #include <linux/delay.h>
...@@ -46,6 +43,9 @@ ...@@ -46,6 +43,9 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/libfdt_env.h> #include <linux/libfdt_env.h>
#include "fman.h"
#include "fman_muram.h"
/* General defines */ /* General defines */
#define FMAN_LIODN_TBL 64 /* size of LIODN table */ #define FMAN_LIODN_TBL 64 /* size of LIODN table */
#define MAX_NUM_OF_MACS 10 #define MAX_NUM_OF_MACS 10
...@@ -564,80 +564,6 @@ struct fman_cfg { ...@@ -564,80 +564,6 @@ struct fman_cfg {
u32 qmi_def_tnums_thresh; u32 qmi_def_tnums_thresh;
}; };
/* Structure that holds information received from device tree */
struct fman_dts_params {
void __iomem *base_addr; /* FMan virtual address */
struct resource *res; /* FMan memory resource */
u8 id; /* FMan ID */
int err_irq; /* FMan Error IRQ */
u16 clk_freq; /* FMan clock freq (In Mhz) */
u32 qman_channel_base; /* QMan channels base */
u32 num_of_qman_channels; /* Number of QMan channels */
struct resource muram_res; /* MURAM resource */
};
/** fman_exceptions_cb
* fman - Pointer to FMan
* exception - The exception.
*
* Exceptions user callback routine, will be called upon an exception
* passing the exception identification.
*
* Return: irq status
*/
typedef irqreturn_t (fman_exceptions_cb)(struct fman *fman,
enum fman_exceptions exception);
/** fman_bus_error_cb
* fman - Pointer to FMan
* port_id - Port id
* addr - Address that caused the error
* tnum - Owner of error
* liodn - Logical IO device number
*
* Bus error user callback routine, will be called upon bus error,
* passing parameters describing the errors and the owner.
*
* Return: IRQ status
*/
typedef irqreturn_t (fman_bus_error_cb)(struct fman *fman, u8 port_id,
u64 addr, u8 tnum, u16 liodn);
struct fman {
struct device *dev;
void __iomem *base_addr;
struct fman_intr_src intr_mng[FMAN_EV_CNT];
struct fman_fpm_regs __iomem *fpm_regs;
struct fman_bmi_regs __iomem *bmi_regs;
struct fman_qmi_regs __iomem *qmi_regs;
struct fman_dma_regs __iomem *dma_regs;
struct fman_hwp_regs __iomem *hwp_regs;
fman_exceptions_cb *exception_cb;
fman_bus_error_cb *bus_error_cb;
/* Spinlock for FMan use */
spinlock_t spinlock;
struct fman_state_struct *state;
struct fman_cfg *cfg;
struct muram_info *muram;
/* cam section in muram */
unsigned long cam_offset;
size_t cam_size;
/* Fifo in MURAM */
unsigned long fifo_offset;
size_t fifo_size;
u32 liodn_base[64];
u32 liodn_offset[64];
struct fman_dts_params dts_params;
};
static irqreturn_t fman_exceptions(struct fman *fman, static irqreturn_t fman_exceptions(struct fman *fman,
enum fman_exceptions exception) enum fman_exceptions exception)
{ {
......
...@@ -34,6 +34,8 @@ ...@@ -34,6 +34,8 @@
#define __FM_H #define __FM_H
#include <linux/io.h> #include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/of_irq.h>
/* FM Frame descriptor macros */ /* FM Frame descriptor macros */
/* Frame queue Context Override */ /* Frame queue Context Override */
...@@ -274,6 +276,79 @@ struct fman_intr_src { ...@@ -274,6 +276,79 @@ struct fman_intr_src {
void *src_handle; void *src_handle;
}; };
/** fman_exceptions_cb
* fman - Pointer to FMan
* exception - The exception.
*
* Exceptions user callback routine, will be called upon an exception
* passing the exception identification.
*
* Return: irq status
*/
typedef irqreturn_t (fman_exceptions_cb)(struct fman *fman,
enum fman_exceptions exception);
/** fman_bus_error_cb
* fman - Pointer to FMan
* port_id - Port id
* addr - Address that caused the error
* tnum - Owner of error
* liodn - Logical IO device number
*
* Bus error user callback routine, will be called upon bus error,
* passing parameters describing the errors and the owner.
*
* Return: IRQ status
*/
typedef irqreturn_t (fman_bus_error_cb)(struct fman *fman, u8 port_id,
u64 addr, u8 tnum, u16 liodn);
/* Structure that holds information received from device tree */
struct fman_dts_params {
void __iomem *base_addr; /* FMan virtual address */
struct resource *res; /* FMan memory resource */
u8 id; /* FMan ID */
int err_irq; /* FMan Error IRQ */
u16 clk_freq; /* FMan clock freq (In Mhz) */
u32 qman_channel_base; /* QMan channels base */
u32 num_of_qman_channels; /* Number of QMan channels */
struct resource muram_res; /* MURAM resource */
};
struct fman {
struct device *dev;
void __iomem *base_addr;
struct fman_intr_src intr_mng[FMAN_EV_CNT];
struct fman_fpm_regs __iomem *fpm_regs;
struct fman_bmi_regs __iomem *bmi_regs;
struct fman_qmi_regs __iomem *qmi_regs;
struct fman_dma_regs __iomem *dma_regs;
struct fman_hwp_regs __iomem *hwp_regs;
fman_exceptions_cb *exception_cb;
fman_bus_error_cb *bus_error_cb;
/* Spinlock for FMan use */
spinlock_t spinlock;
struct fman_state_struct *state;
struct fman_cfg *cfg;
struct muram_info *muram;
/* cam section in muram */
unsigned long cam_offset;
size_t cam_size;
/* Fifo in MURAM */
unsigned long fifo_offset;
size_t fifo_size;
u32 liodn_base[64];
u32 liodn_offset[64];
struct fman_dts_params dts_params;
};
/* Structure for port-FM communication during fman_port_init. */ /* Structure for port-FM communication during fman_port_init. */
struct fman_port_init_params { struct fman_port_init_params {
u8 port_id; /* port Id */ u8 port_id; /* port Id */
......
...@@ -32,10 +32,6 @@ ...@@ -32,10 +32,6 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include "fman_port.h"
#include "fman.h"
#include "fman_sp.h"
#include <linux/io.h> #include <linux/io.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/module.h> #include <linux/module.h>
...@@ -45,6 +41,10 @@ ...@@ -45,6 +41,10 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/libfdt_env.h> #include <linux/libfdt_env.h>
#include "fman.h"
#include "fman_port.h"
#include "fman_sp.h"
/* Queue ID */ /* Queue ID */
#define DFLT_FQ_ID 0x00FFFFFF #define DFLT_FQ_ID 0x00FFFFFF
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册