1 struct platform_device
;
2 typedef unsigned long __kernel_size_t
;
3 typedef unsigned short __u16
;
4 typedef unsigned int __u32
;
5 typedef unsigned char u8
;
6 typedef unsigned short u16
;
7 typedef __kernel_size_t
size_t;
8 typedef __u32
uint32_t;
9 static inline __attribute__ ((always_inline
))
10 uint32_t __attribute__ ((pure
)) bfin_dspid (void)
17 struct list_head
*next
, *prev
;
24 struct device_driver
{
31 struct platform_driver
{
32 int (*probe
) (struct platform_device
*);
33 int (*remove
) (struct platform_device
*);
34 struct device_driver driver
;
40 struct metronomefb_par
{
46 static u8
calc_cksum (int start
, int end
, u8
* mem
)
50 for (i
= start
; i
< end
; i
++)
54 extern struct waveform_hdr
*wfm_hdr
;
58 load_waveform (u8
* mem
, size_t size
, int m
, int t
, struct metronomefb_par
*par
)
65 struct device
*dev
= par
->info
->dev
;
66 for (i
= 0; i
<= sizeof (*wfm_hdr
) + wfm_hdr
->trc
; i
++) {
68 trn
= i
- sizeof (*wfm_hdr
) - 1;
71 tta
= * (mem
+ wmta
+ m
* 4) & 0x00FFFFFF;
72 cksum_idx
= tta
+ trn
* 4 + 3;
73 cksum
= calc_cksum (cksum_idx
- 3, cksum_idx
, mem
);
74 if (cksum
!= mem
[cksum_idx
]) {
78 extern struct firmware
*fw_entry
;
79 extern struct metronomefb_par
*par
;
81 int metronomefb_probe (struct platform_device
*dev
)
83 return load_waveform ((u8
*) fw_entry
->data
, fw_entry
->size
, 3, 31, par
);