123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- // Lml 22 driver
- #define MJPG_VERSION "LML33 v0.2"
- #define NLML 2
- // The following values can be modified to tune/set default behaviour of the
- // driver.
- // The number of uS delay in I2C state transitions (probably >= 10)
- #define I2C_DELAY 50
- // The amount of spinning to do before the I2C bus is timed out
- #define I2C_TIMEOUT 10000000
- // The amount of spinning to do before the guest bus is timed out
- #define GUEST_TIMEOUT 10000000
- // The amount of spinning to do before the polling of the still
- // transfer port is aborted.
- #define STILL_TIMEOUT 1000000
- // The following number is the maximum number of cards permited. Each
- // card found is mapped to a device minor number starting from 0.
- #define MAX_CARDS 1
- // The following are the datastructures needed by the device.
- #define I2C_BUS 0x044
- // which bit of I2C_BUS is which
- #define I2C_SCL 1
- #define I2C_SDA 2
- #define INTR_JPEGREP 0x08000000
- #define INTR_GIRQ0 0x20000000
- #define INTR_STAT 0x03c
- // A Device records the properties of the various card types supported.
- typedef struct {
- int number; // The H33_CARDTYPE_ assigned
- char *card_name; // A string name
- int zr060addr; // Which guest bus address for the ZR36060
- } Device;
- // The remainder of the #defs are constants which should not need changing.
- // The PCI vendor and device ids of the zoran chipset on the dc30
- // these really belong in pci.h
- #define VENDOR_ZORAN 0x11de
- #define ZORAN_36057 0x6057
- #define ZORAN_36067 ZORAN_36057
- #define BT819Addr 0x8a
- #define BT856Addr 0x88
- #define NBUF 4
- #define FRAGM_FINAL_B 1
- #define STAT_BIT 1
- typedef struct HdrFragment HdrFragment;
- typedef struct FrameHeader FrameHeader;
- typedef union Fragment Fragment;
- typedef struct FragmentTable FragmentTable;
- typedef struct CodeData CodeData;
- //If we're on the little endian architecture, then 0xFF, 0xD8 byte sequence is
- #define MRK_SOI 0xD8FF
- #define MRK_APP3 0xE3FF
- #define APP_NAME "LML"
- struct FrameHeader { // Don't modify this struct, used by h/w
- ushort mrkSOI;
- ushort mrkAPP3;
- ushort lenAPP3;
- char nm[4];
- ushort frameNo;
- vlong ftime;
- ulong frameSize;
- ushort frameSeqNo;
- ushort SOIfiller;
- };
- #define FRAGSIZE (128*1024)
- union Fragment {
- FrameHeader fh;
- char fb[FRAGSIZE];
- };
- struct HdrFragment {
- uchar hdr[sizeof(FrameHeader)];
- Fragment;
- };
- struct FragmentTable { // Don't modify this struct, used by h/w
- ulong addr; // Physical address
- ulong leng;
- };
- struct CodeData { // Don't modify this struct, used by h/w
- ulong pamjpg; // Physical addr of statCom[0]
- ulong pagrab; // Physical addr of grab buffer
- ulong statCom[4]; // Physical addresses of fragdescs
- FragmentTable fragdesc[4];
- HdrFragment frag[4];
- };
- enum{
- Codedatasize = (sizeof(CodeData) + BY2PG - 1) & ~(BY2PG - 1),
- Grabdatasize = (730 * 568 * 2 * 2 + BY2PG - 1) & ~(BY2PG - 1),
- };
- #define POST_OFFICE 0x200
- #define POST_PEND 0x02000000
- #define POST_TIME 0x01000000
- #define POST_DIR 0x00800000
- #define GID060 0
|