1 #include <linux/kernel.h>
2 #include <linux/init.h>
3 #include <linux/module.h>
4 #include <linux/string.h>
5 #include <linux/slab.h>
6 #include <linux/delay.h>
7 #include <linux/jiffies.h>
8 #include <linux/types.h>
10 #include "drx_driver.h"
13 /* Dummy function to satisfy drxj.c */
14 int drxbsp_tuner_open(struct tuner_instance
*tuner
)
19 int drxbsp_tuner_close(struct tuner_instance
*tuner
)
24 int drxbsp_tuner_set_frequency(struct tuner_instance
*tuner
,
32 drxbsp_tuner_get_frequency(struct tuner_instance
*tuner
,
40 int drxbsp_hst_sleep(u32 n
)
46 u32
drxbsp_hst_clock(void)
48 return jiffies_to_msecs(jiffies
);
51 int drxbsp_hst_memcmp(void *s1
, void *s2
, u32 n
)
53 return (memcmp(s1
, s2
, (size_t) n
));
56 void *drxbsp_hst_memcpy(void *to
, void *from
, u32 n
)
58 return (memcpy(to
, from
, (size_t) n
));
61 int drxbsp_i2c_write_read(struct i2c_device_addr
*w_dev_addr
,
64 struct i2c_device_addr
*r_dev_addr
,
65 u16 r_count
, u8
*r_data
)
67 struct drx39xxj_state
*state
;
68 struct i2c_msg msg
[2];
69 unsigned int num_msgs
;
71 if (w_dev_addr
== NULL
) {
73 state
= r_dev_addr
->user_data
;
74 msg
[0].addr
= r_dev_addr
->i2c_addr
>> 1;
75 msg
[0].flags
= I2C_M_RD
;
79 } else if (r_dev_addr
== NULL
) {
81 state
= w_dev_addr
->user_data
;
82 msg
[0].addr
= w_dev_addr
->i2c_addr
>> 1;
88 /* Both write and read */
89 state
= w_dev_addr
->user_data
;
90 msg
[0].addr
= w_dev_addr
->i2c_addr
>> 1;
94 msg
[1].addr
= r_dev_addr
->i2c_addr
>> 1;
95 msg
[1].flags
= I2C_M_RD
;
101 if (state
->i2c
== NULL
) {
102 printk("i2c was zero, aborting\n");
105 if (i2c_transfer(state
->i2c
, msg
, num_msgs
) != num_msgs
) {
106 printk(KERN_WARNING
"drx3933: I2C write/read failed\n");
113 struct drx39xxj_state
*state
= w_dev_addr
->user_data
;
115 struct i2c_msg msg
[2] = {
116 {.addr
= w_dev_addr
->i2c_addr
,
117 .flags
= 0, .buf
= wData
, .len
= w_count
},
118 {.addr
= r_dev_addr
->i2c_addr
,
119 .flags
= I2C_M_RD
, .buf
= r_data
, .len
= r_count
},
122 printk("drx3933 i2c operation addr=%x i2c=%p, wc=%x rc=%x\n",
123 w_dev_addr
->i2c_addr
, state
->i2c
, w_count
, r_count
);
125 if (i2c_transfer(state
->i2c
, msg
, 2) != 2) {
126 printk(KERN_WARNING
"drx3933: I2C write/read failed\n");
This page took 0.038582 seconds and 5 git commands to generate.