aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorUri Shkolnik <uris@siano-ms.com>2009-05-14 15:32:12 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 18:14:31 -0400
commit90f944a38c4eb8432b6381fd0b9789f1f4600786 (patch)
tree24ddd7d72a517b4e71f58b00980142db949968c1 /drivers/media
parent3b2d18efd16d444ffd1ec50547ee6f1d66e3b57b (diff)
V4L/DVB (11815): Siano: bind infra-red component
Add the infra-red to the makefile and declare the assignment in the cards components. [mchehab@redhat.com: Fixed a few trivial merge conflicts] Signed-off-by: Uri Shkolnik <uris@siano-ms.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb/siano/Makefile2
-rw-r--r--drivers/media/dvb/siano/sms-cards.c1
-rw-r--r--drivers/media/dvb/siano/sms-cards.h4
-rw-r--r--drivers/media/dvb/siano/smscoreapi.h3
-rw-r--r--drivers/media/dvb/siano/smsir.c24
5 files changed, 20 insertions, 14 deletions
diff --git a/drivers/media/dvb/siano/Makefile b/drivers/media/dvb/siano/Makefile
index 6354a4718e5d..c6644d909433 100644
--- a/drivers/media/dvb/siano/Makefile
+++ b/drivers/media/dvb/siano/Makefile
@@ -1,4 +1,4 @@
1sms1xxx-objs := smscoreapi.o sms-cards.o smsendian.o 1sms1xxx-objs := smscoreapi.o sms-cards.o smsendian.o smsir.o
2 2
3obj-$(CONFIG_DVB_SIANO_SMS1XXX) += sms1xxx.o 3obj-$(CONFIG_DVB_SIANO_SMS1XXX) += sms1xxx.o
4obj-$(CONFIG_DVB_SIANO_SMS1XXX) += smsusb.o 4obj-$(CONFIG_DVB_SIANO_SMS1XXX) += smsusb.o
diff --git a/drivers/media/dvb/siano/sms-cards.c b/drivers/media/dvb/siano/sms-cards.c
index 63e4d0ec6583..c35ff1f3f378 100644
--- a/drivers/media/dvb/siano/sms-cards.c
+++ b/drivers/media/dvb/siano/sms-cards.c
@@ -18,6 +18,7 @@
18 */ 18 */
19 19
20#include "sms-cards.h" 20#include "sms-cards.h"
21#include "smsir.h"
21 22
22static int sms_dbg; 23static int sms_dbg;
23module_param_named(cards_dbg, sms_dbg, int, 0644); 24module_param_named(cards_dbg, sms_dbg, int, 0644);
diff --git a/drivers/media/dvb/siano/sms-cards.h b/drivers/media/dvb/siano/sms-cards.h
index 5bd4fb4d3a42..447481ab58be 100644
--- a/drivers/media/dvb/siano/sms-cards.h
+++ b/drivers/media/dvb/siano/sms-cards.h
@@ -22,6 +22,7 @@
22 22
23#include <linux/usb.h> 23#include <linux/usb.h>
24#include "smscoreapi.h" 24#include "smscoreapi.h"
25#include "smsir.h"
25 26
26#define SMS_BOARD_UNKNOWN 0 27#define SMS_BOARD_UNKNOWN 0
27#define SMS1XXX_BOARD_SIANO_STELLAR 1 28#define SMS1XXX_BOARD_SIANO_STELLAR 1
@@ -72,6 +73,7 @@ struct sms_board {
72 enum sms_device_type_st type; 73 enum sms_device_type_st type;
73 char *name, *fw[DEVICE_MODE_MAX]; 74 char *name, *fw[DEVICE_MODE_MAX];
74 struct sms_board_gpio_cfg board_cfg; 75 struct sms_board_gpio_cfg board_cfg;
76 enum ir_kb_type ir_kb_type;
75 77
76 /* gpios */ 78 /* gpios */
77 int led_power, led_hi, led_lo, lna_ctrl, rf_switch; 79 int led_power, led_hi, led_lo, lna_ctrl, rf_switch;
@@ -79,6 +81,8 @@ struct sms_board {
79 81
80struct sms_board *sms_get_board(int id); 82struct sms_board *sms_get_board(int id);
81 83
84extern struct smscore_device_t *coredev;
85
82int sms_board_setup(struct smscore_device_t *coredev); 86int sms_board_setup(struct smscore_device_t *coredev);
83 87
84#define SMS_LED_OFF 0 88#define SMS_LED_OFF 0
diff --git a/drivers/media/dvb/siano/smscoreapi.h b/drivers/media/dvb/siano/smscoreapi.h
index 942baaec897e..6e23c5f68088 100644
--- a/drivers/media/dvb/siano/smscoreapi.h
+++ b/drivers/media/dvb/siano/smscoreapi.h
@@ -34,6 +34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
34 34
35#include <asm/page.h> 35#include <asm/page.h>
36 36
37#include "smsir.h"
37 38
38#define kmutex_init(_p_) mutex_init(_p_) 39#define kmutex_init(_p_) mutex_init(_p_)
39#define kmutex_lock(_p_) mutex_lock(_p_) 40#define kmutex_lock(_p_) mutex_lock(_p_)
@@ -167,7 +168,7 @@ struct smscore_device_t {
167 u32 fw_buf_size; 168 u32 fw_buf_size;
168 169
169 /* Infrared (IR) */ 170 /* Infrared (IR) */
170 /* struct ir_t ir; */ 171 struct ir_t ir;
171 172
172 int led_state; 173 int led_state;
173}; 174};
diff --git a/drivers/media/dvb/siano/smsir.c b/drivers/media/dvb/siano/smsir.c
index a5f302c58fdb..e3d776feeaca 100644
--- a/drivers/media/dvb/siano/smsir.c
+++ b/drivers/media/dvb/siano/smsir.c
@@ -99,7 +99,7 @@ static void sms_ir_rc5_event(struct smscore_device_t *coredev,
99 bool toggle_changed; 99 bool toggle_changed;
100 u16 keycode; 100 u16 keycode;
101 101
102 sms_info("IR RC5 word: address %d, command %d, toggle %d", 102 sms_log("IR RC5 word: address %d, command %d, toggle %d",
103 addr, cmd, toggle); 103 addr, cmd, toggle);
104 104
105 toggle_changed = ir_toggle != toggle; 105 toggle_changed = ir_toggle != toggle;
@@ -118,7 +118,7 @@ static void sms_ir_rc5_event(struct smscore_device_t *coredev,
118 (keycode != KEY_VOLUMEUP && keycode != KEY_VOLUMEDOWN)) 118 (keycode != KEY_VOLUMEUP && keycode != KEY_VOLUMEDOWN))
119 return; /* accept only repeated volume, reject other keys */ 119 return; /* accept only repeated volume, reject other keys */
120 120
121 sms_info("kernel input keycode (from ir) %d", keycode); 121 sms_log("kernel input keycode (from ir) %d", keycode);
122 input_report_key(coredev->ir.input_dev, keycode, 1); 122 input_report_key(coredev->ir.input_dev, keycode, 1);
123 input_sync(coredev->ir.input_dev); 123 input_sync(coredev->ir.input_dev);
124 124
@@ -147,7 +147,7 @@ static u32 ir_rc5_decode(unsigned int code)
147 break; 147 break;
148 case 3: 148 case 3:
149/* dprintk(1, "ir-common: ir_rc5_decode(%x) bad code\n", org_code);*/ 149/* dprintk(1, "ir-common: ir_rc5_decode(%x) bad code\n", org_code);*/
150 sms_info("bad code"); 150 sms_log("bad code");
151 return 0; 151 return 0;
152 } 152 }
153 } 153 }
@@ -175,7 +175,7 @@ static void sms_rc5_parse_word(struct smscore_device_t *coredev)
175 RC5_PUSH_BIT(rc5_word, (ir_word>>i)&1, j) 175 RC5_PUSH_BIT(rc5_word, (ir_word>>i)&1, j)
176 176
177 rc5_word = ir_rc5_decode(rc5_word); 177 rc5_word = ir_rc5_decode(rc5_word);
178 /* sms_info("temp = 0x%x, rc5_code = 0x%x", ir_word, rc5_word); */ 178 /* sms_log("temp = 0x%x, rc5_code = 0x%x", ir_word, rc5_word); */
179 179
180 sms_ir_rc5_event(coredev, 180 sms_ir_rc5_event(coredev,
181 RC5_TOGGLE(rc5_word), 181 RC5_TOGGLE(rc5_word),
@@ -210,11 +210,11 @@ static void sms_rc5_accumulate_bits(struct smscore_device_t *coredev,
210 if (ir_pos == RC5_WORD_LEN) 210 if (ir_pos == RC5_WORD_LEN)
211 sms_rc5_parse_word(coredev); 211 sms_rc5_parse_word(coredev);
212 else if (ir_pos) /* timeout within a word */ 212 else if (ir_pos) /* timeout within a word */
213 sms_info("IR error parsing a word"); 213 sms_log("IR error parsing a word");
214 214
215 ir_pos = 0; 215 ir_pos = 0;
216 ir_word = 0; 216 ir_word = 0;
217 /* sms_info("timeout %d", time); */ 217 /* sms_log("timeout %d", time); */
218 break; 218 break;
219 } 219 }
220 /* The time is within the range of this number of bits */ 220 /* The time is within the range of this number of bits */
@@ -236,7 +236,7 @@ void sms_ir_event(struct smscore_device_t *coredev, const char *buf, int len)
236 int count = len>>2; 236 int count = len>>2;
237 237
238 samples = (s32 *)buf; 238 samples = (s32 *)buf;
239/* sms_info("IR buffer received, length = %d", count);*/ 239/* sms_log("IR buffer received, length = %d", count);*/
240 240
241 for (i = 0; i < count; i++) 241 for (i = 0; i < count; i++)
242 if (ir_protocol == IR_RC5) 242 if (ir_protocol == IR_RC5)
@@ -248,7 +248,7 @@ int sms_ir_init(struct smscore_device_t *coredev)
248{ 248{
249 struct input_dev *input_dev; 249 struct input_dev *input_dev;
250 250
251 sms_info("Allocating input device"); 251 sms_log("Allocating input device");
252 input_dev = input_allocate_device(); 252 input_dev = input_allocate_device();
253 if (!input_dev) { 253 if (!input_dev) {
254 sms_err("Not enough memory"); 254 sms_err("Not enough memory");
@@ -261,11 +261,11 @@ int sms_ir_init(struct smscore_device_t *coredev)
261 coredev->ir.keyboard_layout_map = 261 coredev->ir.keyboard_layout_map =
262 keyboard_layout_maps[coredev->ir.ir_kb_type]. 262 keyboard_layout_maps[coredev->ir.ir_kb_type].
263 keyboard_layout_map; 263 keyboard_layout_map;
264 sms_info("IR remote keyboard type is %d", coredev->ir.ir_kb_type); 264 sms_log("IR remote keyboard type is %d", coredev->ir.ir_kb_type);
265 265
266 coredev->ir.controller = 0; /* Todo: vega/nova SPI number */ 266 coredev->ir.controller = 0; /* Todo: vega/nova SPI number */
267 coredev->ir.timeout = IR_DEFAULT_TIMEOUT; 267 coredev->ir.timeout = IR_DEFAULT_TIMEOUT;
268 sms_info("IR port %d, timeout %d ms", 268 sms_log("IR port %d, timeout %d ms",
269 coredev->ir.controller, coredev->ir.timeout); 269 coredev->ir.controller, coredev->ir.timeout);
270 270
271 snprintf(coredev->ir.name, 271 snprintf(coredev->ir.name,
@@ -280,7 +280,7 @@ int sms_ir_init(struct smscore_device_t *coredev)
280 input_dev->evbit[0] = BIT_MASK(EV_KEY); 280 input_dev->evbit[0] = BIT_MASK(EV_KEY);
281 input_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0); 281 input_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0);
282 282
283 sms_info("Input device (IR) %s is set for key events", input_dev->name); 283 sms_log("Input device (IR) %s is set for key events", input_dev->name);
284 284
285 if (input_register_device(input_dev)) { 285 if (input_register_device(input_dev)) {
286 sms_err("Failed to register device"); 286 sms_err("Failed to register device");
@@ -296,6 +296,6 @@ void sms_ir_exit(struct smscore_device_t *coredev)
296 if (coredev->ir.input_dev) 296 if (coredev->ir.input_dev)
297 input_unregister_device(coredev->ir.input_dev); 297 input_unregister_device(coredev->ir.input_dev);
298 298
299 sms_info(""); 299 sms_log("");
300} 300}
301 301