3 #define MJPG_VERSION "LML33 v0.2"
7 * The following values can be modified to tune/set default behaviour of the
11 /* The number of uS delay in I2C state transitions (probably >= 10) */
14 /* The amount of spinning to do before the I2C bus is timed out */
15 #define I2C_TIMEOUT 10000000
17 /* The amount of spinning to do before the guest bus is timed out */
18 #define GUEST_TIMEOUT 10000000
21 * The amount of spinning to do before the polling of the still
22 * transfer port is aborted.
24 #define STILL_TIMEOUT 1000000
27 * The following number is the maximum number of cards permited. Each
28 * card found is mapped to a device minor number starting from 0.
32 /* The following are the datastructures needed by the device. */
34 /* which bit of I2C_BUS is which */
37 #define INTR_JPEGREP 0x08000000
38 #define INTR_GIRQ0 0x20000000
39 #define INTR_STAT 0x03c
41 /* A Device records the properties of the various card types supported. */
43 int number; /* The H33_CARDTYPE_ assigned */
44 char *card_name; /* A string name */
45 int zr060addr; /* Which guest bus address for the ZR36060 */
49 * The remainder of the #defs are constants which should not need changing.
51 * The PCI vendor and device ids of the zoran chipset on the dc30.
52 * these really belong in pci.h.
54 #define VENDOR_ZORAN 0x11de
55 #define ZORAN_36057 0x6057
56 #define ZORAN_36067 ZORAN_36057
58 #define BT819Addr 0x8a
59 #define BT856Addr 0x88
63 #define FRAGM_FINAL_B 1
66 typedef struct HdrFragment HdrFragment;
67 typedef struct FrameHeader FrameHeader;
68 typedef union Fragment Fragment;
69 typedef struct FragmentTable FragmentTable;
70 typedef struct CodeData CodeData;
72 /* If we're on a little endian architecture, then 0xFF, 0xD8 byte sequence is */
73 #define MRK_SOI 0xD8FF
74 #define MRK_APP3 0xE3FF
75 #define APP_NAME "LML"
77 struct FrameHeader { /* Don't modify this struct, used by h/w */
89 #define FRAGSIZE (128*1024)
97 uchar hdr[sizeof(FrameHeader)];
101 struct FragmentTable { /* Don't modify this struct, used by h/w */
102 ulong addr; /* Physical address */
106 struct CodeData { /* Don't modify this struct, used by h/w */
107 ulong pamjpg; /* Physical addr of statCom[0] */
108 ulong pagrab; /* Physical addr of grab buffer */
109 ulong statCom[4]; /* Physical addresses of fragdescs */
110 FragmentTable fragdesc[4];
115 Codedatasize = (sizeof(CodeData) + BY2PG - 1) & ~(BY2PG - 1),
116 Grabdatasize = (730 * 568 * 2 * 2 + BY2PG - 1) & ~(BY2PG - 1),
119 #define POST_OFFICE 0x200
120 #define POST_PEND 0x02000000
121 #define POST_TIME 0x01000000
122 #define POST_DIR 0x00800000