diff options
Diffstat (limited to 'drivers/media')
155 files changed, 3658 insertions, 3533 deletions
diff --git a/drivers/media/common/Kconfig b/drivers/media/common/Kconfig index caebd0a1c02..6a901a0268e 100644 --- a/drivers/media/common/Kconfig +++ b/drivers/media/common/Kconfig | |||
@@ -1,12 +1,12 @@ | |||
1 | config VIDEO_SAA7146 | 1 | config VIDEO_SAA7146 |
2 | tristate | 2 | tristate |
3 | select I2C | 3 | select I2C |
4 | 4 | ||
5 | config VIDEO_SAA7146_VV | 5 | config VIDEO_SAA7146_VV |
6 | tristate | 6 | tristate |
7 | select VIDEO_BUF | 7 | select VIDEO_BUF |
8 | select VIDEO_VIDEOBUF | 8 | select VIDEO_VIDEOBUF |
9 | select VIDEO_SAA7146 | 9 | select VIDEO_SAA7146 |
10 | 10 | ||
11 | config VIDEO_VIDEOBUF | 11 | config VIDEO_VIDEOBUF |
12 | tristate | 12 | tristate |
diff --git a/drivers/media/common/Makefile b/drivers/media/common/Makefile index 97b4341255e..bd458cb9b4e 100644 --- a/drivers/media/common/Makefile +++ b/drivers/media/common/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | saa7146-objs := saa7146_i2c.o saa7146_core.o | 1 | saa7146-objs := saa7146_i2c.o saa7146_core.o |
2 | saa7146_vv-objs := saa7146_vv_ksyms.o saa7146_fops.o saa7146_video.o saa7146_hlp.o saa7146_vbi.o | 2 | saa7146_vv-objs := saa7146_vv_ksyms.o saa7146_fops.o saa7146_video.o saa7146_hlp.o saa7146_vbi.o |
3 | 3 | ||
4 | obj-$(CONFIG_VIDEO_SAA7146) += saa7146.o | 4 | obj-$(CONFIG_VIDEO_SAA7146) += saa7146.o |
5 | obj-$(CONFIG_VIDEO_SAA7146_VV) += saa7146_vv.o | 5 | obj-$(CONFIG_VIDEO_SAA7146_VV) += saa7146_vv.o |
diff --git a/drivers/media/common/ir-common.c b/drivers/media/common/ir-common.c index 7972c73bc14..97fa3fc571c 100644 --- a/drivers/media/common/ir-common.c +++ b/drivers/media/common/ir-common.c | |||
@@ -313,6 +313,7 @@ void ir_input_init(struct input_dev *dev, struct ir_input_state *ir, | |||
313 | if (ir_codes) | 313 | if (ir_codes) |
314 | memcpy(ir->ir_codes, ir_codes, sizeof(ir->ir_codes)); | 314 | memcpy(ir->ir_codes, ir_codes, sizeof(ir->ir_codes)); |
315 | 315 | ||
316 | |||
316 | dev->keycode = ir->ir_codes; | 317 | dev->keycode = ir->ir_codes; |
317 | dev->keycodesize = sizeof(IR_KEYTAB_TYPE); | 318 | dev->keycodesize = sizeof(IR_KEYTAB_TYPE); |
318 | dev->keycodemax = IR_KEYTAB_SIZE; | 319 | dev->keycodemax = IR_KEYTAB_SIZE; |
diff --git a/drivers/media/common/saa7146_core.c b/drivers/media/common/saa7146_core.c index 206cc2f61f2..2899d34e5f7 100644 --- a/drivers/media/common/saa7146_core.c +++ b/drivers/media/common/saa7146_core.c | |||
@@ -174,8 +174,8 @@ void saa7146_pgtable_free(struct pci_dev *pci, struct saa7146_pgtable *pt) | |||
174 | 174 | ||
175 | int saa7146_pgtable_alloc(struct pci_dev *pci, struct saa7146_pgtable *pt) | 175 | int saa7146_pgtable_alloc(struct pci_dev *pci, struct saa7146_pgtable *pt) |
176 | { | 176 | { |
177 | u32 *cpu; | 177 | u32 *cpu; |
178 | dma_addr_t dma_addr; | 178 | dma_addr_t dma_addr; |
179 | 179 | ||
180 | cpu = pci_alloc_consistent(pci, PAGE_SIZE, &dma_addr); | 180 | cpu = pci_alloc_consistent(pci, PAGE_SIZE, &dma_addr); |
181 | if (NULL == cpu) { | 181 | if (NULL == cpu) { |
@@ -405,7 +405,7 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent | |||
405 | 405 | ||
406 | pci_set_drvdata(pci, dev); | 406 | pci_set_drvdata(pci, dev); |
407 | 407 | ||
408 | init_MUTEX(&dev->lock); | 408 | init_MUTEX(&dev->lock); |
409 | spin_lock_init(&dev->int_slock); | 409 | spin_lock_init(&dev->int_slock); |
410 | spin_lock_init(&dev->slock); | 410 | spin_lock_init(&dev->slock); |
411 | 411 | ||
diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c index 37888989ea2..09ec964dec5 100644 --- a/drivers/media/common/saa7146_fops.c +++ b/drivers/media/common/saa7146_fops.c | |||
@@ -1,6 +1,6 @@ | |||
1 | #include <media/saa7146_vv.h> | 1 | #include <media/saa7146_vv.h> |
2 | 2 | ||
3 | #define BOARD_CAN_DO_VBI(dev) (dev->revision != 0 && dev->vv_data->vbi_minor != -1) | 3 | #define BOARD_CAN_DO_VBI(dev) (dev->revision != 0 && dev->vv_data->vbi_minor != -1) |
4 | 4 | ||
5 | /****************************************************************************/ | 5 | /****************************************************************************/ |
6 | /* resource management functions, shamelessly stolen from saa7134 driver */ | 6 | /* resource management functions, shamelessly stolen from saa7134 driver */ |
@@ -102,9 +102,9 @@ void saa7146_buffer_finish(struct saa7146_dev *dev, | |||
102 | /* finish current buffer */ | 102 | /* finish current buffer */ |
103 | if (NULL == q->curr) { | 103 | if (NULL == q->curr) { |
104 | DEB_D(("aiii. no current buffer\n")); | 104 | DEB_D(("aiii. no current buffer\n")); |
105 | return; | 105 | return; |
106 | } | 106 | } |
107 | 107 | ||
108 | q->curr->vb.state = state; | 108 | q->curr->vb.state = state; |
109 | do_gettimeofday(&q->curr->vb.ts); | 109 | do_gettimeofday(&q->curr->vb.ts); |
110 | wake_up(&q->curr->vb.done); | 110 | wake_up(&q->curr->vb.done); |
@@ -143,13 +143,13 @@ void saa7146_buffer_next(struct saa7146_dev *dev, | |||
143 | // fixme: fix this for vflip != 0 | 143 | // fixme: fix this for vflip != 0 |
144 | 144 | ||
145 | saa7146_write(dev, PROT_ADDR1, 0); | 145 | saa7146_write(dev, PROT_ADDR1, 0); |
146 | saa7146_write(dev, MC2, (MASK_02|MASK_18)); | 146 | saa7146_write(dev, MC2, (MASK_02|MASK_18)); |
147 | 147 | ||
148 | /* write the address of the rps-program */ | 148 | /* write the address of the rps-program */ |
149 | saa7146_write(dev, RPS_ADDR0, dev->d_rps0.dma_handle); | 149 | saa7146_write(dev, RPS_ADDR0, dev->d_rps0.dma_handle); |
150 | /* turn on rps */ | 150 | /* turn on rps */ |
151 | saa7146_write(dev, MC1, (MASK_12 | MASK_28)); | 151 | saa7146_write(dev, MC1, (MASK_12 | MASK_28)); |
152 | 152 | ||
153 | /* | 153 | /* |
154 | printk("vdma%d.base_even: 0x%08x\n", 1,saa7146_read(dev,BASE_EVEN1)); | 154 | printk("vdma%d.base_even: 0x%08x\n", 1,saa7146_read(dev,BASE_EVEN1)); |
155 | printk("vdma%d.base_odd: 0x%08x\n", 1,saa7146_read(dev,BASE_ODD1)); | 155 | printk("vdma%d.base_odd: 0x%08x\n", 1,saa7146_read(dev,BASE_ODD1)); |
@@ -246,7 +246,7 @@ static int fops_open(struct inode *inode, struct file *file) | |||
246 | goto out; | 246 | goto out; |
247 | } | 247 | } |
248 | memset(fh,0,sizeof(*fh)); | 248 | memset(fh,0,sizeof(*fh)); |
249 | 249 | ||
250 | file->private_data = fh; | 250 | file->private_data = fh; |
251 | fh->dev = dev; | 251 | fh->dev = dev; |
252 | fh->type = type; | 252 | fh->type = type; |
@@ -275,7 +275,7 @@ out: | |||
275 | file->private_data = NULL; | 275 | file->private_data = NULL; |
276 | } | 276 | } |
277 | up(&saa7146_devices_lock); | 277 | up(&saa7146_devices_lock); |
278 | return result; | 278 | return result; |
279 | } | 279 | } |
280 | 280 | ||
281 | static int fops_release(struct inode *inode, struct file *file) | 281 | static int fops_release(struct inode *inode, struct file *file) |
@@ -405,7 +405,7 @@ static struct file_operations video_fops = | |||
405 | static void vv_callback(struct saa7146_dev *dev, unsigned long status) | 405 | static void vv_callback(struct saa7146_dev *dev, unsigned long status) |
406 | { | 406 | { |
407 | u32 isr = status; | 407 | u32 isr = status; |
408 | 408 | ||
409 | DEB_INT(("dev:%p, isr:0x%08x\n",dev,(u32)status)); | 409 | DEB_INT(("dev:%p, isr:0x%08x\n",dev,(u32)status)); |
410 | 410 | ||
411 | if (0 != (isr & (MASK_27))) { | 411 | if (0 != (isr & (MASK_27))) { |
@@ -454,11 +454,11 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv) | |||
454 | handle different devices that might need different | 454 | handle different devices that might need different |
455 | configuration data) */ | 455 | configuration data) */ |
456 | dev->ext_vv_data = ext_vv; | 456 | dev->ext_vv_data = ext_vv; |
457 | 457 | ||
458 | vv->video_minor = -1; | 458 | vv->video_minor = -1; |
459 | vv->vbi_minor = -1; | 459 | vv->vbi_minor = -1; |
460 | 460 | ||
461 | vv->d_clipping.cpu_addr = pci_alloc_consistent(dev->pci, SAA7146_CLIPPING_MEM, &vv->d_clipping.dma_handle); | 461 | vv->d_clipping.cpu_addr = pci_alloc_consistent(dev->pci, SAA7146_CLIPPING_MEM, &vv->d_clipping.dma_handle); |
462 | if( NULL == vv->d_clipping.cpu_addr ) { | 462 | if( NULL == vv->d_clipping.cpu_addr ) { |
463 | ERR(("out of memory. aborting.\n")); | 463 | ERR(("out of memory. aborting.\n")); |
464 | kfree(vv); | 464 | kfree(vv); |
@@ -468,7 +468,7 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv) | |||
468 | 468 | ||
469 | saa7146_video_uops.init(dev,vv); | 469 | saa7146_video_uops.init(dev,vv); |
470 | saa7146_vbi_uops.init(dev,vv); | 470 | saa7146_vbi_uops.init(dev,vv); |
471 | 471 | ||
472 | dev->vv_data = vv; | 472 | dev->vv_data = vv; |
473 | dev->vv_callback = &vv_callback; | 473 | dev->vv_callback = &vv_callback; |
474 | 474 | ||
@@ -480,12 +480,12 @@ int saa7146_vv_release(struct saa7146_dev* dev) | |||
480 | struct saa7146_vv *vv = dev->vv_data; | 480 | struct saa7146_vv *vv = dev->vv_data; |
481 | 481 | ||
482 | DEB_EE(("dev:%p\n",dev)); | 482 | DEB_EE(("dev:%p\n",dev)); |
483 | 483 | ||
484 | pci_free_consistent(dev->pci, SAA7146_RPS_MEM, vv->d_clipping.cpu_addr, vv->d_clipping.dma_handle); | 484 | pci_free_consistent(dev->pci, SAA7146_RPS_MEM, vv->d_clipping.cpu_addr, vv->d_clipping.dma_handle); |
485 | kfree(vv); | 485 | kfree(vv); |
486 | dev->vv_data = NULL; | 486 | dev->vv_data = NULL; |
487 | dev->vv_callback = NULL; | 487 | dev->vv_callback = NULL; |
488 | 488 | ||
489 | return 0; | 489 | return 0; |
490 | } | 490 | } |
491 | 491 | ||
@@ -498,7 +498,7 @@ int saa7146_register_device(struct video_device **vid, struct saa7146_dev* dev, | |||
498 | DEB_EE(("dev:%p, name:'%s', type:%d\n",dev,name,type)); | 498 | DEB_EE(("dev:%p, name:'%s', type:%d\n",dev,name,type)); |
499 | 499 | ||
500 | // released by vfd->release | 500 | // released by vfd->release |
501 | vfd = video_device_alloc(); | 501 | vfd = video_device_alloc(); |
502 | if (vfd == NULL) | 502 | if (vfd == NULL) |
503 | return -ENOMEM; | 503 | return -ENOMEM; |
504 | 504 | ||
@@ -530,7 +530,7 @@ int saa7146_register_device(struct video_device **vid, struct saa7146_dev* dev, | |||
530 | int saa7146_unregister_device(struct video_device **vid, struct saa7146_dev* dev) | 530 | int saa7146_unregister_device(struct video_device **vid, struct saa7146_dev* dev) |
531 | { | 531 | { |
532 | struct saa7146_vv *vv = dev->vv_data; | 532 | struct saa7146_vv *vv = dev->vv_data; |
533 | 533 | ||
534 | DEB_EE(("dev:%p\n",dev)); | 534 | DEB_EE(("dev:%p\n",dev)); |
535 | 535 | ||
536 | if( VFL_TYPE_GRABBER == (*vid)->type ) { | 536 | if( VFL_TYPE_GRABBER == (*vid)->type ) { |
diff --git a/drivers/media/common/saa7146_i2c.c b/drivers/media/common/saa7146_i2c.c index fec6beab8c2..8aabdd8fb3c 100644 --- a/drivers/media/common/saa7146_i2c.c +++ b/drivers/media/common/saa7146_i2c.c | |||
@@ -276,8 +276,8 @@ int saa7146_i2c_transfer(struct saa7146_dev *dev, const struct i2c_msg *msgs, in | |||
276 | int i = 0, count = 0; | 276 | int i = 0, count = 0; |
277 | u32* buffer = dev->d_i2c.cpu_addr; | 277 | u32* buffer = dev->d_i2c.cpu_addr; |
278 | int err = 0; | 278 | int err = 0; |
279 | int address_err = 0; | 279 | int address_err = 0; |
280 | int short_delay = 0; | 280 | int short_delay = 0; |
281 | 281 | ||
282 | if (down_interruptible (&dev->i2c_lock)) | 282 | if (down_interruptible (&dev->i2c_lock)) |
283 | return -ERESTARTSYS; | 283 | return -ERESTARTSYS; |
@@ -325,7 +325,7 @@ int saa7146_i2c_transfer(struct saa7146_dev *dev, const struct i2c_msg *msgs, in | |||
325 | if( 0 != (SAA7146_USE_I2C_IRQ & dev->ext->flags)) { | 325 | if( 0 != (SAA7146_USE_I2C_IRQ & dev->ext->flags)) { |
326 | goto out; | 326 | goto out; |
327 | } | 327 | } |
328 | address_err++; | 328 | address_err++; |
329 | } | 329 | } |
330 | DEB_I2C(("error while sending message(s). starting again.\n")); | 330 | DEB_I2C(("error while sending message(s). starting again.\n")); |
331 | break; | 331 | break; |
@@ -336,14 +336,14 @@ int saa7146_i2c_transfer(struct saa7146_dev *dev, const struct i2c_msg *msgs, in | |||
336 | break; | 336 | break; |
337 | } | 337 | } |
338 | 338 | ||
339 | /* delay a bit before retrying */ | 339 | /* delay a bit before retrying */ |
340 | msleep(10); | 340 | msleep(10); |
341 | 341 | ||
342 | } while (err != num && retries--); | 342 | } while (err != num && retries--); |
343 | 343 | ||
344 | /* if every retry had an address error, exit right away */ | 344 | /* if every retry had an address error, exit right away */ |
345 | if (address_err == retries) { | 345 | if (address_err == retries) { |
346 | goto out; | 346 | goto out; |
347 | } | 347 | } |
348 | 348 | ||
349 | /* if any things had to be read, get the results */ | 349 | /* if any things had to be read, get the results */ |
diff --git a/drivers/media/common/saa7146_vbi.c b/drivers/media/common/saa7146_vbi.c index cb86a97fda1..063986ec16b 100644 --- a/drivers/media/common/saa7146_vbi.c +++ b/drivers/media/common/saa7146_vbi.c | |||
@@ -6,8 +6,8 @@ static int vbi_workaround(struct saa7146_dev *dev) | |||
6 | { | 6 | { |
7 | struct saa7146_vv *vv = dev->vv_data; | 7 | struct saa7146_vv *vv = dev->vv_data; |
8 | 8 | ||
9 | u32 *cpu; | 9 | u32 *cpu; |
10 | dma_addr_t dma_addr; | 10 | dma_addr_t dma_addr; |
11 | 11 | ||
12 | int count = 0; | 12 | int count = 0; |
13 | int i; | 13 | int i; |
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c index 8dd4d15ca36..1d961023b83 100644 --- a/drivers/media/common/saa7146_video.c +++ b/drivers/media/common/saa7146_video.c | |||
@@ -150,23 +150,23 @@ static int try_win(struct saa7146_dev *dev, struct v4l2_window *win) | |||
150 | maxh = vv->standard->v_max_out; | 150 | maxh = vv->standard->v_max_out; |
151 | 151 | ||
152 | if (V4L2_FIELD_ANY == field) { | 152 | if (V4L2_FIELD_ANY == field) { |
153 | field = (win->w.height > maxh/2) | 153 | field = (win->w.height > maxh/2) |
154 | ? V4L2_FIELD_INTERLACED | 154 | ? V4L2_FIELD_INTERLACED |
155 | : V4L2_FIELD_TOP; | 155 | : V4L2_FIELD_TOP; |
156 | } | 156 | } |
157 | switch (field) { | 157 | switch (field) { |
158 | case V4L2_FIELD_TOP: | 158 | case V4L2_FIELD_TOP: |
159 | case V4L2_FIELD_BOTTOM: | 159 | case V4L2_FIELD_BOTTOM: |
160 | case V4L2_FIELD_ALTERNATE: | 160 | case V4L2_FIELD_ALTERNATE: |
161 | maxh = maxh / 2; | 161 | maxh = maxh / 2; |
162 | break; | 162 | break; |
163 | case V4L2_FIELD_INTERLACED: | 163 | case V4L2_FIELD_INTERLACED: |
164 | break; | 164 | break; |
165 | default: { | 165 | default: { |
166 | DEB_D(("no known field mode '%d'.\n",field)); | 166 | DEB_D(("no known field mode '%d'.\n",field)); |
167 | return -EINVAL; | 167 | return -EINVAL; |
168 | } | ||
168 | } | 169 | } |
169 | } | ||
170 | 170 | ||
171 | win->field = field; | 171 | win->field = field; |
172 | if (win->w.width > maxw) | 172 | if (win->w.width > maxw) |
@@ -887,7 +887,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int | |||
887 | 887 | ||
888 | DEB_EE(("VIDIOC_QUERYCAP\n")); | 888 | DEB_EE(("VIDIOC_QUERYCAP\n")); |
889 | 889 | ||
890 | strcpy(cap->driver, "saa7146 v4l2"); | 890 | strcpy(cap->driver, "saa7146 v4l2"); |
891 | strlcpy(cap->card, dev->ext->name, sizeof(cap->card)); | 891 | strlcpy(cap->card, dev->ext->name, sizeof(cap->card)); |
892 | sprintf(cap->bus_info,"PCI:%s", pci_name(dev->pci)); | 892 | sprintf(cap->bus_info,"PCI:%s", pci_name(dev->pci)); |
893 | cap->version = SAA7146_VERSION_CODE; | 893 | cap->version = SAA7146_VERSION_CODE; |
@@ -1011,19 +1011,19 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int | |||
1011 | err = set_control(fh,arg); | 1011 | err = set_control(fh,arg); |
1012 | return err; | 1012 | return err; |
1013 | } | 1013 | } |
1014 | case VIDIOC_G_PARM: | 1014 | case VIDIOC_G_PARM: |
1015 | { | 1015 | { |
1016 | struct v4l2_streamparm *parm = arg; | 1016 | struct v4l2_streamparm *parm = arg; |
1017 | if( parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE ) { | 1017 | if( parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE ) { |
1018 | return -EINVAL; | 1018 | return -EINVAL; |
1019 | } | 1019 | } |
1020 | memset(&parm->parm.capture,0,sizeof(struct v4l2_captureparm)); | 1020 | memset(&parm->parm.capture,0,sizeof(struct v4l2_captureparm)); |
1021 | parm->parm.capture.readbuffers = 1; | 1021 | parm->parm.capture.readbuffers = 1; |
1022 | // fixme: only for PAL! | 1022 | // fixme: only for PAL! |
1023 | parm->parm.capture.timeperframe.numerator = 1; | 1023 | parm->parm.capture.timeperframe.numerator = 1; |
1024 | parm->parm.capture.timeperframe.denominator = 25; | 1024 | parm->parm.capture.timeperframe.denominator = 25; |
1025 | return 0; | 1025 | return 0; |
1026 | } | 1026 | } |
1027 | case VIDIOC_G_FMT: | 1027 | case VIDIOC_G_FMT: |
1028 | { | 1028 | { |
1029 | struct v4l2_format *f = arg; | 1029 | struct v4l2_format *f = arg; |
@@ -1383,7 +1383,7 @@ static struct videobuf_queue_ops video_qops = { | |||
1383 | 1383 | ||
1384 | static void video_init(struct saa7146_dev *dev, struct saa7146_vv *vv) | 1384 | static void video_init(struct saa7146_dev *dev, struct saa7146_vv *vv) |
1385 | { | 1385 | { |
1386 | INIT_LIST_HEAD(&vv->video_q.queue); | 1386 | INIT_LIST_HEAD(&vv->video_q.queue); |
1387 | 1387 | ||
1388 | init_timer(&vv->video_q.timeout); | 1388 | init_timer(&vv->video_q.timeout); |
1389 | vv->video_q.timeout.function = saa7146_buffer_timeout; | 1389 | vv->video_q.timeout.function = saa7146_buffer_timeout; |
diff --git a/drivers/media/dvb/b2c2/flexcop-common.h b/drivers/media/dvb/b2c2/flexcop-common.h index a94912ac187..344a3c89846 100644 --- a/drivers/media/dvb/b2c2/flexcop-common.h +++ b/drivers/media/dvb/b2c2/flexcop-common.h | |||
@@ -132,7 +132,7 @@ int flexcop_eeprom_check_mac_addr(struct flexcop_device *fc, int extended); | |||
132 | * I2C-channel of the flexcop. | 132 | * I2C-channel of the flexcop. |
133 | */ | 133 | */ |
134 | int flexcop_i2c_request(struct flexcop_device*, flexcop_access_op_t, | 134 | int flexcop_i2c_request(struct flexcop_device*, flexcop_access_op_t, |
135 | flexcop_i2c_port_t, u8 chipaddr, u8 addr, u8 *buf, u16 len); | 135 | flexcop_i2c_port_t, u8 chipaddr, u8 addr, u8 *buf, u16 len); |
136 | 136 | ||
137 | /* from flexcop-sram.c */ | 137 | /* from flexcop-sram.c */ |
138 | int flexcop_sram_set_dest(struct flexcop_device *fc, flexcop_sram_dest_t dest, flexcop_sram_dest_target_t target); | 138 | int flexcop_sram_set_dest(struct flexcop_device *fc, flexcop_sram_dest_t dest, flexcop_sram_dest_target_t target); |
diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c index a35330315f6..21a9045b3ef 100644 --- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c +++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c | |||
@@ -298,7 +298,7 @@ static int flexcop_fe_request_firmware(struct dvb_frontend* fe, const struct fir | |||
298 | } | 298 | } |
299 | 299 | ||
300 | static int lgdt3303_pll_set(struct dvb_frontend* fe, | 300 | static int lgdt3303_pll_set(struct dvb_frontend* fe, |
301 | struct dvb_frontend_parameters* params) | 301 | struct dvb_frontend_parameters* params) |
302 | { | 302 | { |
303 | struct flexcop_device *fc = fe->dvb->priv; | 303 | struct flexcop_device *fc = fe->dvb->priv; |
304 | u8 buf[4]; | 304 | u8 buf[4]; |
@@ -332,7 +332,7 @@ static int lgdt3303_pll_set(struct dvb_frontend* fe, | |||
332 | return -EREMOTEIO; | 332 | return -EREMOTEIO; |
333 | } | 333 | } |
334 | 334 | ||
335 | return 0; | 335 | return 0; |
336 | } | 336 | } |
337 | 337 | ||
338 | static struct lgdt330x_config air2pc_atsc_hd5000_config = { | 338 | static struct lgdt330x_config air2pc_atsc_hd5000_config = { |
diff --git a/drivers/media/dvb/b2c2/flexcop-hw-filter.c b/drivers/media/dvb/b2c2/flexcop-hw-filter.c index 75cf237196e..b386cc66c6b 100644 --- a/drivers/media/dvb/b2c2/flexcop-hw-filter.c +++ b/drivers/media/dvb/b2c2/flexcop-hw-filter.c | |||
@@ -19,7 +19,7 @@ void flexcop_smc_ctrl(struct flexcop_device *fc, int onoff) | |||
19 | flexcop_set_ibi_value(ctrl_208,SMC_Enable_sig,onoff); | 19 | flexcop_set_ibi_value(ctrl_208,SMC_Enable_sig,onoff); |
20 | } | 20 | } |
21 | 21 | ||
22 | void flexcop_null_filter_ctrl(struct flexcop_device *fc, int onoff) | 22 | static void flexcop_null_filter_ctrl(struct flexcop_device *fc, int onoff) |
23 | { | 23 | { |
24 | flexcop_set_ibi_value(ctrl_208,Null_filter_sig,onoff); | 24 | flexcop_set_ibi_value(ctrl_208,Null_filter_sig,onoff); |
25 | } | 25 | } |
diff --git a/drivers/media/dvb/b2c2/flexcop-usb.c b/drivers/media/dvb/b2c2/flexcop-usb.c index 0a78ba3737a..a6c91db40ad 100644 --- a/drivers/media/dvb/b2c2/flexcop-usb.c +++ b/drivers/media/dvb/b2c2/flexcop-usb.c | |||
@@ -544,7 +544,6 @@ static struct usb_device_id flexcop_usb_table [] = { | |||
544 | 544 | ||
545 | /* usb specific object needed to register this driver with the usb subsystem */ | 545 | /* usb specific object needed to register this driver with the usb subsystem */ |
546 | static struct usb_driver flexcop_usb_driver = { | 546 | static struct usb_driver flexcop_usb_driver = { |
547 | .owner = THIS_MODULE, | ||
548 | .name = "b2c2_flexcop_usb", | 547 | .name = "b2c2_flexcop_usb", |
549 | .probe = flexcop_usb_probe, | 548 | .probe = flexcop_usb_probe, |
550 | .disconnect = flexcop_usb_disconnect, | 549 | .disconnect = flexcop_usb_disconnect, |
diff --git a/drivers/media/dvb/bt8xx/dst_ca.c b/drivers/media/dvb/bt8xx/dst_ca.c index e6541aff399..2239651969c 100644 --- a/drivers/media/dvb/bt8xx/dst_ca.c +++ b/drivers/media/dvb/bt8xx/dst_ca.c | |||
@@ -406,7 +406,7 @@ static int ca_send_message(struct dst_state *state, struct ca_msg *p_ca_message, | |||
406 | } | 406 | } |
407 | dprintk(verbose, DST_CA_DEBUG, 1, " "); | 407 | dprintk(verbose, DST_CA_DEBUG, 1, " "); |
408 | 408 | ||
409 | if (copy_from_user(p_ca_message, (void *)arg, sizeof (struct ca_msg))) { | 409 | if (copy_from_user(p_ca_message, arg, sizeof (struct ca_msg))) { |
410 | result = -EFAULT; | 410 | result = -EFAULT; |
411 | goto free_mem_and_exit; | 411 | goto free_mem_and_exit; |
412 | } | 412 | } |
@@ -579,7 +579,7 @@ static int dst_ca_release(struct inode *inode, struct file *file) | |||
579 | return 0; | 579 | return 0; |
580 | } | 580 | } |
581 | 581 | ||
582 | static int dst_ca_read(struct file *file, char __user *buffer, size_t length, loff_t *offset) | 582 | static ssize_t dst_ca_read(struct file *file, char __user *buffer, size_t length, loff_t *offset) |
583 | { | 583 | { |
584 | int bytes_read = 0; | 584 | int bytes_read = 0; |
585 | 585 | ||
@@ -588,7 +588,7 @@ static int dst_ca_read(struct file *file, char __user *buffer, size_t length, lo | |||
588 | return bytes_read; | 588 | return bytes_read; |
589 | } | 589 | } |
590 | 590 | ||
591 | static int dst_ca_write(struct file *file, const char __user *buffer, size_t length, loff_t *offset) | 591 | static ssize_t dst_ca_write(struct file *file, const char __user *buffer, size_t length, loff_t *offset) |
592 | { | 592 | { |
593 | dprintk(verbose, DST_CA_DEBUG, 1, " Device write."); | 593 | dprintk(verbose, DST_CA_DEBUG, 1, " Device write."); |
594 | 594 | ||
diff --git a/drivers/media/dvb/bt8xx/dvb-bt8xx.c b/drivers/media/dvb/bt8xx/dvb-bt8xx.c index 2e398090cf6..77977e9c013 100644 --- a/drivers/media/dvb/bt8xx/dvb-bt8xx.c +++ b/drivers/media/dvb/bt8xx/dvb-bt8xx.c | |||
@@ -556,9 +556,9 @@ static int tdvs_tua6034_pll_set(struct dvb_frontend* fe, struct dvb_frontend_par | |||
556 | dprintk("%s: tuner at 0x%02x bytes: 0x%02x 0x%02x 0x%02x 0x%02x\n", | 556 | dprintk("%s: tuner at 0x%02x bytes: 0x%02x 0x%02x 0x%02x 0x%02x\n", |
557 | __FUNCTION__, msg.addr, buf[0],buf[1],buf[2],buf[3]); | 557 | __FUNCTION__, msg.addr, buf[0],buf[1],buf[2],buf[3]); |
558 | if ((err = i2c_transfer(card->i2c_adapter, &msg, 1)) != 1) { | 558 | if ((err = i2c_transfer(card->i2c_adapter, &msg, 1)) != 1) { |
559 | printk(KERN_WARNING "dvb-bt8xx: %s error " | 559 | printk(KERN_WARNING "dvb-bt8xx: %s error " |
560 | "(addr %02x <- %02x, err = %i)\n", | 560 | "(addr %02x <- %02x, err = %i)\n", |
561 | __FUNCTION__, buf[0], buf[1], err); | 561 | __FUNCTION__, buf[0], buf[1], err); |
562 | if (err < 0) | 562 | if (err < 0) |
563 | return err; | 563 | return err; |
564 | else | 564 | else |
diff --git a/drivers/media/dvb/cinergyT2/cinergyT2.c b/drivers/media/dvb/cinergyT2/cinergyT2.c index 336fc284fa5..1d69bf031fb 100644 --- a/drivers/media/dvb/cinergyT2/cinergyT2.c +++ b/drivers/media/dvb/cinergyT2/cinergyT2.c | |||
@@ -60,7 +60,7 @@ MODULE_PARM_DESC(debug, "Turn on/off debugging (default:off)."); | |||
60 | #define dprintk(level, args...) \ | 60 | #define dprintk(level, args...) \ |
61 | do { \ | 61 | do { \ |
62 | if ((debug & level)) { \ | 62 | if ((debug & level)) { \ |
63 | printk("%s: %s(): ", __stringify(KBUILD_MODNAME), \ | 63 | printk("%s: %s(): ", KBUILD_MODNAME, \ |
64 | __FUNCTION__); \ | 64 | __FUNCTION__); \ |
65 | printk(args); } \ | 65 | printk(args); } \ |
66 | } while (0) | 66 | } while (0) |
@@ -986,7 +986,6 @@ static const struct usb_device_id cinergyt2_table [] __devinitdata = { | |||
986 | MODULE_DEVICE_TABLE(usb, cinergyt2_table); | 986 | MODULE_DEVICE_TABLE(usb, cinergyt2_table); |
987 | 987 | ||
988 | static struct usb_driver cinergyt2_driver = { | 988 | static struct usb_driver cinergyt2_driver = { |
989 | .owner = THIS_MODULE, | ||
990 | .name = "cinergyT2", | 989 | .name = "cinergyT2", |
991 | .probe = cinergyt2_probe, | 990 | .probe = cinergyt2_probe, |
992 | .disconnect = cinergyt2_disconnect, | 991 | .disconnect = cinergyt2_disconnect, |
diff --git a/drivers/media/dvb/dvb-core/demux.h b/drivers/media/dvb/dvb-core/demux.h index 7d7b0067f22..9f025825b2d 100644 --- a/drivers/media/dvb/dvb-core/demux.h +++ b/drivers/media/dvb/dvb-core/demux.h | |||
@@ -86,25 +86,25 @@ enum dmx_success { | |||
86 | 86 | ||
87 | enum dmx_ts_pes | 87 | enum dmx_ts_pes |
88 | { /* also send packets to decoder (if it exists) */ | 88 | { /* also send packets to decoder (if it exists) */ |
89 | DMX_TS_PES_AUDIO0, | 89 | DMX_TS_PES_AUDIO0, |
90 | DMX_TS_PES_VIDEO0, | 90 | DMX_TS_PES_VIDEO0, |
91 | DMX_TS_PES_TELETEXT0, | 91 | DMX_TS_PES_TELETEXT0, |
92 | DMX_TS_PES_SUBTITLE0, | 92 | DMX_TS_PES_SUBTITLE0, |
93 | DMX_TS_PES_PCR0, | 93 | DMX_TS_PES_PCR0, |
94 | 94 | ||
95 | DMX_TS_PES_AUDIO1, | 95 | DMX_TS_PES_AUDIO1, |
96 | DMX_TS_PES_VIDEO1, | 96 | DMX_TS_PES_VIDEO1, |
97 | DMX_TS_PES_TELETEXT1, | 97 | DMX_TS_PES_TELETEXT1, |
98 | DMX_TS_PES_SUBTITLE1, | 98 | DMX_TS_PES_SUBTITLE1, |
99 | DMX_TS_PES_PCR1, | 99 | DMX_TS_PES_PCR1, |
100 | 100 | ||
101 | DMX_TS_PES_AUDIO2, | 101 | DMX_TS_PES_AUDIO2, |
102 | DMX_TS_PES_VIDEO2, | 102 | DMX_TS_PES_VIDEO2, |
103 | DMX_TS_PES_TELETEXT2, | 103 | DMX_TS_PES_TELETEXT2, |
104 | DMX_TS_PES_SUBTITLE2, | 104 | DMX_TS_PES_SUBTITLE2, |
105 | DMX_TS_PES_PCR2, | 105 | DMX_TS_PES_PCR2, |
106 | 106 | ||
107 | DMX_TS_PES_AUDIO3, | 107 | DMX_TS_PES_AUDIO3, |
108 | DMX_TS_PES_VIDEO3, | 108 | DMX_TS_PES_VIDEO3, |
109 | DMX_TS_PES_TELETEXT3, | 109 | DMX_TS_PES_TELETEXT3, |
110 | DMX_TS_PES_SUBTITLE3, | 110 | DMX_TS_PES_SUBTITLE3, |
@@ -121,17 +121,17 @@ enum dmx_ts_pes | |||
121 | 121 | ||
122 | 122 | ||
123 | struct dmx_ts_feed { | 123 | struct dmx_ts_feed { |
124 | int is_filtering; /* Set to non-zero when filtering in progress */ | 124 | int is_filtering; /* Set to non-zero when filtering in progress */ |
125 | struct dmx_demux *parent; /* Back-pointer */ | 125 | struct dmx_demux *parent; /* Back-pointer */ |
126 | void *priv; /* Pointer to private data of the API client */ | 126 | void *priv; /* Pointer to private data of the API client */ |
127 | int (*set) (struct dmx_ts_feed *feed, | 127 | int (*set) (struct dmx_ts_feed *feed, |
128 | u16 pid, | 128 | u16 pid, |
129 | int type, | 129 | int type, |
130 | enum dmx_ts_pes pes_type, | 130 | enum dmx_ts_pes pes_type, |
131 | size_t circular_buffer_size, | 131 | size_t circular_buffer_size, |
132 | struct timespec timeout); | 132 | struct timespec timeout); |
133 | int (*start_filtering) (struct dmx_ts_feed* feed); | 133 | int (*start_filtering) (struct dmx_ts_feed* feed); |
134 | int (*stop_filtering) (struct dmx_ts_feed* feed); | 134 | int (*stop_filtering) (struct dmx_ts_feed* feed); |
135 | }; | 135 | }; |
136 | 136 | ||
137 | /*--------------------------------------------------------------------------*/ | 137 | /*--------------------------------------------------------------------------*/ |
@@ -139,35 +139,35 @@ struct dmx_ts_feed { | |||
139 | /*--------------------------------------------------------------------------*/ | 139 | /*--------------------------------------------------------------------------*/ |
140 | 140 | ||
141 | struct dmx_section_filter { | 141 | struct dmx_section_filter { |
142 | u8 filter_value [DMX_MAX_FILTER_SIZE]; | 142 | u8 filter_value [DMX_MAX_FILTER_SIZE]; |
143 | u8 filter_mask [DMX_MAX_FILTER_SIZE]; | 143 | u8 filter_mask [DMX_MAX_FILTER_SIZE]; |
144 | u8 filter_mode [DMX_MAX_FILTER_SIZE]; | 144 | u8 filter_mode [DMX_MAX_FILTER_SIZE]; |
145 | struct dmx_section_feed* parent; /* Back-pointer */ | 145 | struct dmx_section_feed* parent; /* Back-pointer */ |
146 | void* priv; /* Pointer to private data of the API client */ | 146 | void* priv; /* Pointer to private data of the API client */ |
147 | }; | 147 | }; |
148 | 148 | ||
149 | struct dmx_section_feed { | 149 | struct dmx_section_feed { |
150 | int is_filtering; /* Set to non-zero when filtering in progress */ | 150 | int is_filtering; /* Set to non-zero when filtering in progress */ |
151 | struct dmx_demux* parent; /* Back-pointer */ | 151 | struct dmx_demux* parent; /* Back-pointer */ |
152 | void* priv; /* Pointer to private data of the API client */ | 152 | void* priv; /* Pointer to private data of the API client */ |
153 | 153 | ||
154 | int check_crc; | 154 | int check_crc; |
155 | u32 crc_val; | 155 | u32 crc_val; |
156 | 156 | ||
157 | u8 *secbuf; | 157 | u8 *secbuf; |
158 | u8 secbuf_base[DMX_MAX_SECFEED_SIZE]; | 158 | u8 secbuf_base[DMX_MAX_SECFEED_SIZE]; |
159 | u16 secbufp, seclen, tsfeedp; | 159 | u16 secbufp, seclen, tsfeedp; |
160 | 160 | ||
161 | int (*set) (struct dmx_section_feed* feed, | 161 | int (*set) (struct dmx_section_feed* feed, |
162 | u16 pid, | 162 | u16 pid, |
163 | size_t circular_buffer_size, | 163 | size_t circular_buffer_size, |
164 | int check_crc); | 164 | int check_crc); |
165 | int (*allocate_filter) (struct dmx_section_feed* feed, | 165 | int (*allocate_filter) (struct dmx_section_feed* feed, |
166 | struct dmx_section_filter** filter); | 166 | struct dmx_section_filter** filter); |
167 | int (*release_filter) (struct dmx_section_feed* feed, | 167 | int (*release_filter) (struct dmx_section_feed* feed, |
168 | struct dmx_section_filter* filter); | 168 | struct dmx_section_filter* filter); |
169 | int (*start_filtering) (struct dmx_section_feed* feed); | 169 | int (*start_filtering) (struct dmx_section_feed* feed); |
170 | int (*stop_filtering) (struct dmx_section_feed* feed); | 170 | int (*stop_filtering) (struct dmx_section_feed* feed); |
171 | }; | 171 | }; |
172 | 172 | ||
173 | /*--------------------------------------------------------------------------*/ | 173 | /*--------------------------------------------------------------------------*/ |
@@ -205,10 +205,10 @@ enum dmx_frontend_source { | |||
205 | }; | 205 | }; |
206 | 206 | ||
207 | struct dmx_frontend { | 207 | struct dmx_frontend { |
208 | struct list_head connectivity_list; /* List of front-ends that can | 208 | struct list_head connectivity_list; /* List of front-ends that can |
209 | be connected to a particular | 209 | be connected to a particular |
210 | demux */ | 210 | demux */ |
211 | enum dmx_frontend_source source; | 211 | enum dmx_frontend_source source; |
212 | }; | 212 | }; |
213 | 213 | ||
214 | /*--------------------------------------------------------------------------*/ | 214 | /*--------------------------------------------------------------------------*/ |
@@ -240,38 +240,38 @@ struct dmx_frontend { | |||
240 | #define DMX_FE_ENTRY(list) list_entry(list, struct dmx_frontend, connectivity_list) | 240 | #define DMX_FE_ENTRY(list) list_entry(list, struct dmx_frontend, connectivity_list) |
241 | 241 | ||
242 | struct dmx_demux { | 242 | struct dmx_demux { |
243 | u32 capabilities; /* Bitfield of capability flags */ | 243 | u32 capabilities; /* Bitfield of capability flags */ |
244 | struct dmx_frontend* frontend; /* Front-end connected to the demux */ | 244 | struct dmx_frontend* frontend; /* Front-end connected to the demux */ |
245 | void* priv; /* Pointer to private data of the API client */ | 245 | void* priv; /* Pointer to private data of the API client */ |
246 | int (*open) (struct dmx_demux* demux); | 246 | int (*open) (struct dmx_demux* demux); |
247 | int (*close) (struct dmx_demux* demux); | 247 | int (*close) (struct dmx_demux* demux); |
248 | int (*write) (struct dmx_demux* demux, const char* buf, size_t count); | 248 | int (*write) (struct dmx_demux* demux, const char* buf, size_t count); |
249 | int (*allocate_ts_feed) (struct dmx_demux* demux, | 249 | int (*allocate_ts_feed) (struct dmx_demux* demux, |
250 | struct dmx_ts_feed** feed, | 250 | struct dmx_ts_feed** feed, |
251 | dmx_ts_cb callback); | 251 | dmx_ts_cb callback); |
252 | int (*release_ts_feed) (struct dmx_demux* demux, | 252 | int (*release_ts_feed) (struct dmx_demux* demux, |
253 | struct dmx_ts_feed* feed); | 253 | struct dmx_ts_feed* feed); |
254 | int (*allocate_section_feed) (struct dmx_demux* demux, | 254 | int (*allocate_section_feed) (struct dmx_demux* demux, |
255 | struct dmx_section_feed** feed, | 255 | struct dmx_section_feed** feed, |
256 | dmx_section_cb callback); | 256 | dmx_section_cb callback); |
257 | int (*release_section_feed) (struct dmx_demux* demux, | 257 | int (*release_section_feed) (struct dmx_demux* demux, |
258 | struct dmx_section_feed* feed); | 258 | struct dmx_section_feed* feed); |
259 | int (*add_frontend) (struct dmx_demux* demux, | 259 | int (*add_frontend) (struct dmx_demux* demux, |
260 | struct dmx_frontend* frontend); | 260 | struct dmx_frontend* frontend); |
261 | int (*remove_frontend) (struct dmx_demux* demux, | 261 | int (*remove_frontend) (struct dmx_demux* demux, |
262 | struct dmx_frontend* frontend); | 262 | struct dmx_frontend* frontend); |
263 | struct list_head* (*get_frontends) (struct dmx_demux* demux); | 263 | struct list_head* (*get_frontends) (struct dmx_demux* demux); |
264 | int (*connect_frontend) (struct dmx_demux* demux, | 264 | int (*connect_frontend) (struct dmx_demux* demux, |
265 | struct dmx_frontend* frontend); | 265 | struct dmx_frontend* frontend); |
266 | int (*disconnect_frontend) (struct dmx_demux* demux); | 266 | int (*disconnect_frontend) (struct dmx_demux* demux); |
267 | 267 | ||
268 | int (*get_pes_pids) (struct dmx_demux* demux, u16 *pids); | 268 | int (*get_pes_pids) (struct dmx_demux* demux, u16 *pids); |
269 | 269 | ||
270 | int (*get_caps) (struct dmx_demux* demux, struct dmx_caps *caps); | 270 | int (*get_caps) (struct dmx_demux* demux, struct dmx_caps *caps); |
271 | 271 | ||
272 | int (*set_source) (struct dmx_demux* demux, const dmx_source_t *src); | 272 | int (*set_source) (struct dmx_demux* demux, const dmx_source_t *src); |
273 | 273 | ||
274 | int (*get_stc) (struct dmx_demux* demux, unsigned int num, | 274 | int (*get_stc) (struct dmx_demux* demux, unsigned int num, |
275 | u64 *stc, unsigned int *base); | 275 | u64 *stc, unsigned int *base); |
276 | }; | 276 | }; |
277 | 277 | ||
diff --git a/drivers/media/dvb/dvb-core/dmxdev.c b/drivers/media/dvb/dvb-core/dmxdev.c index 8028c3a5e28..7b8373ad121 100644 --- a/drivers/media/dvb/dvb-core/dmxdev.c +++ b/drivers/media/dvb/dvb-core/dmxdev.c | |||
@@ -947,7 +947,7 @@ static int dvb_demux_do_ioctl(struct inode *inode, struct file *file, | |||
947 | 947 | ||
948 | case DMX_GET_STC: | 948 | case DMX_GET_STC: |
949 | if (!dmxdev->demux->get_stc) { | 949 | if (!dmxdev->demux->get_stc) { |
950 | ret=-EINVAL; | 950 | ret=-EINVAL; |
951 | break; | 951 | break; |
952 | } | 952 | } |
953 | ret = dmxdev->demux->get_stc(dmxdev->demux, | 953 | ret = dmxdev->demux->get_stc(dmxdev->demux, |
diff --git a/drivers/media/dvb/dvb-core/dmxdev.h b/drivers/media/dvb/dvb-core/dmxdev.h index 395a9cd7501..fd72920c219 100644 --- a/drivers/media/dvb/dvb-core/dmxdev.h +++ b/drivers/media/dvb/dvb-core/dmxdev.h | |||
@@ -53,51 +53,51 @@ enum dmxdev_state { | |||
53 | }; | 53 | }; |
54 | 54 | ||
55 | struct dmxdev_buffer { | 55 | struct dmxdev_buffer { |
56 | u8 *data; | 56 | u8 *data; |
57 | int size; | 57 | int size; |
58 | int pread; | 58 | int pread; |
59 | int pwrite; | 59 | int pwrite; |
60 | wait_queue_head_t queue; | 60 | wait_queue_head_t queue; |
61 | int error; | 61 | int error; |
62 | }; | 62 | }; |
63 | 63 | ||
64 | struct dmxdev_filter { | 64 | struct dmxdev_filter { |
65 | struct dvb_device *dvbdev; | 65 | struct dvb_device *dvbdev; |
66 | 66 | ||
67 | union { | 67 | union { |
68 | struct dmx_section_filter *sec; | 68 | struct dmx_section_filter *sec; |
69 | } filter; | 69 | } filter; |
70 | 70 | ||
71 | union { | 71 | union { |
72 | struct dmx_ts_feed *ts; | 72 | struct dmx_ts_feed *ts; |
73 | struct dmx_section_feed *sec; | 73 | struct dmx_section_feed *sec; |
74 | } feed; | 74 | } feed; |
75 | 75 | ||
76 | union { | 76 | union { |
77 | struct dmx_sct_filter_params sec; | 77 | struct dmx_sct_filter_params sec; |
78 | struct dmx_pes_filter_params pes; | 78 | struct dmx_pes_filter_params pes; |
79 | } params; | 79 | } params; |
80 | 80 | ||
81 | int type; | 81 | int type; |
82 | enum dmxdev_state state; | 82 | enum dmxdev_state state; |
83 | struct dmxdev *dev; | 83 | struct dmxdev *dev; |
84 | struct dmxdev_buffer buffer; | 84 | struct dmxdev_buffer buffer; |
85 | 85 | ||
86 | struct semaphore mutex; | 86 | struct semaphore mutex; |
87 | 87 | ||
88 | /* only for sections */ | 88 | /* only for sections */ |
89 | struct timer_list timer; | 89 | struct timer_list timer; |
90 | int todo; | 90 | int todo; |
91 | u8 secheader[3]; | 91 | u8 secheader[3]; |
92 | 92 | ||
93 | u16 pid; | 93 | u16 pid; |
94 | }; | 94 | }; |
95 | 95 | ||
96 | 96 | ||
97 | struct dmxdev_dvr { | 97 | struct dmxdev_dvr { |
98 | int state; | 98 | int state; |
99 | struct dmxdev *dev; | 99 | struct dmxdev *dev; |
100 | struct dmxdev_buffer buffer; | 100 | struct dmxdev_buffer buffer; |
101 | }; | 101 | }; |
102 | 102 | ||
103 | 103 | ||
@@ -105,16 +105,16 @@ struct dmxdev { | |||
105 | struct dvb_device *dvbdev; | 105 | struct dvb_device *dvbdev; |
106 | struct dvb_device *dvr_dvbdev; | 106 | struct dvb_device *dvr_dvbdev; |
107 | 107 | ||
108 | struct dmxdev_filter *filter; | 108 | struct dmxdev_filter *filter; |
109 | struct dmxdev_dvr *dvr; | 109 | struct dmxdev_dvr *dvr; |
110 | struct dmx_demux *demux; | 110 | struct dmx_demux *demux; |
111 | 111 | ||
112 | int filternum; | 112 | int filternum; |
113 | int capabilities; | 113 | int capabilities; |
114 | #define DMXDEV_CAP_DUPLEX 1 | 114 | #define DMXDEV_CAP_DUPLEX 1 |
115 | struct dmx_frontend *dvr_orig_fe; | 115 | struct dmx_frontend *dvr_orig_fe; |
116 | 116 | ||
117 | struct dmxdev_buffer dvr_buffer; | 117 | struct dmxdev_buffer dvr_buffer; |
118 | #define DVR_BUFFER_SIZE (10*188*1024) | 118 | #define DVR_BUFFER_SIZE (10*188*1024) |
119 | 119 | ||
120 | struct semaphore mutex; | 120 | struct semaphore mutex; |
diff --git a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c index 2aa767f9bd7..5956c35d34a 100644 --- a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c +++ b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #include <linux/moduleparam.h> | 35 | #include <linux/moduleparam.h> |
36 | #include <linux/vmalloc.h> | 36 | #include <linux/vmalloc.h> |
37 | #include <linux/delay.h> | 37 | #include <linux/delay.h> |
38 | #include <linux/rwsem.h> | 38 | #include <linux/spinlock.h> |
39 | #include <linux/sched.h> | 39 | #include <linux/sched.h> |
40 | 40 | ||
41 | #include "dvb_ca_en50221.h" | 41 | #include "dvb_ca_en50221.h" |
@@ -111,9 +111,6 @@ struct dvb_ca_slot { | |||
111 | /* size of the buffer to use when talking to the CAM */ | 111 | /* size of the buffer to use when talking to the CAM */ |
112 | int link_buf_size; | 112 | int link_buf_size; |
113 | 113 | ||
114 | /* semaphore for syncing access to slot structure */ | ||
115 | struct rw_semaphore sem; | ||
116 | |||
117 | /* buffer for incoming packets */ | 114 | /* buffer for incoming packets */ |
118 | struct dvb_ringbuffer rx_buffer; | 115 | struct dvb_ringbuffer rx_buffer; |
119 | 116 | ||
@@ -501,7 +498,7 @@ static int dvb_ca_en50221_parse_attributes(struct dvb_ca_private *ca, int slot) | |||
501 | /* process the CFTABLE_ENTRY tuples, and any after those */ | 498 | /* process the CFTABLE_ENTRY tuples, and any after those */ |
502 | while ((!end_chain) && (address < 0x1000)) { | 499 | while ((!end_chain) && (address < 0x1000)) { |
503 | if ((status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tupleType, | 500 | if ((status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tupleType, |
504 | &tupleLength, tuple)) < 0) | 501 | &tupleLength, tuple)) < 0) |
505 | return status; | 502 | return status; |
506 | switch (tupleType) { | 503 | switch (tupleType) { |
507 | case 0x1B: // CISTPL_CFTABLE_ENTRY | 504 | case 0x1B: // CISTPL_CFTABLE_ENTRY |
@@ -602,14 +599,11 @@ static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot, u8 * eb | |||
602 | if (ebuf == NULL) { | 599 | if (ebuf == NULL) { |
603 | int buf_free; | 600 | int buf_free; |
604 | 601 | ||
605 | down_read(&ca->slot_info[slot].sem); | ||
606 | if (ca->slot_info[slot].rx_buffer.data == NULL) { | 602 | if (ca->slot_info[slot].rx_buffer.data == NULL) { |
607 | up_read(&ca->slot_info[slot].sem); | ||
608 | status = -EIO; | 603 | status = -EIO; |
609 | goto exit; | 604 | goto exit; |
610 | } | 605 | } |
611 | buf_free = dvb_ringbuffer_free(&ca->slot_info[slot].rx_buffer); | 606 | buf_free = dvb_ringbuffer_free(&ca->slot_info[slot].rx_buffer); |
612 | up_read(&ca->slot_info[slot].sem); | ||
613 | 607 | ||
614 | if (buf_free < (ca->slot_info[slot].link_buf_size + DVB_RINGBUFFER_PKTHDRSIZE)) { | 608 | if (buf_free < (ca->slot_info[slot].link_buf_size + DVB_RINGBUFFER_PKTHDRSIZE)) { |
615 | status = -EAGAIN; | 609 | status = -EAGAIN; |
@@ -680,14 +674,11 @@ static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot, u8 * eb | |||
680 | 674 | ||
681 | /* OK, add it to the receive buffer, or copy into external buffer if supplied */ | 675 | /* OK, add it to the receive buffer, or copy into external buffer if supplied */ |
682 | if (ebuf == NULL) { | 676 | if (ebuf == NULL) { |
683 | down_read(&ca->slot_info[slot].sem); | ||
684 | if (ca->slot_info[slot].rx_buffer.data == NULL) { | 677 | if (ca->slot_info[slot].rx_buffer.data == NULL) { |
685 | up_read(&ca->slot_info[slot].sem); | ||
686 | status = -EIO; | 678 | status = -EIO; |
687 | goto exit; | 679 | goto exit; |
688 | } | 680 | } |
689 | dvb_ringbuffer_pkt_write(&ca->slot_info[slot].rx_buffer, buf, bytes_read); | 681 | dvb_ringbuffer_pkt_write(&ca->slot_info[slot].rx_buffer, buf, bytes_read); |
690 | up_read(&ca->slot_info[slot].sem); | ||
691 | } else { | 682 | } else { |
692 | memcpy(ebuf, buf, bytes_read); | 683 | memcpy(ebuf, buf, bytes_read); |
693 | } | 684 | } |
@@ -802,12 +793,8 @@ static int dvb_ca_en50221_slot_shutdown(struct dvb_ca_private *ca, int slot) | |||
802 | { | 793 | { |
803 | dprintk("%s\n", __FUNCTION__); | 794 | dprintk("%s\n", __FUNCTION__); |
804 | 795 | ||
805 | down_write(&ca->slot_info[slot].sem); | ||
806 | ca->pub->slot_shutdown(ca->pub, slot); | 796 | ca->pub->slot_shutdown(ca->pub, slot); |
807 | ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE; | 797 | ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE; |
808 | vfree(ca->slot_info[slot].rx_buffer.data); | ||
809 | ca->slot_info[slot].rx_buffer.data = NULL; | ||
810 | up_write(&ca->slot_info[slot].sem); | ||
811 | 798 | ||
812 | /* need to wake up all processes to check if they're now | 799 | /* need to wake up all processes to check if they're now |
813 | trying to write to a defunct CAM */ | 800 | trying to write to a defunct CAM */ |
@@ -893,7 +880,7 @@ void dvb_ca_en50221_frda_irq(struct dvb_ca_en50221 *pubca, int slot) | |||
893 | 880 | ||
894 | case DVB_CA_SLOTSTATE_RUNNING: | 881 | case DVB_CA_SLOTSTATE_RUNNING: |
895 | if (ca->open) | 882 | if (ca->open) |
896 | dvb_ca_en50221_read_data(ca, slot, NULL, 0); | 883 | dvb_ca_en50221_thread_wakeup(ca); |
897 | break; | 884 | break; |
898 | } | 885 | } |
899 | } | 886 | } |
@@ -1127,16 +1114,16 @@ static int dvb_ca_en50221_thread(void *data) | |||
1127 | break; | 1114 | break; |
1128 | } | 1115 | } |
1129 | 1116 | ||
1130 | rxbuf = vmalloc(RX_BUFFER_SIZE); | 1117 | if (ca->slot_info[slot].rx_buffer.data == NULL) { |
1131 | if (rxbuf == NULL) { | 1118 | rxbuf = vmalloc(RX_BUFFER_SIZE); |
1132 | printk("dvb_ca adapter %d: Unable to allocate CAM rx buffer :(\n", ca->dvbdev->adapter->num); | 1119 | if (rxbuf == NULL) { |
1133 | ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID; | 1120 | printk("dvb_ca adapter %d: Unable to allocate CAM rx buffer :(\n", ca->dvbdev->adapter->num); |
1134 | dvb_ca_en50221_thread_update_delay(ca); | 1121 | ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID; |
1135 | break; | 1122 | dvb_ca_en50221_thread_update_delay(ca); |
1123 | break; | ||
1124 | } | ||
1125 | dvb_ringbuffer_init(&ca->slot_info[slot].rx_buffer, rxbuf, RX_BUFFER_SIZE); | ||
1136 | } | 1126 | } |
1137 | down_write(&ca->slot_info[slot].sem); | ||
1138 | dvb_ringbuffer_init(&ca->slot_info[slot].rx_buffer, rxbuf, RX_BUFFER_SIZE); | ||
1139 | up_write(&ca->slot_info[slot].sem); | ||
1140 | 1127 | ||
1141 | ca->pub->slot_ts_enable(ca->pub, slot); | 1128 | ca->pub->slot_ts_enable(ca->pub, slot); |
1142 | ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_RUNNING; | 1129 | ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_RUNNING; |
@@ -1148,11 +1135,7 @@ static int dvb_ca_en50221_thread(void *data) | |||
1148 | if (!ca->open) | 1135 | if (!ca->open) |
1149 | continue; | 1136 | continue; |
1150 | 1137 | ||
1151 | // no need to poll if the CAM supports IRQs | 1138 | // poll slots for data |
1152 | if (ca->slot_info[slot].da_irq_supported) | ||
1153 | break; | ||
1154 | |||
1155 | // poll mode | ||
1156 | pktcount = 0; | 1139 | pktcount = 0; |
1157 | while ((status = dvb_ca_en50221_read_data(ca, slot, NULL, 0)) > 0) { | 1140 | while ((status = dvb_ca_en50221_read_data(ca, slot, NULL, 0)) > 0) { |
1158 | if (!ca->open) | 1141 | if (!ca->open) |
@@ -1367,12 +1350,13 @@ exit: | |||
1367 | /** | 1350 | /** |
1368 | * Condition for waking up in dvb_ca_en50221_io_read_condition | 1351 | * Condition for waking up in dvb_ca_en50221_io_read_condition |
1369 | */ | 1352 | */ |
1370 | static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private *ca, int *result, int *_slot) | 1353 | static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private *ca, |
1354 | int *result, int *_slot) | ||
1371 | { | 1355 | { |
1372 | int slot; | 1356 | int slot; |
1373 | int slot_count = 0; | 1357 | int slot_count = 0; |
1374 | int idx; | 1358 | int idx; |
1375 | int fraglen; | 1359 | size_t fraglen; |
1376 | int connection_id = -1; | 1360 | int connection_id = -1; |
1377 | int found = 0; | 1361 | int found = 0; |
1378 | u8 hdr[2]; | 1362 | u8 hdr[2]; |
@@ -1382,10 +1366,7 @@ static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private *ca, int *resu | |||
1382 | if (ca->slot_info[slot].slot_state != DVB_CA_SLOTSTATE_RUNNING) | 1366 | if (ca->slot_info[slot].slot_state != DVB_CA_SLOTSTATE_RUNNING) |
1383 | goto nextslot; | 1367 | goto nextslot; |
1384 | 1368 | ||
1385 | down_read(&ca->slot_info[slot].sem); | ||
1386 | |||
1387 | if (ca->slot_info[slot].rx_buffer.data == NULL) { | 1369 | if (ca->slot_info[slot].rx_buffer.data == NULL) { |
1388 | up_read(&ca->slot_info[slot].sem); | ||
1389 | return 0; | 1370 | return 0; |
1390 | } | 1371 | } |
1391 | 1372 | ||
@@ -1403,10 +1384,7 @@ static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private *ca, int *resu | |||
1403 | idx = dvb_ringbuffer_pkt_next(&ca->slot_info[slot].rx_buffer, idx, &fraglen); | 1384 | idx = dvb_ringbuffer_pkt_next(&ca->slot_info[slot].rx_buffer, idx, &fraglen); |
1404 | } | 1385 | } |
1405 | 1386 | ||
1406 | if (!found) | 1387 | nextslot: |
1407 | up_read(&ca->slot_info[slot].sem); | ||
1408 | |||
1409 | nextslot: | ||
1410 | slot = (slot + 1) % ca->slot_count; | 1388 | slot = (slot + 1) % ca->slot_count; |
1411 | slot_count++; | 1389 | slot_count++; |
1412 | } | 1390 | } |
@@ -1511,8 +1489,7 @@ static ssize_t dvb_ca_en50221_io_read(struct file *file, char __user * buf, | |||
1511 | goto exit; | 1489 | goto exit; |
1512 | status = pktlen; | 1490 | status = pktlen; |
1513 | 1491 | ||
1514 | exit: | 1492 | exit: |
1515 | up_read(&ca->slot_info[slot].sem); | ||
1516 | return status; | 1493 | return status; |
1517 | } | 1494 | } |
1518 | 1495 | ||
@@ -1544,11 +1521,11 @@ static int dvb_ca_en50221_io_open(struct inode *inode, struct file *file) | |||
1544 | for (i = 0; i < ca->slot_count; i++) { | 1521 | for (i = 0; i < ca->slot_count; i++) { |
1545 | 1522 | ||
1546 | if (ca->slot_info[i].slot_state == DVB_CA_SLOTSTATE_RUNNING) { | 1523 | if (ca->slot_info[i].slot_state == DVB_CA_SLOTSTATE_RUNNING) { |
1547 | down_write(&ca->slot_info[i].sem); | ||
1548 | if (ca->slot_info[i].rx_buffer.data != NULL) { | 1524 | if (ca->slot_info[i].rx_buffer.data != NULL) { |
1525 | /* it is safe to call this here without locks because | ||
1526 | * ca->open == 0. Data is not read in this case */ | ||
1549 | dvb_ringbuffer_flush(&ca->slot_info[i].rx_buffer); | 1527 | dvb_ringbuffer_flush(&ca->slot_info[i].rx_buffer); |
1550 | } | 1528 | } |
1551 | up_write(&ca->slot_info[i].sem); | ||
1552 | } | 1529 | } |
1553 | } | 1530 | } |
1554 | 1531 | ||
@@ -1607,7 +1584,6 @@ static unsigned int dvb_ca_en50221_io_poll(struct file *file, poll_table * wait) | |||
1607 | dprintk("%s\n", __FUNCTION__); | 1584 | dprintk("%s\n", __FUNCTION__); |
1608 | 1585 | ||
1609 | if (dvb_ca_en50221_io_read_condition(ca, &result, &slot) == 1) { | 1586 | if (dvb_ca_en50221_io_read_condition(ca, &result, &slot) == 1) { |
1610 | up_read(&ca->slot_info[slot].sem); | ||
1611 | mask |= POLLIN; | 1587 | mask |= POLLIN; |
1612 | } | 1588 | } |
1613 | 1589 | ||
@@ -1619,7 +1595,6 @@ static unsigned int dvb_ca_en50221_io_poll(struct file *file, poll_table * wait) | |||
1619 | poll_wait(file, &ca->wait_queue, wait); | 1595 | poll_wait(file, &ca->wait_queue, wait); |
1620 | 1596 | ||
1621 | if (dvb_ca_en50221_io_read_condition(ca, &result, &slot) == 1) { | 1597 | if (dvb_ca_en50221_io_read_condition(ca, &result, &slot) == 1) { |
1622 | up_read(&ca->slot_info[slot].sem); | ||
1623 | mask |= POLLIN; | 1598 | mask |= POLLIN; |
1624 | } | 1599 | } |
1625 | 1600 | ||
@@ -1709,7 +1684,6 @@ int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter, | |||
1709 | ca->slot_info[i].slot_state = DVB_CA_SLOTSTATE_NONE; | 1684 | ca->slot_info[i].slot_state = DVB_CA_SLOTSTATE_NONE; |
1710 | atomic_set(&ca->slot_info[i].camchange_count, 0); | 1685 | atomic_set(&ca->slot_info[i].camchange_count, 0); |
1711 | ca->slot_info[i].camchange_type = DVB_CA_EN50221_CAMCHANGE_REMOVED; | 1686 | ca->slot_info[i].camchange_type = DVB_CA_EN50221_CAMCHANGE_REMOVED; |
1712 | init_rwsem(&ca->slot_info[i].sem); | ||
1713 | } | 1687 | } |
1714 | 1688 | ||
1715 | if (signal_pending(current)) { | 1689 | if (signal_pending(current)) { |
@@ -1729,7 +1703,7 @@ int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter, | |||
1729 | ca->thread_pid = ret; | 1703 | ca->thread_pid = ret; |
1730 | return 0; | 1704 | return 0; |
1731 | 1705 | ||
1732 | error: | 1706 | error: |
1733 | if (ca != NULL) { | 1707 | if (ca != NULL) { |
1734 | if (ca->dvbdev != NULL) | 1708 | if (ca->dvbdev != NULL) |
1735 | dvb_unregister_device(ca->dvbdev); | 1709 | dvb_unregister_device(ca->dvbdev); |
@@ -1771,6 +1745,9 @@ void dvb_ca_en50221_release(struct dvb_ca_en50221 *pubca) | |||
1771 | 1745 | ||
1772 | for (i = 0; i < ca->slot_count; i++) { | 1746 | for (i = 0; i < ca->slot_count; i++) { |
1773 | dvb_ca_en50221_slot_shutdown(ca, i); | 1747 | dvb_ca_en50221_slot_shutdown(ca, i); |
1748 | if (ca->slot_info[i].rx_buffer.data != NULL) { | ||
1749 | vfree(ca->slot_info[i].rx_buffer.data); | ||
1750 | } | ||
1774 | } | 1751 | } |
1775 | kfree(ca->slot_info); | 1752 | kfree(ca->slot_info); |
1776 | dvb_unregister_device(ca->dvbdev); | 1753 | dvb_unregister_device(ca->dvbdev); |
diff --git a/drivers/media/dvb/dvb-core/dvb_filter.c b/drivers/media/dvb/dvb-core/dvb_filter.c index bd514390608..c49fd0bd718 100644 --- a/drivers/media/dvb/dvb-core/dvb_filter.c +++ b/drivers/media/dvb/dvb-core/dvb_filter.c | |||
@@ -72,12 +72,12 @@ static int read_picture_header(u8 *headr, struct mpg_picture *pic, int field, in | |||
72 | u8 pct; | 72 | u8 pct; |
73 | 73 | ||
74 | if (pr) printk( "Pic header: "); | 74 | if (pr) printk( "Pic header: "); |
75 | pic->temporal_reference[field] = (( headr[0] << 2 ) | | 75 | pic->temporal_reference[field] = (( headr[0] << 2 ) | |
76 | (headr[1] & 0x03) )& 0x03ff; | 76 | (headr[1] & 0x03) )& 0x03ff; |
77 | if (pr) printk( " temp ref: 0x%04x", pic->temporal_reference[field]); | 77 | if (pr) printk( " temp ref: 0x%04x", pic->temporal_reference[field]); |
78 | 78 | ||
79 | pct = ( headr[1] >> 2 ) & 0x07; | 79 | pct = ( headr[1] >> 2 ) & 0x07; |
80 | pic->picture_coding_type[field] = pct; | 80 | pic->picture_coding_type[field] = pct; |
81 | if (pr) { | 81 | if (pr) { |
82 | switch(pct){ | 82 | switch(pct){ |
83 | case I_FRAME: | 83 | case I_FRAME: |
@@ -93,17 +93,17 @@ static int read_picture_header(u8 *headr, struct mpg_picture *pic, int field, in | |||
93 | } | 93 | } |
94 | 94 | ||
95 | 95 | ||
96 | pic->vinfo.vbv_delay = (( headr[1] >> 5 ) | ( headr[2] << 3) | | 96 | pic->vinfo.vbv_delay = (( headr[1] >> 5 ) | ( headr[2] << 3) | |
97 | ( (headr[3] & 0x1F) << 11) ) & 0xffff; | 97 | ( (headr[3] & 0x1F) << 11) ) & 0xffff; |
98 | 98 | ||
99 | if (pr) printk( " vbv delay: 0x%04x", pic->vinfo.vbv_delay); | 99 | if (pr) printk( " vbv delay: 0x%04x", pic->vinfo.vbv_delay); |
100 | 100 | ||
101 | pic->picture_header_parameter = ( headr[3] & 0xe0 ) | | 101 | pic->picture_header_parameter = ( headr[3] & 0xe0 ) | |
102 | ((headr[4] & 0x80) >> 3); | 102 | ((headr[4] & 0x80) >> 3); |
103 | 103 | ||
104 | if ( pct == B_FRAME ){ | 104 | if ( pct == B_FRAME ){ |
105 | pic->picture_header_parameter |= ( headr[4] >> 3 ) & 0x0f; | 105 | pic->picture_header_parameter |= ( headr[4] >> 3 ) & 0x0f; |
106 | } | 106 | } |
107 | if (pr) printk( " pic head param: 0x%x", | 107 | if (pr) printk( " pic head param: 0x%x", |
108 | pic->picture_header_parameter); | 108 | pic->picture_header_parameter); |
109 | 109 | ||
@@ -124,18 +124,18 @@ static int read_gop_header(u8 *headr, struct mpg_picture *pic, int pr) | |||
124 | ((headr[0]<<4)& 0x30)| ((headr[1]>>4)& 0x0F), | 124 | ((headr[0]<<4)& 0x30)| ((headr[1]>>4)& 0x0F), |
125 | ((headr[1]<<3)& 0x38)| ((headr[2]>>5)& 0x0F)); | 125 | ((headr[1]<<3)& 0x38)| ((headr[2]>>5)& 0x0F)); |
126 | 126 | ||
127 | if ( ( headr[3] & 0x40 ) != 0 ){ | 127 | if ( ( headr[3] & 0x40 ) != 0 ){ |
128 | pic->closed_gop = 1; | 128 | pic->closed_gop = 1; |
129 | } else { | 129 | } else { |
130 | pic->closed_gop = 0; | 130 | pic->closed_gop = 0; |
131 | } | 131 | } |
132 | if (pr) printk("closed: %d", pic->closed_gop); | 132 | if (pr) printk("closed: %d", pic->closed_gop); |
133 | 133 | ||
134 | if ( ( headr[3] & 0x20 ) != 0 ){ | 134 | if ( ( headr[3] & 0x20 ) != 0 ){ |
135 | pic->broken_link = 1; | 135 | pic->broken_link = 1; |
136 | } else { | 136 | } else { |
137 | pic->broken_link = 0; | 137 | pic->broken_link = 0; |
138 | } | 138 | } |
139 | if (pr) printk(" broken: %d\n", pic->broken_link); | 139 | if (pr) printk(" broken: %d\n", pic->broken_link); |
140 | 140 | ||
141 | return 0; | 141 | return 0; |
@@ -146,7 +146,7 @@ static int read_gop_header(u8 *headr, struct mpg_picture *pic, int pr) | |||
146 | /* needs 8 byte input */ | 146 | /* needs 8 byte input */ |
147 | static int read_sequence_header(u8 *headr, struct dvb_video_info *vi, int pr) | 147 | static int read_sequence_header(u8 *headr, struct dvb_video_info *vi, int pr) |
148 | { | 148 | { |
149 | int sw; | 149 | int sw; |
150 | int form = -1; | 150 | int form = -1; |
151 | 151 | ||
152 | if (pr) printk("Reading sequence header\n"); | 152 | if (pr) printk("Reading sequence header\n"); |
@@ -154,9 +154,9 @@ static int read_sequence_header(u8 *headr, struct dvb_video_info *vi, int pr) | |||
154 | vi->horizontal_size = ((headr[1] &0xF0) >> 4) | (headr[0] << 4); | 154 | vi->horizontal_size = ((headr[1] &0xF0) >> 4) | (headr[0] << 4); |
155 | vi->vertical_size = ((headr[1] &0x0F) << 8) | (headr[2]); | 155 | vi->vertical_size = ((headr[1] &0x0F) << 8) | (headr[2]); |
156 | 156 | ||
157 | sw = (int)((headr[3]&0xF0) >> 4) ; | 157 | sw = (int)((headr[3]&0xF0) >> 4) ; |
158 | 158 | ||
159 | switch( sw ){ | 159 | switch( sw ){ |
160 | case 1: | 160 | case 1: |
161 | if (pr) | 161 | if (pr) |
162 | printk("Videostream: ASPECT: 1:1"); | 162 | printk("Videostream: ASPECT: 1:1"); |
@@ -165,84 +165,84 @@ static int read_sequence_header(u8 *headr, struct dvb_video_info *vi, int pr) | |||
165 | case 2: | 165 | case 2: |
166 | if (pr) | 166 | if (pr) |
167 | printk("Videostream: ASPECT: 4:3"); | 167 | printk("Videostream: ASPECT: 4:3"); |
168 | vi->aspect_ratio = 133; | 168 | vi->aspect_ratio = 133; |
169 | break; | 169 | break; |
170 | case 3: | 170 | case 3: |
171 | if (pr) | 171 | if (pr) |
172 | printk("Videostream: ASPECT: 16:9"); | 172 | printk("Videostream: ASPECT: 16:9"); |
173 | vi->aspect_ratio = 177; | 173 | vi->aspect_ratio = 177; |
174 | break; | 174 | break; |
175 | case 4: | 175 | case 4: |
176 | if (pr) | 176 | if (pr) |
177 | printk("Videostream: ASPECT: 2.21:1"); | 177 | printk("Videostream: ASPECT: 2.21:1"); |
178 | vi->aspect_ratio = 221; | 178 | vi->aspect_ratio = 221; |
179 | break; | 179 | break; |
180 | 180 | ||
181 | case 5 ... 15: | 181 | case 5 ... 15: |
182 | if (pr) | 182 | if (pr) |
183 | printk("Videostream: ASPECT: reserved"); | 183 | printk("Videostream: ASPECT: reserved"); |
184 | vi->aspect_ratio = 0; | 184 | vi->aspect_ratio = 0; |
185 | break; | 185 | break; |
186 | 186 | ||
187 | default: | 187 | default: |
188 | vi->aspect_ratio = 0; | 188 | vi->aspect_ratio = 0; |
189 | return -1; | 189 | return -1; |
190 | } | 190 | } |
191 | 191 | ||
192 | if (pr) | 192 | if (pr) |
193 | printk(" Size = %dx%d",vi->horizontal_size,vi->vertical_size); | 193 | printk(" Size = %dx%d",vi->horizontal_size,vi->vertical_size); |
194 | 194 | ||
195 | sw = (int)(headr[3]&0x0F); | 195 | sw = (int)(headr[3]&0x0F); |
196 | 196 | ||
197 | switch ( sw ) { | 197 | switch ( sw ) { |
198 | case 1: | 198 | case 1: |
199 | if (pr) | 199 | if (pr) |
200 | printk(" FRate: 23.976 fps"); | 200 | printk(" FRate: 23.976 fps"); |
201 | vi->framerate = 23976; | 201 | vi->framerate = 23976; |
202 | form = -1; | 202 | form = -1; |
203 | break; | 203 | break; |
204 | case 2: | 204 | case 2: |
205 | if (pr) | 205 | if (pr) |
206 | printk(" FRate: 24 fps"); | 206 | printk(" FRate: 24 fps"); |
207 | vi->framerate = 24000; | 207 | vi->framerate = 24000; |
208 | form = -1; | 208 | form = -1; |
209 | break; | 209 | break; |
210 | case 3: | 210 | case 3: |
211 | if (pr) | 211 | if (pr) |
212 | printk(" FRate: 25 fps"); | 212 | printk(" FRate: 25 fps"); |
213 | vi->framerate = 25000; | 213 | vi->framerate = 25000; |
214 | form = VIDEO_MODE_PAL; | 214 | form = VIDEO_MODE_PAL; |
215 | break; | 215 | break; |
216 | case 4: | 216 | case 4: |
217 | if (pr) | 217 | if (pr) |
218 | printk(" FRate: 29.97 fps"); | 218 | printk(" FRate: 29.97 fps"); |
219 | vi->framerate = 29970; | 219 | vi->framerate = 29970; |
220 | form = VIDEO_MODE_NTSC; | 220 | form = VIDEO_MODE_NTSC; |
221 | break; | 221 | break; |
222 | case 5: | 222 | case 5: |
223 | if (pr) | 223 | if (pr) |
224 | printk(" FRate: 30 fps"); | 224 | printk(" FRate: 30 fps"); |
225 | vi->framerate = 30000; | 225 | vi->framerate = 30000; |
226 | form = VIDEO_MODE_NTSC; | 226 | form = VIDEO_MODE_NTSC; |
227 | break; | 227 | break; |
228 | case 6: | 228 | case 6: |
229 | if (pr) | 229 | if (pr) |
230 | printk(" FRate: 50 fps"); | 230 | printk(" FRate: 50 fps"); |
231 | vi->framerate = 50000; | 231 | vi->framerate = 50000; |
232 | form = VIDEO_MODE_PAL; | 232 | form = VIDEO_MODE_PAL; |
233 | break; | 233 | break; |
234 | case 7: | 234 | case 7: |
235 | if (pr) | 235 | if (pr) |
236 | printk(" FRate: 60 fps"); | 236 | printk(" FRate: 60 fps"); |
237 | vi->framerate = 60000; | 237 | vi->framerate = 60000; |
238 | form = VIDEO_MODE_NTSC; | 238 | form = VIDEO_MODE_NTSC; |
239 | break; | 239 | break; |
240 | } | 240 | } |
241 | 241 | ||
242 | vi->bit_rate = (headr[4] << 10) | (headr[5] << 2) | (headr[6] & 0x03); | 242 | vi->bit_rate = (headr[4] << 10) | (headr[5] << 2) | (headr[6] & 0x03); |
243 | 243 | ||
244 | vi->vbv_buffer_size | 244 | vi->vbv_buffer_size |
245 | = (( headr[6] & 0xF8) >> 3 ) | (( headr[7] & 0x1F )<< 5); | 245 | = (( headr[6] & 0xF8) >> 3 ) | (( headr[7] & 0x1F )<< 5); |
246 | 246 | ||
247 | if (pr){ | 247 | if (pr){ |
248 | printk(" BRate: %d Mbit/s",4*(vi->bit_rate)/10000); | 248 | printk(" BRate: %d Mbit/s",4*(vi->bit_rate)/10000); |
@@ -250,7 +250,7 @@ static int read_sequence_header(u8 *headr, struct dvb_video_info *vi, int pr) | |||
250 | printk("\n"); | 250 | printk("\n"); |
251 | } | 251 | } |
252 | 252 | ||
253 | vi->video_format = form; | 253 | vi->video_format = form; |
254 | 254 | ||
255 | return 0; | 255 | return 0; |
256 | } | 256 | } |
@@ -308,7 +308,7 @@ static int get_ainfo(u8 *mbuf, int count, struct dvb_audio_info *ai, int pr) | |||
308 | if (!found) return -1; | 308 | if (!found) return -1; |
309 | 309 | ||
310 | if (c+3 >= count) return -1; | 310 | if (c+3 >= count) return -1; |
311 | headr = mbuf+c; | 311 | headr = mbuf+c; |
312 | 312 | ||
313 | ai->layer = (headr[1] & 0x06) >> 1; | 313 | ai->layer = (headr[1] & 0x06) >> 1; |
314 | 314 | ||
@@ -368,7 +368,7 @@ int dvb_filter_get_ac3info(u8 *mbuf, int count, struct dvb_audio_info *ai, int p | |||
368 | if (c+5 >= count) return -1; | 368 | if (c+5 >= count) return -1; |
369 | 369 | ||
370 | ai->layer = 0; // 0 for AC3 | 370 | ai->layer = 0; // 0 for AC3 |
371 | headr = mbuf+c+2; | 371 | headr = mbuf+c+2; |
372 | 372 | ||
373 | frame = (headr[2]&0x3f); | 373 | frame = (headr[2]&0x3f); |
374 | ai->bit_rate = ac3_bitrates[frame >> 1]*1000; | 374 | ai->bit_rate = ac3_bitrates[frame >> 1]*1000; |
@@ -396,159 +396,159 @@ EXPORT_SYMBOL(dvb_filter_get_ac3info); | |||
396 | #if 0 | 396 | #if 0 |
397 | static u8 *skip_pes_header(u8 **bufp) | 397 | static u8 *skip_pes_header(u8 **bufp) |
398 | { | 398 | { |
399 | u8 *inbuf = *bufp; | 399 | u8 *inbuf = *bufp; |
400 | u8 *buf = inbuf; | 400 | u8 *buf = inbuf; |
401 | u8 *pts = NULL; | 401 | u8 *pts = NULL; |
402 | int skip = 0; | 402 | int skip = 0; |
403 | 403 | ||
404 | static const int mpeg1_skip_table[16] = { | 404 | static const int mpeg1_skip_table[16] = { |
405 | 1, 0xffff, 5, 10, 0xffff, 0xffff, 0xffff, 0xffff, | 405 | 1, 0xffff, 5, 10, 0xffff, 0xffff, 0xffff, 0xffff, |
406 | 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff | 406 | 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff |
407 | }; | 407 | }; |
408 | 408 | ||
409 | 409 | ||
410 | if ((inbuf[6] & 0xc0) == 0x80){ /* mpeg2 */ | 410 | if ((inbuf[6] & 0xc0) == 0x80){ /* mpeg2 */ |
411 | if (buf[7] & PTS_ONLY) | 411 | if (buf[7] & PTS_ONLY) |
412 | pts = buf+9; | 412 | pts = buf+9; |
413 | else pts = NULL; | 413 | else pts = NULL; |
414 | buf = inbuf + 9 + inbuf[8]; | 414 | buf = inbuf + 9 + inbuf[8]; |
415 | } else { /* mpeg1 */ | 415 | } else { /* mpeg1 */ |
416 | for (buf = inbuf + 6; *buf == 0xff; buf++) | 416 | for (buf = inbuf + 6; *buf == 0xff; buf++) |
417 | if (buf == inbuf + 6 + 16) { | 417 | if (buf == inbuf + 6 + 16) { |
418 | break; | 418 | break; |
419 | } | 419 | } |
420 | if ((*buf & 0xc0) == 0x40) | 420 | if ((*buf & 0xc0) == 0x40) |
421 | buf += 2; | 421 | buf += 2; |
422 | skip = mpeg1_skip_table [*buf >> 4]; | 422 | skip = mpeg1_skip_table [*buf >> 4]; |
423 | if (skip == 5 || skip == 10) pts = buf; | 423 | if (skip == 5 || skip == 10) pts = buf; |
424 | else pts = NULL; | 424 | else pts = NULL; |
425 | 425 | ||
426 | buf += mpeg1_skip_table [*buf >> 4]; | 426 | buf += mpeg1_skip_table [*buf >> 4]; |
427 | } | 427 | } |
428 | 428 | ||
429 | *bufp = buf; | 429 | *bufp = buf; |
430 | return pts; | 430 | return pts; |
431 | } | 431 | } |
432 | #endif | 432 | #endif |
433 | 433 | ||
434 | #if 0 | 434 | #if 0 |
435 | static void initialize_quant_matrix( u32 *matrix ) | 435 | static void initialize_quant_matrix( u32 *matrix ) |
436 | { | 436 | { |
437 | int i; | 437 | int i; |
438 | 438 | ||
439 | matrix[0] = 0x08101013; | 439 | matrix[0] = 0x08101013; |
440 | matrix[1] = 0x10131616; | 440 | matrix[1] = 0x10131616; |
441 | matrix[2] = 0x16161616; | 441 | matrix[2] = 0x16161616; |
442 | matrix[3] = 0x1a181a1b; | 442 | matrix[3] = 0x1a181a1b; |
443 | matrix[4] = 0x1b1b1a1a; | 443 | matrix[4] = 0x1b1b1a1a; |
444 | matrix[5] = 0x1a1a1b1b; | 444 | matrix[5] = 0x1a1a1b1b; |
445 | matrix[6] = 0x1b1d1d1d; | 445 | matrix[6] = 0x1b1d1d1d; |
446 | matrix[7] = 0x2222221d; | 446 | matrix[7] = 0x2222221d; |
447 | matrix[8] = 0x1d1d1b1b; | 447 | matrix[8] = 0x1d1d1b1b; |
448 | matrix[9] = 0x1d1d2020; | 448 | matrix[9] = 0x1d1d2020; |
449 | matrix[10] = 0x22222526; | 449 | matrix[10] = 0x22222526; |
450 | matrix[11] = 0x25232322; | 450 | matrix[11] = 0x25232322; |
451 | matrix[12] = 0x23262628; | 451 | matrix[12] = 0x23262628; |
452 | matrix[13] = 0x28283030; | 452 | matrix[13] = 0x28283030; |
453 | matrix[14] = 0x2e2e3838; | 453 | matrix[14] = 0x2e2e3838; |
454 | matrix[15] = 0x3a454553; | 454 | matrix[15] = 0x3a454553; |
455 | 455 | ||
456 | for ( i = 16 ; i < 32 ; i++ ) | 456 | for ( i = 16 ; i < 32 ; i++ ) |
457 | matrix[i] = 0x10101010; | 457 | matrix[i] = 0x10101010; |
458 | } | 458 | } |
459 | #endif | 459 | #endif |
460 | 460 | ||
461 | #if 0 | 461 | #if 0 |
462 | static void initialize_mpg_picture(struct mpg_picture *pic) | 462 | static void initialize_mpg_picture(struct mpg_picture *pic) |
463 | { | 463 | { |
464 | int i; | 464 | int i; |
465 | 465 | ||
466 | /* set MPEG1 */ | 466 | /* set MPEG1 */ |
467 | pic->mpeg1_flag = 1; | 467 | pic->mpeg1_flag = 1; |
468 | pic->profile_and_level = 0x4A ; /* MP@LL */ | 468 | pic->profile_and_level = 0x4A ; /* MP@LL */ |
469 | pic->progressive_sequence = 1; | 469 | pic->progressive_sequence = 1; |
470 | pic->low_delay = 0; | 470 | pic->low_delay = 0; |
471 | 471 | ||
472 | pic->sequence_display_extension_flag = 0; | 472 | pic->sequence_display_extension_flag = 0; |
473 | for ( i = 0 ; i < 4 ; i++ ){ | 473 | for ( i = 0 ; i < 4 ; i++ ){ |
474 | pic->frame_centre_horizontal_offset[i] = 0; | 474 | pic->frame_centre_horizontal_offset[i] = 0; |
475 | pic->frame_centre_vertical_offset[i] = 0; | 475 | pic->frame_centre_vertical_offset[i] = 0; |
476 | } | 476 | } |
477 | pic->last_frame_centre_horizontal_offset = 0; | 477 | pic->last_frame_centre_horizontal_offset = 0; |
478 | pic->last_frame_centre_vertical_offset = 0; | 478 | pic->last_frame_centre_vertical_offset = 0; |
479 | 479 | ||
480 | pic->picture_display_extension_flag[0] = 0; | 480 | pic->picture_display_extension_flag[0] = 0; |
481 | pic->picture_display_extension_flag[1] = 0; | 481 | pic->picture_display_extension_flag[1] = 0; |
482 | pic->sequence_header_flag = 0; | 482 | pic->sequence_header_flag = 0; |
483 | pic->gop_flag = 0; | 483 | pic->gop_flag = 0; |
484 | pic->sequence_end_flag = 0; | 484 | pic->sequence_end_flag = 0; |
485 | } | 485 | } |
486 | #endif | 486 | #endif |
487 | 487 | ||
488 | #if 0 | 488 | #if 0 |
489 | static void mpg_set_picture_parameter( int32_t field_type, struct mpg_picture *pic ) | 489 | static void mpg_set_picture_parameter( int32_t field_type, struct mpg_picture *pic ) |
490 | { | 490 | { |
491 | int16_t last_h_offset; | 491 | int16_t last_h_offset; |
492 | int16_t last_v_offset; | 492 | int16_t last_v_offset; |
493 | 493 | ||
494 | int16_t *p_h_offset; | 494 | int16_t *p_h_offset; |
495 | int16_t *p_v_offset; | 495 | int16_t *p_v_offset; |
496 | 496 | ||
497 | if ( pic->mpeg1_flag ){ | 497 | if ( pic->mpeg1_flag ){ |
498 | pic->picture_structure[field_type] = VIDEO_FRAME_PICTURE; | 498 | pic->picture_structure[field_type] = VIDEO_FRAME_PICTURE; |
499 | pic->top_field_first = 0; | 499 | pic->top_field_first = 0; |
500 | pic->repeat_first_field = 0; | 500 | pic->repeat_first_field = 0; |
501 | pic->progressive_frame = 1; | 501 | pic->progressive_frame = 1; |
502 | pic->picture_coding_parameter = 0x000010; | 502 | pic->picture_coding_parameter = 0x000010; |
503 | } | 503 | } |
504 | 504 | ||
505 | /* Reset flag */ | 505 | /* Reset flag */ |
506 | pic->picture_display_extension_flag[field_type] = 0; | 506 | pic->picture_display_extension_flag[field_type] = 0; |
507 | 507 | ||
508 | last_h_offset = pic->last_frame_centre_horizontal_offset; | 508 | last_h_offset = pic->last_frame_centre_horizontal_offset; |
509 | last_v_offset = pic->last_frame_centre_vertical_offset; | 509 | last_v_offset = pic->last_frame_centre_vertical_offset; |
510 | if ( field_type == FIRST_FIELD ){ | 510 | if ( field_type == FIRST_FIELD ){ |
511 | p_h_offset = pic->frame_centre_horizontal_offset; | 511 | p_h_offset = pic->frame_centre_horizontal_offset; |
512 | p_v_offset = pic->frame_centre_vertical_offset; | 512 | p_v_offset = pic->frame_centre_vertical_offset; |
513 | *p_h_offset = last_h_offset; | 513 | *p_h_offset = last_h_offset; |
514 | *(p_h_offset + 1) = last_h_offset; | 514 | *(p_h_offset + 1) = last_h_offset; |
515 | *(p_h_offset + 2) = last_h_offset; | 515 | *(p_h_offset + 2) = last_h_offset; |
516 | *p_v_offset = last_v_offset; | 516 | *p_v_offset = last_v_offset; |
517 | *(p_v_offset + 1) = last_v_offset; | 517 | *(p_v_offset + 1) = last_v_offset; |
518 | *(p_v_offset + 2) = last_v_offset; | 518 | *(p_v_offset + 2) = last_v_offset; |
519 | } else { | 519 | } else { |
520 | pic->frame_centre_horizontal_offset[3] = last_h_offset; | 520 | pic->frame_centre_horizontal_offset[3] = last_h_offset; |
521 | pic->frame_centre_vertical_offset[3] = last_v_offset; | 521 | pic->frame_centre_vertical_offset[3] = last_v_offset; |
522 | } | 522 | } |
523 | } | 523 | } |
524 | #endif | 524 | #endif |
525 | 525 | ||
526 | #if 0 | 526 | #if 0 |
527 | static void init_mpg_picture( struct mpg_picture *pic, int chan, int32_t field_type) | 527 | static void init_mpg_picture( struct mpg_picture *pic, int chan, int32_t field_type) |
528 | { | 528 | { |
529 | pic->picture_header = 0; | 529 | pic->picture_header = 0; |
530 | pic->sequence_header_data | 530 | pic->sequence_header_data |
531 | = ( INIT_HORIZONTAL_SIZE << 20 ) | 531 | = ( INIT_HORIZONTAL_SIZE << 20 ) |
532 | | ( INIT_VERTICAL_SIZE << 8 ) | 532 | | ( INIT_VERTICAL_SIZE << 8 ) |
533 | | ( INIT_ASPECT_RATIO << 4 ) | 533 | | ( INIT_ASPECT_RATIO << 4 ) |
534 | | ( INIT_FRAME_RATE ); | 534 | | ( INIT_FRAME_RATE ); |
535 | pic->mpeg1_flag = 0; | 535 | pic->mpeg1_flag = 0; |
536 | pic->vinfo.horizontal_size | 536 | pic->vinfo.horizontal_size |
537 | = INIT_DISP_HORIZONTAL_SIZE; | 537 | = INIT_DISP_HORIZONTAL_SIZE; |
538 | pic->vinfo.vertical_size | 538 | pic->vinfo.vertical_size |
539 | = INIT_DISP_VERTICAL_SIZE; | 539 | = INIT_DISP_VERTICAL_SIZE; |
540 | pic->picture_display_extension_flag[field_type] | 540 | pic->picture_display_extension_flag[field_type] |
541 | = 0; | 541 | = 0; |
542 | pic->pts_flag[field_type] = 0; | 542 | pic->pts_flag[field_type] = 0; |
543 | 543 | ||
544 | pic->sequence_gop_header = 0; | 544 | pic->sequence_gop_header = 0; |
545 | pic->picture_header = 0; | 545 | pic->picture_header = 0; |
546 | pic->sequence_header_flag = 0; | 546 | pic->sequence_header_flag = 0; |
547 | pic->gop_flag = 0; | 547 | pic->gop_flag = 0; |
548 | pic->sequence_end_flag = 0; | 548 | pic->sequence_end_flag = 0; |
549 | pic->sequence_display_extension_flag = 0; | 549 | pic->sequence_display_extension_flag = 0; |
550 | pic->last_frame_centre_horizontal_offset = 0; | 550 | pic->last_frame_centre_horizontal_offset = 0; |
551 | pic->last_frame_centre_vertical_offset = 0; | 551 | pic->last_frame_centre_vertical_offset = 0; |
552 | pic->channel = chan; | 552 | pic->channel = chan; |
553 | } | 553 | } |
554 | #endif | 554 | #endif |
@@ -588,11 +588,11 @@ int dvb_filter_pes2ts(struct dvb_filter_pes2ts *p2ts, unsigned char *pes, | |||
588 | buf[1]&=~0x40; | 588 | buf[1]&=~0x40; |
589 | } | 589 | } |
590 | if (!len) | 590 | if (!len) |
591 | return 0; | 591 | return 0; |
592 | buf[3]=0x30|((p2ts->cc++)&0x0f); | 592 | buf[3]=0x30|((p2ts->cc++)&0x0f); |
593 | rest=183-len; | 593 | rest=183-len; |
594 | if (rest) { | 594 | if (rest) { |
595 | buf[5]=0x00; | 595 | buf[5]=0x00; |
596 | if (rest-1) | 596 | if (rest-1) |
597 | memset(buf+6, 0xff, rest-1); | 597 | memset(buf+6, 0xff, rest-1); |
598 | } | 598 | } |
diff --git a/drivers/media/dvb/dvb-core/dvb_filter.h b/drivers/media/dvb/dvb-core/dvb_filter.h index b0848f7836b..375e3be184b 100644 --- a/drivers/media/dvb/dvb-core/dvb_filter.h +++ b/drivers/media/dvb/dvb-core/dvb_filter.h | |||
@@ -29,8 +29,8 @@ typedef int (dvb_filter_pes2ts_cb_t) (void *, unsigned char *); | |||
29 | 29 | ||
30 | struct dvb_filter_pes2ts { | 30 | struct dvb_filter_pes2ts { |
31 | unsigned char buf[188]; | 31 | unsigned char buf[188]; |
32 | unsigned char cc; | 32 | unsigned char cc; |
33 | dvb_filter_pes2ts_cb_t *cb; | 33 | dvb_filter_pes2ts_cb_t *cb; |
34 | void *priv; | 34 | void *priv; |
35 | }; | 35 | }; |
36 | 36 | ||
@@ -162,7 +162,7 @@ struct dvb_video_info { | |||
162 | u32 bit_rate; | 162 | u32 bit_rate; |
163 | u32 comp_bit_rate; | 163 | u32 comp_bit_rate; |
164 | u32 vbv_buffer_size; | 164 | u32 vbv_buffer_size; |
165 | s16 vbv_delay; | 165 | s16 vbv_delay; |
166 | u32 CSPF; | 166 | u32 CSPF; |
167 | u32 off; | 167 | u32 off; |
168 | }; | 168 | }; |
@@ -173,60 +173,60 @@ struct dvb_video_info { | |||
173 | #define VIDEO_FRAME_PICTURE 0x03 | 173 | #define VIDEO_FRAME_PICTURE 0x03 |
174 | 174 | ||
175 | struct mpg_picture { | 175 | struct mpg_picture { |
176 | int channel; | 176 | int channel; |
177 | struct dvb_video_info vinfo; | 177 | struct dvb_video_info vinfo; |
178 | u32 *sequence_gop_header; | 178 | u32 *sequence_gop_header; |
179 | u32 *picture_header; | 179 | u32 *picture_header; |
180 | s32 time_code; | 180 | s32 time_code; |
181 | int low_delay; | 181 | int low_delay; |
182 | int closed_gop; | 182 | int closed_gop; |
183 | int broken_link; | 183 | int broken_link; |
184 | int sequence_header_flag; | 184 | int sequence_header_flag; |
185 | int gop_flag; | 185 | int gop_flag; |
186 | int sequence_end_flag; | 186 | int sequence_end_flag; |
187 | 187 | ||
188 | u8 profile_and_level; | 188 | u8 profile_and_level; |
189 | s32 picture_coding_parameter; | 189 | s32 picture_coding_parameter; |
190 | u32 matrix[32]; | 190 | u32 matrix[32]; |
191 | s8 matrix_change_flag; | 191 | s8 matrix_change_flag; |
192 | 192 | ||
193 | u8 picture_header_parameter; | 193 | u8 picture_header_parameter; |
194 | /* bit 0 - 2: bwd f code | 194 | /* bit 0 - 2: bwd f code |
195 | bit 3 : fpb vector | 195 | bit 3 : fpb vector |
196 | bit 4 - 6: fwd f code | 196 | bit 4 - 6: fwd f code |
197 | bit 7 : fpf vector */ | 197 | bit 7 : fpf vector */ |
198 | 198 | ||
199 | int mpeg1_flag; | 199 | int mpeg1_flag; |
200 | int progressive_sequence; | 200 | int progressive_sequence; |
201 | int sequence_display_extension_flag; | 201 | int sequence_display_extension_flag; |
202 | u32 sequence_header_data; | 202 | u32 sequence_header_data; |
203 | s16 last_frame_centre_horizontal_offset; | 203 | s16 last_frame_centre_horizontal_offset; |
204 | s16 last_frame_centre_vertical_offset; | 204 | s16 last_frame_centre_vertical_offset; |
205 | 205 | ||
206 | u32 pts[2]; /* [0] 1st field, [1] 2nd field */ | 206 | u32 pts[2]; /* [0] 1st field, [1] 2nd field */ |
207 | int top_field_first; | 207 | int top_field_first; |
208 | int repeat_first_field; | 208 | int repeat_first_field; |
209 | int progressive_frame; | 209 | int progressive_frame; |
210 | int bank; | 210 | int bank; |
211 | int forward_bank; | 211 | int forward_bank; |
212 | int backward_bank; | 212 | int backward_bank; |
213 | int compress; | 213 | int compress; |
214 | s16 frame_centre_horizontal_offset[OFF_SIZE]; | 214 | s16 frame_centre_horizontal_offset[OFF_SIZE]; |
215 | /* [0-2] 1st field, [3] 2nd field */ | 215 | /* [0-2] 1st field, [3] 2nd field */ |
216 | s16 frame_centre_vertical_offset[OFF_SIZE]; | 216 | s16 frame_centre_vertical_offset[OFF_SIZE]; |
217 | /* [0-2] 1st field, [3] 2nd field */ | 217 | /* [0-2] 1st field, [3] 2nd field */ |
218 | s16 temporal_reference[2]; | 218 | s16 temporal_reference[2]; |
219 | /* [0] 1st field, [1] 2nd field */ | 219 | /* [0] 1st field, [1] 2nd field */ |
220 | 220 | ||
221 | s8 picture_coding_type[2]; | 221 | s8 picture_coding_type[2]; |
222 | /* [0] 1st field, [1] 2nd field */ | 222 | /* [0] 1st field, [1] 2nd field */ |
223 | s8 picture_structure[2]; | 223 | s8 picture_structure[2]; |
224 | /* [0] 1st field, [1] 2nd field */ | 224 | /* [0] 1st field, [1] 2nd field */ |
225 | s8 picture_display_extension_flag[2]; | 225 | s8 picture_display_extension_flag[2]; |
226 | /* [0] 1st field, [1] 2nd field */ | 226 | /* [0] 1st field, [1] 2nd field */ |
227 | /* picture_display_extenion() 0:no 1:exit*/ | 227 | /* picture_display_extenion() 0:no 1:exit*/ |
228 | s8 pts_flag[2]; | 228 | s8 pts_flag[2]; |
229 | /* [0] 1st field, [1] 2nd field */ | 229 | /* [0] 1st field, [1] 2nd field */ |
230 | }; | 230 | }; |
231 | 231 | ||
232 | struct dvb_audio_info { | 232 | struct dvb_audio_info { |
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 6ffa6b21636..95ea5095e07 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c | |||
@@ -372,10 +372,10 @@ static int dvb_frontend_thread(void *data) | |||
372 | 372 | ||
373 | snprintf (name, sizeof(name), "kdvb-fe-%i", fe->dvb->num); | 373 | snprintf (name, sizeof(name), "kdvb-fe-%i", fe->dvb->num); |
374 | 374 | ||
375 | lock_kernel(); | 375 | lock_kernel(); |
376 | daemonize(name); | 376 | daemonize(name); |
377 | sigfillset(¤t->blocked); | 377 | sigfillset(¤t->blocked); |
378 | unlock_kernel(); | 378 | unlock_kernel(); |
379 | 379 | ||
380 | fepriv->status = 0; | 380 | fepriv->status = 0; |
381 | dvb_frontend_init(fe); | 381 | dvb_frontend_init(fe); |
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.h b/drivers/media/dvb/dvb-core/dvb_frontend.h index 348c9b0b988..1e0840d02f1 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.h +++ b/drivers/media/dvb/dvb-core/dvb_frontend.h | |||
@@ -41,10 +41,10 @@ | |||
41 | #include "dvbdev.h" | 41 | #include "dvbdev.h" |
42 | 42 | ||
43 | struct dvb_frontend_tune_settings { | 43 | struct dvb_frontend_tune_settings { |
44 | int min_delay_ms; | 44 | int min_delay_ms; |
45 | int step_size; | 45 | int step_size; |
46 | int max_drift; | 46 | int max_drift; |
47 | struct dvb_frontend_parameters parameters; | 47 | struct dvb_frontend_parameters parameters; |
48 | }; | 48 | }; |
49 | 49 | ||
50 | struct dvb_frontend; | 50 | struct dvb_frontend; |
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c b/drivers/media/dvb/dvb-core/dvb_net.c index 87935490bfb..86bba81e851 100644 --- a/drivers/media/dvb/dvb-core/dvb_net.c +++ b/drivers/media/dvb/dvb-core/dvb_net.c | |||
@@ -151,6 +151,8 @@ struct dvb_net_priv { | |||
151 | unsigned char ule_bridged; /* Whether the ULE_BRIDGED extension header was found. */ | 151 | unsigned char ule_bridged; /* Whether the ULE_BRIDGED extension header was found. */ |
152 | int ule_sndu_remain; /* Nr. of bytes still required for current ULE SNDU. */ | 152 | int ule_sndu_remain; /* Nr. of bytes still required for current ULE SNDU. */ |
153 | unsigned long ts_count; /* Current ts cell counter. */ | 153 | unsigned long ts_count; /* Current ts cell counter. */ |
154 | |||
155 | struct semaphore mutex; | ||
154 | }; | 156 | }; |
155 | 157 | ||
156 | 158 | ||
@@ -711,7 +713,7 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len, | |||
711 | if (buffer1_len > 32768) | 713 | if (buffer1_len > 32768) |
712 | printk(KERN_WARNING "length > 32k: %zu.\n", buffer1_len); | 714 | printk(KERN_WARNING "length > 32k: %zu.\n", buffer1_len); |
713 | /* printk("TS callback: %u bytes, %u TS cells @ %p.\n", | 715 | /* printk("TS callback: %u bytes, %u TS cells @ %p.\n", |
714 | buffer1_len, buffer1_len / TS_SZ, buffer1); */ | 716 | buffer1_len, buffer1_len / TS_SZ, buffer1); */ |
715 | dvb_net_ule(dev, buffer1, buffer1_len); | 717 | dvb_net_ule(dev, buffer1, buffer1_len); |
716 | return 0; | 718 | return 0; |
717 | } | 719 | } |
@@ -719,8 +721,8 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len, | |||
719 | 721 | ||
720 | static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) | 722 | static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) |
721 | { | 723 | { |
722 | u8 *eth; | 724 | u8 *eth; |
723 | struct sk_buff *skb; | 725 | struct sk_buff *skb; |
724 | struct net_device_stats *stats = &(((struct dvb_net_priv *) dev->priv)->stats); | 726 | struct net_device_stats *stats = &(((struct dvb_net_priv *) dev->priv)->stats); |
725 | int snap = 0; | 727 | int snap = 0; |
726 | 728 | ||
@@ -752,7 +754,7 @@ static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) | |||
752 | return; | 754 | return; |
753 | } | 755 | } |
754 | snap = 8; | 756 | snap = 8; |
755 | } | 757 | } |
756 | if (pkt[7]) { | 758 | if (pkt[7]) { |
757 | /* FIXME: assemble datagram from multiple sections */ | 759 | /* FIXME: assemble datagram from multiple sections */ |
758 | stats->rx_errors++; | 760 | stats->rx_errors++; |
@@ -776,14 +778,14 @@ static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) | |||
776 | memcpy(eth + 14, pkt + 12 + snap, pkt_len - 12 - 4 - snap); | 778 | memcpy(eth + 14, pkt + 12 + snap, pkt_len - 12 - 4 - snap); |
777 | 779 | ||
778 | /* create ethernet header: */ | 780 | /* create ethernet header: */ |
779 | eth[0]=pkt[0x0b]; | 781 | eth[0]=pkt[0x0b]; |
780 | eth[1]=pkt[0x0a]; | 782 | eth[1]=pkt[0x0a]; |
781 | eth[2]=pkt[0x09]; | 783 | eth[2]=pkt[0x09]; |
782 | eth[3]=pkt[0x08]; | 784 | eth[3]=pkt[0x08]; |
783 | eth[4]=pkt[0x04]; | 785 | eth[4]=pkt[0x04]; |
784 | eth[5]=pkt[0x03]; | 786 | eth[5]=pkt[0x03]; |
785 | 787 | ||
786 | eth[6]=eth[7]=eth[8]=eth[9]=eth[10]=eth[11]=0; | 788 | eth[6]=eth[7]=eth[8]=eth[9]=eth[10]=eth[11]=0; |
787 | 789 | ||
788 | if (snap) { | 790 | if (snap) { |
789 | eth[12] = pkt[18]; | 791 | eth[12] = pkt[18]; |
@@ -805,7 +807,7 @@ static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) | |||
805 | 807 | ||
806 | stats->rx_packets++; | 808 | stats->rx_packets++; |
807 | stats->rx_bytes+=skb->len; | 809 | stats->rx_bytes+=skb->len; |
808 | netif_rx(skb); | 810 | netif_rx(skb); |
809 | } | 811 | } |
810 | 812 | ||
811 | static int dvb_net_sec_callback(const u8 *buffer1, size_t buffer1_len, | 813 | static int dvb_net_sec_callback(const u8 *buffer1, size_t buffer1_len, |
@@ -813,7 +815,7 @@ static int dvb_net_sec_callback(const u8 *buffer1, size_t buffer1_len, | |||
813 | struct dmx_section_filter *filter, | 815 | struct dmx_section_filter *filter, |
814 | enum dmx_success success) | 816 | enum dmx_success success) |
815 | { | 817 | { |
816 | struct net_device *dev = filter->priv; | 818 | struct net_device *dev = filter->priv; |
817 | 819 | ||
818 | /** | 820 | /** |
819 | * we rely on the DVB API definition where exactly one complete | 821 | * we rely on the DVB API definition where exactly one complete |
@@ -881,12 +883,13 @@ static int dvb_net_filter_sec_set(struct net_device *dev, | |||
881 | 883 | ||
882 | static int dvb_net_feed_start(struct net_device *dev) | 884 | static int dvb_net_feed_start(struct net_device *dev) |
883 | { | 885 | { |
884 | int ret, i; | 886 | int ret = 0, i; |
885 | struct dvb_net_priv *priv = dev->priv; | 887 | struct dvb_net_priv *priv = dev->priv; |
886 | struct dmx_demux *demux = priv->demux; | 888 | struct dmx_demux *demux = priv->demux; |
887 | unsigned char *mac = (unsigned char *) dev->dev_addr; | 889 | unsigned char *mac = (unsigned char *) dev->dev_addr; |
888 | 890 | ||
889 | dprintk("%s: rx_mode %i\n", __FUNCTION__, priv->rx_mode); | 891 | dprintk("%s: rx_mode %i\n", __FUNCTION__, priv->rx_mode); |
892 | down(&priv->mutex); | ||
890 | if (priv->tsfeed || priv->secfeed || priv->secfilter || priv->multi_secfilter[0]) | 893 | if (priv->tsfeed || priv->secfeed || priv->secfilter || priv->multi_secfilter[0]) |
891 | printk("%s: BUG %d\n", __FUNCTION__, __LINE__); | 894 | printk("%s: BUG %d\n", __FUNCTION__, __LINE__); |
892 | 895 | ||
@@ -900,7 +903,7 @@ static int dvb_net_feed_start(struct net_device *dev) | |||
900 | dvb_net_sec_callback); | 903 | dvb_net_sec_callback); |
901 | if (ret<0) { | 904 | if (ret<0) { |
902 | printk("%s: could not allocate section feed\n", dev->name); | 905 | printk("%s: could not allocate section feed\n", dev->name); |
903 | return ret; | 906 | goto error; |
904 | } | 907 | } |
905 | 908 | ||
906 | ret = priv->secfeed->set(priv->secfeed, priv->pid, 32768, 1); | 909 | ret = priv->secfeed->set(priv->secfeed, priv->pid, 32768, 1); |
@@ -909,7 +912,7 @@ static int dvb_net_feed_start(struct net_device *dev) | |||
909 | printk("%s: could not set section feed\n", dev->name); | 912 | printk("%s: could not set section feed\n", dev->name); |
910 | priv->demux->release_section_feed(priv->demux, priv->secfeed); | 913 | priv->demux->release_section_feed(priv->demux, priv->secfeed); |
911 | priv->secfeed=NULL; | 914 | priv->secfeed=NULL; |
912 | return ret; | 915 | goto error; |
913 | } | 916 | } |
914 | 917 | ||
915 | if (priv->rx_mode != RX_MODE_PROMISC) { | 918 | if (priv->rx_mode != RX_MODE_PROMISC) { |
@@ -948,7 +951,7 @@ static int dvb_net_feed_start(struct net_device *dev) | |||
948 | ret = demux->allocate_ts_feed(demux, &priv->tsfeed, dvb_net_ts_callback); | 951 | ret = demux->allocate_ts_feed(demux, &priv->tsfeed, dvb_net_ts_callback); |
949 | if (ret < 0) { | 952 | if (ret < 0) { |
950 | printk("%s: could not allocate ts feed\n", dev->name); | 953 | printk("%s: could not allocate ts feed\n", dev->name); |
951 | return ret; | 954 | goto error; |
952 | } | 955 | } |
953 | 956 | ||
954 | /* Set netdevice pointer for ts decaps callback. */ | 957 | /* Set netdevice pointer for ts decaps callback. */ |
@@ -962,23 +965,26 @@ static int dvb_net_feed_start(struct net_device *dev) | |||
962 | printk("%s: could not set ts feed\n", dev->name); | 965 | printk("%s: could not set ts feed\n", dev->name); |
963 | priv->demux->release_ts_feed(priv->demux, priv->tsfeed); | 966 | priv->demux->release_ts_feed(priv->demux, priv->tsfeed); |
964 | priv->tsfeed = NULL; | 967 | priv->tsfeed = NULL; |
965 | return ret; | 968 | goto error; |
966 | } | 969 | } |
967 | 970 | ||
968 | dprintk("%s: start filtering\n", __FUNCTION__); | 971 | dprintk("%s: start filtering\n", __FUNCTION__); |
969 | priv->tsfeed->start_filtering(priv->tsfeed); | 972 | priv->tsfeed->start_filtering(priv->tsfeed); |
970 | } else | 973 | } else |
971 | return -EINVAL; | 974 | ret = -EINVAL; |
972 | 975 | ||
973 | return 0; | 976 | error: |
977 | up(&priv->mutex); | ||
978 | return ret; | ||
974 | } | 979 | } |
975 | 980 | ||
976 | static int dvb_net_feed_stop(struct net_device *dev) | 981 | static int dvb_net_feed_stop(struct net_device *dev) |
977 | { | 982 | { |
978 | struct dvb_net_priv *priv = dev->priv; | 983 | struct dvb_net_priv *priv = dev->priv; |
979 | int i; | 984 | int i, ret = 0; |
980 | 985 | ||
981 | dprintk("%s\n", __FUNCTION__); | 986 | dprintk("%s\n", __FUNCTION__); |
987 | down(&priv->mutex); | ||
982 | if (priv->feedtype == DVB_NET_FEEDTYPE_MPE) { | 988 | if (priv->feedtype == DVB_NET_FEEDTYPE_MPE) { |
983 | if (priv->secfeed) { | 989 | if (priv->secfeed) { |
984 | if (priv->secfeed->is_filtering) { | 990 | if (priv->secfeed->is_filtering) { |
@@ -1019,8 +1025,9 @@ static int dvb_net_feed_stop(struct net_device *dev) | |||
1019 | else | 1025 | else |
1020 | printk("%s: no ts feed to stop\n", dev->name); | 1026 | printk("%s: no ts feed to stop\n", dev->name); |
1021 | } else | 1027 | } else |
1022 | return -EINVAL; | 1028 | ret = -EINVAL; |
1023 | return 0; | 1029 | up(&priv->mutex); |
1030 | return ret; | ||
1024 | } | 1031 | } |
1025 | 1032 | ||
1026 | 1033 | ||
@@ -1044,8 +1051,8 @@ static void wq_set_multicast_list (void *data) | |||
1044 | struct dvb_net_priv *priv = dev->priv; | 1051 | struct dvb_net_priv *priv = dev->priv; |
1045 | 1052 | ||
1046 | dvb_net_feed_stop(dev); | 1053 | dvb_net_feed_stop(dev); |
1047 | |||
1048 | priv->rx_mode = RX_MODE_UNI; | 1054 | priv->rx_mode = RX_MODE_UNI; |
1055 | spin_lock_bh(&dev->xmit_lock); | ||
1049 | 1056 | ||
1050 | if (dev->flags & IFF_PROMISC) { | 1057 | if (dev->flags & IFF_PROMISC) { |
1051 | dprintk("%s: promiscuous mode\n", dev->name); | 1058 | dprintk("%s: promiscuous mode\n", dev->name); |
@@ -1070,6 +1077,7 @@ static void wq_set_multicast_list (void *data) | |||
1070 | } | 1077 | } |
1071 | } | 1078 | } |
1072 | 1079 | ||
1080 | spin_unlock_bh(&dev->xmit_lock); | ||
1073 | dvb_net_feed_start(dev); | 1081 | dvb_net_feed_start(dev); |
1074 | } | 1082 | } |
1075 | 1083 | ||
@@ -1121,12 +1129,12 @@ static int dvb_net_stop(struct net_device *dev) | |||
1121 | struct dvb_net_priv *priv = dev->priv; | 1129 | struct dvb_net_priv *priv = dev->priv; |
1122 | 1130 | ||
1123 | priv->in_use--; | 1131 | priv->in_use--; |
1124 | return dvb_net_feed_stop(dev); | 1132 | return dvb_net_feed_stop(dev); |
1125 | } | 1133 | } |
1126 | 1134 | ||
1127 | static struct net_device_stats * dvb_net_get_stats(struct net_device *dev) | 1135 | static struct net_device_stats * dvb_net_get_stats(struct net_device *dev) |
1128 | { | 1136 | { |
1129 | return &((struct dvb_net_priv*) dev->priv)->stats; | 1137 | return &((struct dvb_net_priv*) dev->priv)->stats; |
1130 | } | 1138 | } |
1131 | 1139 | ||
1132 | static void dvb_net_setup(struct net_device *dev) | 1140 | static void dvb_net_setup(struct net_device *dev) |
@@ -1200,6 +1208,7 @@ static int dvb_net_add_if(struct dvb_net *dvbnet, u16 pid, u8 feedtype) | |||
1200 | 1208 | ||
1201 | INIT_WORK(&priv->set_multicast_list_wq, wq_set_multicast_list, net); | 1209 | INIT_WORK(&priv->set_multicast_list_wq, wq_set_multicast_list, net); |
1202 | INIT_WORK(&priv->restart_net_feed_wq, wq_restart_net_feed, net); | 1210 | INIT_WORK(&priv->restart_net_feed_wq, wq_restart_net_feed, net); |
1211 | init_MUTEX(&priv->mutex); | ||
1203 | 1212 | ||
1204 | net->base_addr = pid; | 1213 | net->base_addr = pid; |
1205 | 1214 | ||
@@ -1351,10 +1360,10 @@ static struct file_operations dvb_net_fops = { | |||
1351 | }; | 1360 | }; |
1352 | 1361 | ||
1353 | static struct dvb_device dvbdev_net = { | 1362 | static struct dvb_device dvbdev_net = { |
1354 | .priv = NULL, | 1363 | .priv = NULL, |
1355 | .users = 1, | 1364 | .users = 1, |
1356 | .writers = 1, | 1365 | .writers = 1, |
1357 | .fops = &dvb_net_fops, | 1366 | .fops = &dvb_net_fops, |
1358 | }; | 1367 | }; |
1359 | 1368 | ||
1360 | 1369 | ||
diff --git a/drivers/media/dvb/dvb-core/dvb_ringbuffer.c b/drivers/media/dvb/dvb-core/dvb_ringbuffer.c index fb6d94a69d7..283c6e9339a 100644 --- a/drivers/media/dvb/dvb-core/dvb_ringbuffer.c +++ b/drivers/media/dvb/dvb-core/dvb_ringbuffer.c | |||
@@ -42,216 +42,216 @@ | |||
42 | 42 | ||
43 | void dvb_ringbuffer_init(struct dvb_ringbuffer *rbuf, void *data, size_t len) | 43 | void dvb_ringbuffer_init(struct dvb_ringbuffer *rbuf, void *data, size_t len) |
44 | { | 44 | { |
45 | rbuf->pread=rbuf->pwrite=0; | 45 | rbuf->pread=rbuf->pwrite=0; |
46 | rbuf->data=data; | 46 | rbuf->data=data; |
47 | rbuf->size=len; | 47 | rbuf->size=len; |
48 | 48 | ||
49 | init_waitqueue_head(&rbuf->queue); | 49 | init_waitqueue_head(&rbuf->queue); |
50 | 50 | ||
51 | spin_lock_init(&(rbuf->lock)); | 51 | spin_lock_init(&(rbuf->lock)); |
52 | } | 52 | } |
53 | 53 | ||
54 | 54 | ||
55 | 55 | ||
56 | int dvb_ringbuffer_empty(struct dvb_ringbuffer *rbuf) | 56 | int dvb_ringbuffer_empty(struct dvb_ringbuffer *rbuf) |
57 | { | 57 | { |
58 | return (rbuf->pread==rbuf->pwrite); | 58 | return (rbuf->pread==rbuf->pwrite); |
59 | } | 59 | } |
60 | 60 | ||
61 | 61 | ||
62 | 62 | ||
63 | ssize_t dvb_ringbuffer_free(struct dvb_ringbuffer *rbuf) | 63 | ssize_t dvb_ringbuffer_free(struct dvb_ringbuffer *rbuf) |
64 | { | 64 | { |
65 | ssize_t free; | 65 | ssize_t free; |
66 | 66 | ||
67 | free = rbuf->pread - rbuf->pwrite; | 67 | free = rbuf->pread - rbuf->pwrite; |
68 | if (free <= 0) | 68 | if (free <= 0) |
69 | free += rbuf->size; | 69 | free += rbuf->size; |
70 | return free-1; | 70 | return free-1; |
71 | } | 71 | } |
72 | 72 | ||
73 | 73 | ||
74 | 74 | ||
75 | ssize_t dvb_ringbuffer_avail(struct dvb_ringbuffer *rbuf) | 75 | ssize_t dvb_ringbuffer_avail(struct dvb_ringbuffer *rbuf) |
76 | { | 76 | { |
77 | ssize_t avail; | 77 | ssize_t avail; |
78 | 78 | ||
79 | avail = rbuf->pwrite - rbuf->pread; | 79 | avail = rbuf->pwrite - rbuf->pread; |
80 | if (avail < 0) | 80 | if (avail < 0) |
81 | avail += rbuf->size; | 81 | avail += rbuf->size; |
82 | return avail; | 82 | return avail; |
83 | } | 83 | } |
84 | 84 | ||
85 | 85 | ||
86 | 86 | ||
87 | void dvb_ringbuffer_flush(struct dvb_ringbuffer *rbuf) | 87 | void dvb_ringbuffer_flush(struct dvb_ringbuffer *rbuf) |
88 | { | 88 | { |
89 | rbuf->pread = rbuf->pwrite; | 89 | rbuf->pread = rbuf->pwrite; |
90 | } | 90 | } |
91 | 91 | ||
92 | 92 | ||
93 | 93 | ||
94 | void dvb_ringbuffer_flush_spinlock_wakeup(struct dvb_ringbuffer *rbuf) | 94 | void dvb_ringbuffer_flush_spinlock_wakeup(struct dvb_ringbuffer *rbuf) |
95 | { | 95 | { |
96 | unsigned long flags; | 96 | unsigned long flags; |
97 | 97 | ||
98 | spin_lock_irqsave(&rbuf->lock, flags); | 98 | spin_lock_irqsave(&rbuf->lock, flags); |
99 | dvb_ringbuffer_flush(rbuf); | 99 | dvb_ringbuffer_flush(rbuf); |
100 | spin_unlock_irqrestore(&rbuf->lock, flags); | 100 | spin_unlock_irqrestore(&rbuf->lock, flags); |
101 | 101 | ||
102 | wake_up(&rbuf->queue); | 102 | wake_up(&rbuf->queue); |
103 | } | 103 | } |
104 | 104 | ||
105 | 105 | ||
106 | 106 | ||
107 | ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len, int usermem) | 107 | ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len, int usermem) |
108 | { | 108 | { |
109 | size_t todo = len; | 109 | size_t todo = len; |
110 | size_t split; | 110 | size_t split; |
111 | 111 | ||
112 | split = (rbuf->pread + len > rbuf->size) ? rbuf->size - rbuf->pread : 0; | 112 | split = (rbuf->pread + len > rbuf->size) ? rbuf->size - rbuf->pread : 0; |
113 | if (split > 0) { | 113 | if (split > 0) { |
114 | if (!usermem) | 114 | if (!usermem) |
115 | memcpy(buf, rbuf->data+rbuf->pread, split); | 115 | memcpy(buf, rbuf->data+rbuf->pread, split); |
116 | else | 116 | else |
117 | if (copy_to_user(buf, rbuf->data+rbuf->pread, split)) | 117 | if (copy_to_user(buf, rbuf->data+rbuf->pread, split)) |
118 | return -EFAULT; | 118 | return -EFAULT; |
119 | buf += split; | 119 | buf += split; |
120 | todo -= split; | 120 | todo -= split; |
121 | rbuf->pread = 0; | 121 | rbuf->pread = 0; |
122 | } | 122 | } |
123 | if (!usermem) | 123 | if (!usermem) |
124 | memcpy(buf, rbuf->data+rbuf->pread, todo); | 124 | memcpy(buf, rbuf->data+rbuf->pread, todo); |
125 | else | 125 | else |
126 | if (copy_to_user(buf, rbuf->data+rbuf->pread, todo)) | 126 | if (copy_to_user(buf, rbuf->data+rbuf->pread, todo)) |
127 | return -EFAULT; | 127 | return -EFAULT; |
128 | 128 | ||
129 | rbuf->pread = (rbuf->pread + todo) % rbuf->size; | 129 | rbuf->pread = (rbuf->pread + todo) % rbuf->size; |
130 | 130 | ||
131 | return len; | 131 | return len; |
132 | } | 132 | } |
133 | 133 | ||
134 | 134 | ||
135 | 135 | ||
136 | ssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf, size_t len) | 136 | ssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf, size_t len) |
137 | { | 137 | { |
138 | size_t todo = len; | 138 | size_t todo = len; |
139 | size_t split; | 139 | size_t split; |
140 | 140 | ||
141 | split = (rbuf->pwrite + len > rbuf->size) ? rbuf->size - rbuf->pwrite : 0; | 141 | split = (rbuf->pwrite + len > rbuf->size) ? rbuf->size - rbuf->pwrite : 0; |
142 | 142 | ||
143 | if (split > 0) { | 143 | if (split > 0) { |
144 | memcpy(rbuf->data+rbuf->pwrite, buf, split); | 144 | memcpy(rbuf->data+rbuf->pwrite, buf, split); |
145 | buf += split; | 145 | buf += split; |
146 | todo -= split; | 146 | todo -= split; |
147 | rbuf->pwrite = 0; | 147 | rbuf->pwrite = 0; |
148 | } | 148 | } |
149 | memcpy(rbuf->data+rbuf->pwrite, buf, todo); | 149 | memcpy(rbuf->data+rbuf->pwrite, buf, todo); |
150 | rbuf->pwrite = (rbuf->pwrite + todo) % rbuf->size; | 150 | rbuf->pwrite = (rbuf->pwrite + todo) % rbuf->size; |
151 | 151 | ||
152 | return len; | 152 | return len; |
153 | } | 153 | } |
154 | 154 | ||
155 | ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf, size_t len) | 155 | ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf, size_t len) |
156 | { | 156 | { |
157 | int status; | 157 | int status; |
158 | ssize_t oldpwrite = rbuf->pwrite; | 158 | ssize_t oldpwrite = rbuf->pwrite; |
159 | 159 | ||
160 | DVB_RINGBUFFER_WRITE_BYTE(rbuf, len >> 8); | 160 | DVB_RINGBUFFER_WRITE_BYTE(rbuf, len >> 8); |
161 | DVB_RINGBUFFER_WRITE_BYTE(rbuf, len & 0xff); | 161 | DVB_RINGBUFFER_WRITE_BYTE(rbuf, len & 0xff); |
162 | DVB_RINGBUFFER_WRITE_BYTE(rbuf, PKT_READY); | 162 | DVB_RINGBUFFER_WRITE_BYTE(rbuf, PKT_READY); |
163 | status = dvb_ringbuffer_write(rbuf, buf, len); | 163 | status = dvb_ringbuffer_write(rbuf, buf, len); |
164 | 164 | ||
165 | if (status < 0) rbuf->pwrite = oldpwrite; | 165 | if (status < 0) rbuf->pwrite = oldpwrite; |
166 | return status; | 166 | return status; |
167 | } | 167 | } |
168 | 168 | ||
169 | ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx, | 169 | ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx, |
170 | int offset, u8* buf, size_t len, int usermem) | 170 | int offset, u8* buf, size_t len, int usermem) |
171 | { | 171 | { |
172 | size_t todo; | 172 | size_t todo; |
173 | size_t split; | 173 | size_t split; |
174 | size_t pktlen; | 174 | size_t pktlen; |
175 | 175 | ||
176 | pktlen = rbuf->data[idx] << 8; | 176 | pktlen = rbuf->data[idx] << 8; |
177 | pktlen |= rbuf->data[(idx + 1) % rbuf->size]; | 177 | pktlen |= rbuf->data[(idx + 1) % rbuf->size]; |
178 | if (offset > pktlen) return -EINVAL; | 178 | if (offset > pktlen) return -EINVAL; |
179 | if ((offset + len) > pktlen) len = pktlen - offset; | 179 | if ((offset + len) > pktlen) len = pktlen - offset; |
180 | 180 | ||
181 | idx = (idx + DVB_RINGBUFFER_PKTHDRSIZE + offset) % rbuf->size; | 181 | idx = (idx + DVB_RINGBUFFER_PKTHDRSIZE + offset) % rbuf->size; |
182 | todo = len; | 182 | todo = len; |
183 | split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0; | 183 | split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0; |
184 | if (split > 0) { | 184 | if (split > 0) { |
185 | if (!usermem) | 185 | if (!usermem) |
186 | memcpy(buf, rbuf->data+idx, split); | 186 | memcpy(buf, rbuf->data+idx, split); |
187 | else | 187 | else |
188 | if (copy_to_user(buf, rbuf->data+idx, split)) | 188 | if (copy_to_user(buf, rbuf->data+idx, split)) |
189 | return -EFAULT; | 189 | return -EFAULT; |
190 | buf += split; | 190 | buf += split; |
191 | todo -= split; | 191 | todo -= split; |
192 | idx = 0; | 192 | idx = 0; |
193 | } | 193 | } |
194 | if (!usermem) | 194 | if (!usermem) |
195 | memcpy(buf, rbuf->data+idx, todo); | 195 | memcpy(buf, rbuf->data+idx, todo); |
196 | else | 196 | else |
197 | if (copy_to_user(buf, rbuf->data+idx, todo)) | 197 | if (copy_to_user(buf, rbuf->data+idx, todo)) |
198 | return -EFAULT; | 198 | return -EFAULT; |
199 | 199 | ||
200 | return len; | 200 | return len; |
201 | } | 201 | } |
202 | 202 | ||
203 | void dvb_ringbuffer_pkt_dispose(struct dvb_ringbuffer *rbuf, size_t idx) | 203 | void dvb_ringbuffer_pkt_dispose(struct dvb_ringbuffer *rbuf, size_t idx) |
204 | { | 204 | { |
205 | size_t pktlen; | 205 | size_t pktlen; |
206 | 206 | ||
207 | rbuf->data[(idx + 2) % rbuf->size] = PKT_DISPOSED; | 207 | rbuf->data[(idx + 2) % rbuf->size] = PKT_DISPOSED; |
208 | 208 | ||
209 | // clean up disposed packets | 209 | // clean up disposed packets |
210 | while(dvb_ringbuffer_avail(rbuf) > DVB_RINGBUFFER_PKTHDRSIZE) { | 210 | while(dvb_ringbuffer_avail(rbuf) > DVB_RINGBUFFER_PKTHDRSIZE) { |
211 | if (DVB_RINGBUFFER_PEEK(rbuf, 2) == PKT_DISPOSED) { | 211 | if (DVB_RINGBUFFER_PEEK(rbuf, 2) == PKT_DISPOSED) { |
212 | pktlen = DVB_RINGBUFFER_PEEK(rbuf, 0) << 8; | 212 | pktlen = DVB_RINGBUFFER_PEEK(rbuf, 0) << 8; |
213 | pktlen |= DVB_RINGBUFFER_PEEK(rbuf, 1); | 213 | pktlen |= DVB_RINGBUFFER_PEEK(rbuf, 1); |
214 | DVB_RINGBUFFER_SKIP(rbuf, pktlen + DVB_RINGBUFFER_PKTHDRSIZE); | 214 | DVB_RINGBUFFER_SKIP(rbuf, pktlen + DVB_RINGBUFFER_PKTHDRSIZE); |
215 | } else { | 215 | } else { |
216 | // first packet is not disposed, so we stop cleaning now | 216 | // first packet is not disposed, so we stop cleaning now |
217 | break; | 217 | break; |
218 | } | 218 | } |
219 | } | 219 | } |
220 | } | 220 | } |
221 | 221 | ||
222 | ssize_t dvb_ringbuffer_pkt_next(struct dvb_ringbuffer *rbuf, size_t idx, size_t* pktlen) | 222 | ssize_t dvb_ringbuffer_pkt_next(struct dvb_ringbuffer *rbuf, size_t idx, size_t* pktlen) |
223 | { | 223 | { |
224 | int consumed; | 224 | int consumed; |
225 | int curpktlen; | 225 | int curpktlen; |
226 | int curpktstatus; | 226 | int curpktstatus; |
227 | 227 | ||
228 | if (idx == -1) { | 228 | if (idx == -1) { |
229 | idx = rbuf->pread; | 229 | idx = rbuf->pread; |
230 | } else { | 230 | } else { |
231 | curpktlen = rbuf->data[idx] << 8; | 231 | curpktlen = rbuf->data[idx] << 8; |
232 | curpktlen |= rbuf->data[(idx + 1) % rbuf->size]; | 232 | curpktlen |= rbuf->data[(idx + 1) % rbuf->size]; |
233 | idx = (idx + curpktlen + DVB_RINGBUFFER_PKTHDRSIZE) % rbuf->size; | 233 | idx = (idx + curpktlen + DVB_RINGBUFFER_PKTHDRSIZE) % rbuf->size; |
234 | } | 234 | } |
235 | 235 | ||
236 | consumed = (idx - rbuf->pread) % rbuf->size; | 236 | consumed = (idx - rbuf->pread) % rbuf->size; |
237 | 237 | ||
238 | while((dvb_ringbuffer_avail(rbuf) - consumed) > DVB_RINGBUFFER_PKTHDRSIZE) { | 238 | while((dvb_ringbuffer_avail(rbuf) - consumed) > DVB_RINGBUFFER_PKTHDRSIZE) { |
239 | 239 | ||
240 | curpktlen = rbuf->data[idx] << 8; | 240 | curpktlen = rbuf->data[idx] << 8; |
241 | curpktlen |= rbuf->data[(idx + 1) % rbuf->size]; | 241 | curpktlen |= rbuf->data[(idx + 1) % rbuf->size]; |
242 | curpktstatus = rbuf->data[(idx + 2) % rbuf->size]; | 242 | curpktstatus = rbuf->data[(idx + 2) % rbuf->size]; |
243 | 243 | ||
244 | if (curpktstatus == PKT_READY) { | 244 | if (curpktstatus == PKT_READY) { |
245 | *pktlen = curpktlen; | 245 | *pktlen = curpktlen; |
246 | return idx; | 246 | return idx; |
247 | } | 247 | } |
248 | 248 | ||
249 | consumed += curpktlen + DVB_RINGBUFFER_PKTHDRSIZE; | 249 | consumed += curpktlen + DVB_RINGBUFFER_PKTHDRSIZE; |
250 | idx = (idx + curpktlen + DVB_RINGBUFFER_PKTHDRSIZE) % rbuf->size; | 250 | idx = (idx + curpktlen + DVB_RINGBUFFER_PKTHDRSIZE) % rbuf->size; |
251 | } | 251 | } |
252 | 252 | ||
253 | // no packets available | 253 | // no packets available |
254 | return -1; | 254 | return -1; |
255 | } | 255 | } |
256 | 256 | ||
257 | 257 | ||
diff --git a/drivers/media/dvb/dvb-core/dvb_ringbuffer.h b/drivers/media/dvb/dvb-core/dvb_ringbuffer.h index d18e9c4ba9e..fa476f662f8 100644 --- a/drivers/media/dvb/dvb-core/dvb_ringbuffer.h +++ b/drivers/media/dvb/dvb-core/dvb_ringbuffer.h | |||
@@ -31,13 +31,13 @@ | |||
31 | #include <linux/wait.h> | 31 | #include <linux/wait.h> |
32 | 32 | ||
33 | struct dvb_ringbuffer { | 33 | struct dvb_ringbuffer { |
34 | u8 *data; | 34 | u8 *data; |
35 | ssize_t size; | 35 | ssize_t size; |
36 | ssize_t pread; | 36 | ssize_t pread; |
37 | ssize_t pwrite; | 37 | ssize_t pwrite; |
38 | 38 | ||
39 | wait_queue_head_t queue; | 39 | wait_queue_head_t queue; |
40 | spinlock_t lock; | 40 | spinlock_t lock; |
41 | }; | 41 | }; |
42 | 42 | ||
43 | #define DVB_RINGBUFFER_PKTHDRSIZE 3 | 43 | #define DVB_RINGBUFFER_PKTHDRSIZE 3 |
@@ -106,7 +106,7 @@ extern void dvb_ringbuffer_flush_spinlock_wakeup(struct dvb_ringbuffer *rbuf); | |||
106 | ** returns number of bytes transferred or -EFAULT | 106 | ** returns number of bytes transferred or -EFAULT |
107 | */ | 107 | */ |
108 | extern ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, | 108 | extern ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, |
109 | size_t len, int usermem); | 109 | size_t len, int usermem); |
110 | 110 | ||
111 | 111 | ||
112 | /* write routines & macros */ | 112 | /* write routines & macros */ |
@@ -121,7 +121,7 @@ extern ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, | |||
121 | ** returns number of bytes transferred or -EFAULT | 121 | ** returns number of bytes transferred or -EFAULT |
122 | */ | 122 | */ |
123 | extern ssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf, | 123 | extern ssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf, |
124 | size_t len); | 124 | size_t len); |
125 | 125 | ||
126 | 126 | ||
127 | /** | 127 | /** |
@@ -133,7 +133,7 @@ extern ssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf, | |||
133 | * returns Number of bytes written, or -EFAULT, -ENOMEM, -EVINAL. | 133 | * returns Number of bytes written, or -EFAULT, -ENOMEM, -EVINAL. |
134 | */ | 134 | */ |
135 | extern ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf, | 135 | extern ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf, |
136 | size_t len); | 136 | size_t len); |
137 | 137 | ||
138 | /** | 138 | /** |
139 | * Read from a packet in the ringbuffer. Note: unlike dvb_ringbuffer_read(), this | 139 | * Read from a packet in the ringbuffer. Note: unlike dvb_ringbuffer_read(), this |
@@ -149,7 +149,7 @@ extern ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf, | |||
149 | * returns Number of bytes read, or -EFAULT. | 149 | * returns Number of bytes read, or -EFAULT. |
150 | */ | 150 | */ |
151 | extern ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx, | 151 | extern ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx, |
152 | int offset, u8* buf, size_t len, int usermem); | 152 | int offset, u8* buf, size_t len, int usermem); |
153 | 153 | ||
154 | /** | 154 | /** |
155 | * Dispose of a packet in the ring buffer. | 155 | * Dispose of a packet in the ring buffer. |
diff --git a/drivers/media/dvb/dvb-core/dvbdev.c b/drivers/media/dvb/dvb-core/dvbdev.c index 477b4fa5643..a4aee866585 100644 --- a/drivers/media/dvb/dvb-core/dvbdev.c +++ b/drivers/media/dvb/dvb-core/dvbdev.c | |||
@@ -47,7 +47,7 @@ static LIST_HEAD(dvb_adapter_list); | |||
47 | static DECLARE_MUTEX(dvbdev_register_lock); | 47 | static DECLARE_MUTEX(dvbdev_register_lock); |
48 | 48 | ||
49 | static const char * const dnames[] = { | 49 | static const char * const dnames[] = { |
50 | "video", "audio", "sec", "frontend", "demux", "dvr", "ca", | 50 | "video", "audio", "sec", "frontend", "demux", "dvr", "ca", |
51 | "net", "osd" | 51 | "net", "osd" |
52 | }; | 52 | }; |
53 | 53 | ||
@@ -90,15 +90,15 @@ static int dvb_device_open(struct inode *inode, struct file *file) | |||
90 | 90 | ||
91 | file->private_data = dvbdev; | 91 | file->private_data = dvbdev; |
92 | old_fops = file->f_op; | 92 | old_fops = file->f_op; |
93 | file->f_op = fops_get(dvbdev->fops); | 93 | file->f_op = fops_get(dvbdev->fops); |
94 | if(file->f_op->open) | 94 | if(file->f_op->open) |
95 | err = file->f_op->open(inode,file); | 95 | err = file->f_op->open(inode,file); |
96 | if (err) { | 96 | if (err) { |
97 | fops_put(file->f_op); | 97 | fops_put(file->f_op); |
98 | file->f_op = fops_get(old_fops); | 98 | file->f_op = fops_get(old_fops); |
99 | } | 99 | } |
100 | fops_put(old_fops); | 100 | fops_put(old_fops); |
101 | return err; | 101 | return err; |
102 | } | 102 | } |
103 | return -ENODEV; | 103 | return -ENODEV; |
104 | } | 104 | } |
@@ -117,21 +117,21 @@ static struct cdev dvb_device_cdev = { | |||
117 | 117 | ||
118 | int dvb_generic_open(struct inode *inode, struct file *file) | 118 | int dvb_generic_open(struct inode *inode, struct file *file) |
119 | { | 119 | { |
120 | struct dvb_device *dvbdev = file->private_data; | 120 | struct dvb_device *dvbdev = file->private_data; |
121 | 121 | ||
122 | if (!dvbdev) | 122 | if (!dvbdev) |
123 | return -ENODEV; | 123 | return -ENODEV; |
124 | 124 | ||
125 | if (!dvbdev->users) | 125 | if (!dvbdev->users) |
126 | return -EBUSY; | 126 | return -EBUSY; |
127 | 127 | ||
128 | if ((file->f_flags & O_ACCMODE) == O_RDONLY) { | 128 | if ((file->f_flags & O_ACCMODE) == O_RDONLY) { |
129 | if (!dvbdev->readers) | 129 | if (!dvbdev->readers) |
130 | return -EBUSY; | 130 | return -EBUSY; |
131 | dvbdev->readers--; | 131 | dvbdev->readers--; |
132 | } else { | 132 | } else { |
133 | if (!dvbdev->writers) | 133 | if (!dvbdev->writers) |
134 | return -EBUSY; | 134 | return -EBUSY; |
135 | dvbdev->writers--; | 135 | dvbdev->writers--; |
136 | } | 136 | } |
137 | 137 | ||
@@ -143,10 +143,10 @@ EXPORT_SYMBOL(dvb_generic_open); | |||
143 | 143 | ||
144 | int dvb_generic_release(struct inode *inode, struct file *file) | 144 | int dvb_generic_release(struct inode *inode, struct file *file) |
145 | { | 145 | { |
146 | struct dvb_device *dvbdev = file->private_data; | 146 | struct dvb_device *dvbdev = file->private_data; |
147 | 147 | ||
148 | if (!dvbdev) | 148 | if (!dvbdev) |
149 | return -ENODEV; | 149 | return -ENODEV; |
150 | 150 | ||
151 | if ((file->f_flags & O_ACCMODE) == O_RDONLY) { | 151 | if ((file->f_flags & O_ACCMODE) == O_RDONLY) { |
152 | dvbdev->readers++; | 152 | dvbdev->readers++; |
@@ -163,10 +163,10 @@ EXPORT_SYMBOL(dvb_generic_release); | |||
163 | int dvb_generic_ioctl(struct inode *inode, struct file *file, | 163 | int dvb_generic_ioctl(struct inode *inode, struct file *file, |
164 | unsigned int cmd, unsigned long arg) | 164 | unsigned int cmd, unsigned long arg) |
165 | { | 165 | { |
166 | struct dvb_device *dvbdev = file->private_data; | 166 | struct dvb_device *dvbdev = file->private_data; |
167 | 167 | ||
168 | if (!dvbdev) | 168 | if (!dvbdev) |
169 | return -ENODEV; | 169 | return -ENODEV; |
170 | 170 | ||
171 | if (!dvbdev->kernel_ioctl) | 171 | if (!dvbdev->kernel_ioctl) |
172 | return -EINVAL; | 172 | return -EINVAL; |
@@ -334,63 +334,63 @@ EXPORT_SYMBOL(dvb_unregister_adapter); | |||
334 | to the v4l "videodev.o" module, which is unnecessary for some | 334 | to the v4l "videodev.o" module, which is unnecessary for some |
335 | cards (ie. the budget dvb-cards don't need the v4l module...) */ | 335 | cards (ie. the budget dvb-cards don't need the v4l module...) */ |
336 | int dvb_usercopy(struct inode *inode, struct file *file, | 336 | int dvb_usercopy(struct inode *inode, struct file *file, |
337 | unsigned int cmd, unsigned long arg, | 337 | unsigned int cmd, unsigned long arg, |
338 | int (*func)(struct inode *inode, struct file *file, | 338 | int (*func)(struct inode *inode, struct file *file, |
339 | unsigned int cmd, void *arg)) | 339 | unsigned int cmd, void *arg)) |
340 | { | 340 | { |
341 | char sbuf[128]; | 341 | char sbuf[128]; |
342 | void *mbuf = NULL; | 342 | void *mbuf = NULL; |
343 | void *parg = NULL; | 343 | void *parg = NULL; |
344 | int err = -EINVAL; | 344 | int err = -EINVAL; |
345 | 345 | ||
346 | /* Copy arguments into temp kernel buffer */ | 346 | /* Copy arguments into temp kernel buffer */ |
347 | switch (_IOC_DIR(cmd)) { | 347 | switch (_IOC_DIR(cmd)) { |
348 | case _IOC_NONE: | 348 | case _IOC_NONE: |
349 | /* | 349 | /* |
350 | * For this command, the pointer is actually an integer | 350 | * For this command, the pointer is actually an integer |
351 | * argument. | 351 | * argument. |
352 | */ | 352 | */ |
353 | parg = (void *) arg; | 353 | parg = (void *) arg; |
354 | break; | 354 | break; |
355 | case _IOC_READ: /* some v4l ioctls are marked wrong ... */ | 355 | case _IOC_READ: /* some v4l ioctls are marked wrong ... */ |
356 | case _IOC_WRITE: | 356 | case _IOC_WRITE: |
357 | case (_IOC_WRITE | _IOC_READ): | 357 | case (_IOC_WRITE | _IOC_READ): |
358 | if (_IOC_SIZE(cmd) <= sizeof(sbuf)) { | 358 | if (_IOC_SIZE(cmd) <= sizeof(sbuf)) { |
359 | parg = sbuf; | 359 | parg = sbuf; |
360 | } else { | 360 | } else { |
361 | /* too big to allocate from stack */ | 361 | /* too big to allocate from stack */ |
362 | mbuf = kmalloc(_IOC_SIZE(cmd),GFP_KERNEL); | 362 | mbuf = kmalloc(_IOC_SIZE(cmd),GFP_KERNEL); |
363 | if (NULL == mbuf) | 363 | if (NULL == mbuf) |
364 | return -ENOMEM; | 364 | return -ENOMEM; |
365 | parg = mbuf; | 365 | parg = mbuf; |
366 | } | 366 | } |
367 | 367 | ||
368 | err = -EFAULT; | 368 | err = -EFAULT; |
369 | if (copy_from_user(parg, (void __user *)arg, _IOC_SIZE(cmd))) | 369 | if (copy_from_user(parg, (void __user *)arg, _IOC_SIZE(cmd))) |
370 | goto out; | 370 | goto out; |
371 | break; | 371 | break; |
372 | } | 372 | } |
373 | 373 | ||
374 | /* call driver */ | 374 | /* call driver */ |
375 | if ((err = func(inode, file, cmd, parg)) == -ENOIOCTLCMD) | 375 | if ((err = func(inode, file, cmd, parg)) == -ENOIOCTLCMD) |
376 | err = -EINVAL; | 376 | err = -EINVAL; |
377 | 377 | ||
378 | if (err < 0) | 378 | if (err < 0) |
379 | goto out; | 379 | goto out; |
380 | 380 | ||
381 | /* Copy results into user buffer */ | 381 | /* Copy results into user buffer */ |
382 | switch (_IOC_DIR(cmd)) | 382 | switch (_IOC_DIR(cmd)) |
383 | { | 383 | { |
384 | case _IOC_READ: | 384 | case _IOC_READ: |
385 | case (_IOC_WRITE | _IOC_READ): | 385 | case (_IOC_WRITE | _IOC_READ): |
386 | if (copy_to_user((void __user *)arg, parg, _IOC_SIZE(cmd))) | 386 | if (copy_to_user((void __user *)arg, parg, _IOC_SIZE(cmd))) |
387 | err = -EFAULT; | 387 | err = -EFAULT; |
388 | break; | 388 | break; |
389 | } | 389 | } |
390 | 390 | ||
391 | out: | 391 | out: |
392 | kfree(mbuf); | 392 | kfree(mbuf); |
393 | return err; | 393 | return err; |
394 | } | 394 | } |
395 | 395 | ||
396 | static int __init init_dvbdev(void) | 396 | static int __init init_dvbdev(void) |
@@ -427,10 +427,10 @@ error: | |||
427 | 427 | ||
428 | static void __exit exit_dvbdev(void) | 428 | static void __exit exit_dvbdev(void) |
429 | { | 429 | { |
430 | devfs_remove("dvb"); | 430 | devfs_remove("dvb"); |
431 | class_destroy(dvb_class); | 431 | class_destroy(dvb_class); |
432 | cdev_del(&dvb_device_cdev); | 432 | cdev_del(&dvb_device_cdev); |
433 | unregister_chrdev_region(MKDEV(DVB_MAJOR, 0), MAX_DVB_MINORS); | 433 | unregister_chrdev_region(MKDEV(DVB_MAJOR, 0), MAX_DVB_MINORS); |
434 | } | 434 | } |
435 | 435 | ||
436 | module_init(init_dvbdev); | 436 | module_init(init_dvbdev); |
diff --git a/drivers/media/dvb/dvb-core/dvbdev.h b/drivers/media/dvb/dvb-core/dvbdev.h index a251867f30f..0cc6e4a0e27 100644 --- a/drivers/media/dvb/dvb-core/dvbdev.h +++ b/drivers/media/dvb/dvb-core/dvbdev.h | |||
@@ -68,8 +68,8 @@ struct dvb_device { | |||
68 | int writers; | 68 | int writers; |
69 | int users; | 69 | int users; |
70 | 70 | ||
71 | /* don't really need those !? -- FIXME: use video_usercopy */ | 71 | /* don't really need those !? -- FIXME: use video_usercopy */ |
72 | int (*kernel_ioctl)(struct inode *inode, struct file *file, | 72 | int (*kernel_ioctl)(struct inode *inode, struct file *file, |
73 | unsigned int cmd, void *arg); | 73 | unsigned int cmd, void *arg); |
74 | 74 | ||
75 | void *priv; | 75 | void *priv; |
@@ -97,7 +97,7 @@ we simply define out own dvb_usercopy(), which will hopefully become | |||
97 | generic_usercopy() someday... */ | 97 | generic_usercopy() someday... */ |
98 | 98 | ||
99 | extern int dvb_usercopy(struct inode *inode, struct file *file, | 99 | extern int dvb_usercopy(struct inode *inode, struct file *file, |
100 | unsigned int cmd, unsigned long arg, | 100 | unsigned int cmd, unsigned long arg, |
101 | int (*func)(struct inode *inode, struct file *file, | 101 | int (*func)(struct inode *inode, struct file *file, |
102 | unsigned int cmd, void *arg)); | 102 | unsigned int cmd, void *arg)); |
103 | 103 | ||
diff --git a/drivers/media/dvb/dvb-usb/a800.c b/drivers/media/dvb/dvb-usb/a800.c index 49f541d9a04..ce44aa6bbb8 100644 --- a/drivers/media/dvb/dvb-usb/a800.c +++ b/drivers/media/dvb/dvb-usb/a800.c | |||
@@ -65,7 +65,7 @@ static struct dvb_usb_rc_key a800_rc_keys[] = { | |||
65 | 65 | ||
66 | }; | 66 | }; |
67 | 67 | ||
68 | int a800_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | 68 | static int a800_rc_query(struct dvb_usb_device *d, u32 *event, int *state) |
69 | { | 69 | { |
70 | u8 key[5]; | 70 | u8 key[5]; |
71 | if (usb_control_msg(d->udev,usb_rcvctrlpipe(d->udev,0), | 71 | if (usb_control_msg(d->udev,usb_rcvctrlpipe(d->udev,0), |
@@ -144,7 +144,6 @@ static struct dvb_usb_properties a800_properties = { | |||
144 | }; | 144 | }; |
145 | 145 | ||
146 | static struct usb_driver a800_driver = { | 146 | static struct usb_driver a800_driver = { |
147 | .owner = THIS_MODULE, | ||
148 | .name = "dvb_usb_a800", | 147 | .name = "dvb_usb_a800", |
149 | .probe = a800_probe, | 148 | .probe = a800_probe, |
150 | .disconnect = dvb_usb_device_exit, | 149 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c index 3fe383f4bb4..d05fab01ccc 100644 --- a/drivers/media/dvb/dvb-usb/cxusb.c +++ b/drivers/media/dvb/dvb-usb/cxusb.c | |||
@@ -241,7 +241,6 @@ static struct dvb_usb_properties cxusb_properties = { | |||
241 | }; | 241 | }; |
242 | 242 | ||
243 | static struct usb_driver cxusb_driver = { | 243 | static struct usb_driver cxusb_driver = { |
244 | .owner = THIS_MODULE, | ||
245 | .name = "dvb_usb_cxusb", | 244 | .name = "dvb_usb_cxusb", |
246 | .probe = cxusb_probe, | 245 | .probe = cxusb_probe, |
247 | .disconnect = dvb_usb_device_exit, | 246 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/dibusb-common.c b/drivers/media/dvb/dvb-usb/dibusb-common.c index 00b946419b4..269d899da48 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-common.c +++ b/drivers/media/dvb/dvb-usb/dibusb-common.c | |||
@@ -21,9 +21,9 @@ MODULE_LICENSE("GPL"); | |||
21 | int dibusb_streaming_ctrl(struct dvb_usb_device *d, int onoff) | 21 | int dibusb_streaming_ctrl(struct dvb_usb_device *d, int onoff) |
22 | { | 22 | { |
23 | if (d->priv != NULL) { | 23 | if (d->priv != NULL) { |
24 | struct dib_fe_xfer_ops *ops = d->priv; | 24 | struct dibusb_state *st = d->priv; |
25 | if (ops->fifo_ctrl != NULL) | 25 | if (st->ops.fifo_ctrl != NULL) |
26 | if (ops->fifo_ctrl(d->fe,onoff)) { | 26 | if (st->ops.fifo_ctrl(d->fe,onoff)) { |
27 | err("error while controlling the fifo of the demod."); | 27 | err("error while controlling the fifo of the demod."); |
28 | return -ENODEV; | 28 | return -ENODEV; |
29 | } | 29 | } |
@@ -35,9 +35,9 @@ EXPORT_SYMBOL(dibusb_streaming_ctrl); | |||
35 | int dibusb_pid_filter(struct dvb_usb_device *d, int index, u16 pid, int onoff) | 35 | int dibusb_pid_filter(struct dvb_usb_device *d, int index, u16 pid, int onoff) |
36 | { | 36 | { |
37 | if (d->priv != NULL) { | 37 | if (d->priv != NULL) { |
38 | struct dib_fe_xfer_ops *ops = d->priv; | 38 | struct dibusb_state *st = d->priv; |
39 | if (d->pid_filtering && ops->pid_ctrl != NULL) | 39 | if (st->ops.pid_ctrl != NULL) |
40 | ops->pid_ctrl(d->fe,index,pid,onoff); | 40 | st->ops.pid_ctrl(d->fe,index,pid,onoff); |
41 | } | 41 | } |
42 | return 0; | 42 | return 0; |
43 | } | 43 | } |
@@ -46,9 +46,9 @@ EXPORT_SYMBOL(dibusb_pid_filter); | |||
46 | int dibusb_pid_filter_ctrl(struct dvb_usb_device *d, int onoff) | 46 | int dibusb_pid_filter_ctrl(struct dvb_usb_device *d, int onoff) |
47 | { | 47 | { |
48 | if (d->priv != NULL) { | 48 | if (d->priv != NULL) { |
49 | struct dib_fe_xfer_ops *ops = d->priv; | 49 | struct dibusb_state *st = d->priv; |
50 | if (ops->pid_parse != NULL) | 50 | if (st->ops.pid_parse != NULL) |
51 | if (ops->pid_parse(d->fe,onoff) < 0) | 51 | if (st->ops.pid_parse(d->fe,onoff) < 0) |
52 | err("could not handle pid_parser"); | 52 | err("could not handle pid_parser"); |
53 | } | 53 | } |
54 | return 0; | 54 | return 0; |
diff --git a/drivers/media/dvb/dvb-usb/dibusb-mb.c b/drivers/media/dvb/dvb-usb/dibusb-mb.c index aa271a2496d..52ac3e5adf5 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-mb.c +++ b/drivers/media/dvb/dvb-usb/dibusb-mb.c | |||
@@ -373,7 +373,6 @@ static struct dvb_usb_properties artec_t1_usb2_properties = { | |||
373 | }; | 373 | }; |
374 | 374 | ||
375 | static struct usb_driver dibusb_driver = { | 375 | static struct usb_driver dibusb_driver = { |
376 | .owner = THIS_MODULE, | ||
377 | .name = "dvb_usb_dibusb_mb", | 376 | .name = "dvb_usb_dibusb_mb", |
378 | .probe = dibusb_probe, | 377 | .probe = dibusb_probe, |
379 | .disconnect = dvb_usb_device_exit, | 378 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/dibusb-mc.c b/drivers/media/dvb/dvb-usb/dibusb-mc.c index 6a0912eab39..55802fba3c2 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-mc.c +++ b/drivers/media/dvb/dvb-usb/dibusb-mc.c | |||
@@ -82,7 +82,6 @@ static struct dvb_usb_properties dibusb_mc_properties = { | |||
82 | }; | 82 | }; |
83 | 83 | ||
84 | static struct usb_driver dibusb_mc_driver = { | 84 | static struct usb_driver dibusb_mc_driver = { |
85 | .owner = THIS_MODULE, | ||
86 | .name = "dvb_usb_dibusb_mc", | 85 | .name = "dvb_usb_dibusb_mc", |
87 | .probe = dibusb_mc_probe, | 86 | .probe = dibusb_mc_probe, |
88 | .disconnect = dvb_usb_device_exit, | 87 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/digitv.c b/drivers/media/dvb/dvb-usb/digitv.c index 74545f82eff..450417a9e64 100644 --- a/drivers/media/dvb/dvb-usb/digitv.c +++ b/drivers/media/dvb/dvb-usb/digitv.c | |||
@@ -148,7 +148,7 @@ static struct dvb_usb_rc_key digitv_rc_keys[] = { | |||
148 | }; | 148 | }; |
149 | 149 | ||
150 | /* TODO is it really the NEC protocol ? */ | 150 | /* TODO is it really the NEC protocol ? */ |
151 | int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | 151 | static int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state) |
152 | { | 152 | { |
153 | u8 key[5]; | 153 | u8 key[5]; |
154 | 154 | ||
@@ -233,7 +233,6 @@ static struct dvb_usb_properties digitv_properties = { | |||
233 | }; | 233 | }; |
234 | 234 | ||
235 | static struct usb_driver digitv_driver = { | 235 | static struct usb_driver digitv_driver = { |
236 | .owner = THIS_MODULE, | ||
237 | .name = "dvb_usb_digitv", | 236 | .name = "dvb_usb_digitv", |
238 | .probe = digitv_probe, | 237 | .probe = digitv_probe, |
239 | .disconnect = dvb_usb_device_exit, | 238 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/dtt200u.c b/drivers/media/dvb/dvb-usb/dtt200u.c index b595476332c..6e2bac87344 100644 --- a/drivers/media/dvb/dvb-usb/dtt200u.c +++ b/drivers/media/dvb/dvb-usb/dtt200u.c | |||
@@ -198,7 +198,6 @@ static struct dvb_usb_properties wt220u_properties = { | |||
198 | 198 | ||
199 | /* usb specific object needed to register this driver with the usb subsystem */ | 199 | /* usb specific object needed to register this driver with the usb subsystem */ |
200 | static struct usb_driver dtt200u_usb_driver = { | 200 | static struct usb_driver dtt200u_usb_driver = { |
201 | .owner = THIS_MODULE, | ||
202 | .name = "dvb_usb_dtt200u", | 201 | .name = "dvb_usb_dtt200u", |
203 | .probe = dtt200u_usb_probe, | 202 | .probe = dtt200u_usb_probe, |
204 | .disconnect = dvb_usb_device_exit, | 203 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-init.c b/drivers/media/dvb/dvb-usb/dvb-usb-init.c index a902059812a..dd8e0b94edb 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-init.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-init.c | |||
@@ -23,7 +23,7 @@ module_param_named(disable_rc_polling, dvb_usb_disable_rc_polling, int, 0644); | |||
23 | MODULE_PARM_DESC(disable_rc_polling, "disable remote control polling (default: 0)."); | 23 | MODULE_PARM_DESC(disable_rc_polling, "disable remote control polling (default: 0)."); |
24 | 24 | ||
25 | /* general initialization functions */ | 25 | /* general initialization functions */ |
26 | int dvb_usb_exit(struct dvb_usb_device *d) | 26 | static int dvb_usb_exit(struct dvb_usb_device *d) |
27 | { | 27 | { |
28 | deb_info("state before exiting everything: %x\n",d->state); | 28 | deb_info("state before exiting everything: %x\n",d->state); |
29 | dvb_usb_remote_exit(d); | 29 | dvb_usb_remote_exit(d); |
diff --git a/drivers/media/dvb/dvb-usb/nova-t-usb2.c b/drivers/media/dvb/dvb-usb/nova-t-usb2.c index 1841a66427b..fac48fc7a4a 100644 --- a/drivers/media/dvb/dvb-usb/nova-t-usb2.c +++ b/drivers/media/dvb/dvb-usb/nova-t-usb2.c | |||
@@ -202,7 +202,6 @@ static struct dvb_usb_properties nova_t_properties = { | |||
202 | }; | 202 | }; |
203 | 203 | ||
204 | static struct usb_driver nova_t_driver = { | 204 | static struct usb_driver nova_t_driver = { |
205 | .owner = THIS_MODULE, | ||
206 | .name = "dvb_usb_nova_t_usb2", | 205 | .name = "dvb_usb_nova_t_usb2", |
207 | .probe = nova_t_probe, | 206 | .probe = nova_t_probe, |
208 | .disconnect = dvb_usb_device_exit, | 207 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/umt-010.c b/drivers/media/dvb/dvb-usb/umt-010.c index 6fd67657c26..14f1911c79b 100644 --- a/drivers/media/dvb/dvb-usb/umt-010.c +++ b/drivers/media/dvb/dvb-usb/umt-010.c | |||
@@ -128,7 +128,6 @@ static struct dvb_usb_properties umt_properties = { | |||
128 | }; | 128 | }; |
129 | 129 | ||
130 | static struct usb_driver umt_driver = { | 130 | static struct usb_driver umt_driver = { |
131 | .owner = THIS_MODULE, | ||
132 | .name = "dvb_usb_umt_010", | 131 | .name = "dvb_usb_umt_010", |
133 | .probe = umt_probe, | 132 | .probe = umt_probe, |
134 | .disconnect = dvb_usb_device_exit, | 133 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/vp702x-fe.c b/drivers/media/dvb/dvb-usb/vp702x-fe.c index f20d8dbd0be..104b5d016c7 100644 --- a/drivers/media/dvb/dvb-usb/vp702x-fe.c +++ b/drivers/media/dvb/dvb-usb/vp702x-fe.c | |||
@@ -190,7 +190,7 @@ static int vp702x_fe_get_frontend(struct dvb_frontend* fe, | |||
190 | } | 190 | } |
191 | 191 | ||
192 | static int vp702x_fe_send_diseqc_msg (struct dvb_frontend* fe, | 192 | static int vp702x_fe_send_diseqc_msg (struct dvb_frontend* fe, |
193 | struct dvb_diseqc_master_cmd *m) | 193 | struct dvb_diseqc_master_cmd *m) |
194 | { | 194 | { |
195 | struct vp702x_fe_state *st = fe->demodulator_priv; | 195 | struct vp702x_fe_state *st = fe->demodulator_priv; |
196 | u8 cmd[8],ibuf[10]; | 196 | u8 cmd[8],ibuf[10]; |
diff --git a/drivers/media/dvb/dvb-usb/vp702x.c b/drivers/media/dvb/dvb-usb/vp702x.c index de13c04e8e6..afa00fdb5ec 100644 --- a/drivers/media/dvb/dvb-usb/vp702x.c +++ b/drivers/media/dvb/dvb-usb/vp702x.c | |||
@@ -256,7 +256,6 @@ static struct dvb_usb_properties vp702x_properties = { | |||
256 | 256 | ||
257 | /* usb specific object needed to register this driver with the usb subsystem */ | 257 | /* usb specific object needed to register this driver with the usb subsystem */ |
258 | static struct usb_driver vp702x_usb_driver = { | 258 | static struct usb_driver vp702x_usb_driver = { |
259 | .owner = THIS_MODULE, | ||
260 | .name = "dvb-usb-vp702x", | 259 | .name = "dvb-usb-vp702x", |
261 | .probe = vp702x_usb_probe, | 260 | .probe = vp702x_usb_probe, |
262 | .disconnect = dvb_usb_device_exit, | 261 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/dvb-usb/vp7045-fe.c b/drivers/media/dvb/dvb-usb/vp7045-fe.c index 2746edfeccb..83f1de1e7e5 100644 --- a/drivers/media/dvb/dvb-usb/vp7045-fe.c +++ b/drivers/media/dvb/dvb-usb/vp7045-fe.c | |||
@@ -58,7 +58,7 @@ static int vp7045_fe_read_ber(struct dvb_frontend* fe, u32 *ber) | |||
58 | struct vp7045_fe_state *state = fe->demodulator_priv; | 58 | struct vp7045_fe_state *state = fe->demodulator_priv; |
59 | *ber = (vp7045_read_reg(state->d, 0x0D) << 16) | | 59 | *ber = (vp7045_read_reg(state->d, 0x0D) << 16) | |
60 | (vp7045_read_reg(state->d, 0x0E) << 8) | | 60 | (vp7045_read_reg(state->d, 0x0E) << 8) | |
61 | vp7045_read_reg(state->d, 0x0F); | 61 | vp7045_read_reg(state->d, 0x0F); |
62 | return 0; | 62 | return 0; |
63 | } | 63 | } |
64 | 64 | ||
diff --git a/drivers/media/dvb/dvb-usb/vp7045.c b/drivers/media/dvb/dvb-usb/vp7045.c index 75765e3a569..3835235b68d 100644 --- a/drivers/media/dvb/dvb-usb/vp7045.c +++ b/drivers/media/dvb/dvb-usb/vp7045.c | |||
@@ -253,7 +253,6 @@ static struct dvb_usb_properties vp7045_properties = { | |||
253 | 253 | ||
254 | /* usb specific object needed to register this driver with the usb subsystem */ | 254 | /* usb specific object needed to register this driver with the usb subsystem */ |
255 | static struct usb_driver vp7045_usb_driver = { | 255 | static struct usb_driver vp7045_usb_driver = { |
256 | .owner = THIS_MODULE, | ||
257 | .name = "dvb_usb_vp7045", | 256 | .name = "dvb_usb_vp7045", |
258 | .probe = vp7045_usb_probe, | 257 | .probe = vp7045_usb_probe, |
259 | .disconnect = dvb_usb_device_exit, | 258 | .disconnect = dvb_usb_device_exit, |
diff --git a/drivers/media/dvb/frontends/at76c651.c b/drivers/media/dvb/frontends/at76c651.c index 72a2b5455b0..8e0f4b3a141 100644 --- a/drivers/media/dvb/frontends/at76c651.c +++ b/drivers/media/dvb/frontends/at76c651.c | |||
@@ -361,9 +361,9 @@ static int at76c651_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) | |||
361 | 361 | ||
362 | static int at76c651_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings *fesettings) | 362 | static int at76c651_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings *fesettings) |
363 | { | 363 | { |
364 | fesettings->min_delay_ms = 50; | 364 | fesettings->min_delay_ms = 50; |
365 | fesettings->step_size = 0; | 365 | fesettings->step_size = 0; |
366 | fesettings->max_drift = 0; | 366 | fesettings->max_drift = 0; |
367 | return 0; | 367 | return 0; |
368 | } | 368 | } |
369 | 369 | ||
diff --git a/drivers/media/dvb/frontends/bcm3510.c b/drivers/media/dvb/frontends/bcm3510.c index f6d4ee78bdd..8ceb9a33c7a 100644 --- a/drivers/media/dvb/frontends/bcm3510.c +++ b/drivers/media/dvb/frontends/bcm3510.c | |||
@@ -69,7 +69,7 @@ MODULE_PARM_DESC(debug, "set debugging level (1=info,2=i2c (|-able))."); | |||
69 | #define dbufout(b,l,m) {\ | 69 | #define dbufout(b,l,m) {\ |
70 | int i; \ | 70 | int i; \ |
71 | for (i = 0; i < l; i++) \ | 71 | for (i = 0; i < l; i++) \ |
72 | m("%02x ",b[i]); \ | 72 | m("%02x ",b[i]); \ |
73 | } | 73 | } |
74 | #define deb_info(args...) dprintk(0x01,args) | 74 | #define deb_info(args...) dprintk(0x01,args) |
75 | #define deb_i2c(args...) dprintk(0x02,args) | 75 | #define deb_i2c(args...) dprintk(0x02,args) |
@@ -827,7 +827,7 @@ static struct dvb_frontend_ops bcm3510_ops = { | |||
827 | .type = FE_ATSC, | 827 | .type = FE_ATSC, |
828 | .frequency_min = 54000000, | 828 | .frequency_min = 54000000, |
829 | .frequency_max = 803000000, | 829 | .frequency_max = 803000000, |
830 | /* stepsize is just a guess */ | 830 | /* stepsize is just a guess */ |
831 | .frequency_stepsize = 0, | 831 | .frequency_stepsize = 0, |
832 | .caps = | 832 | .caps = |
833 | FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | | 833 | FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | |
diff --git a/drivers/media/dvb/frontends/cx22700.c b/drivers/media/dvb/frontends/cx22700.c index 0c2ed443861..755f774f6b7 100644 --- a/drivers/media/dvb/frontends/cx22700.c +++ b/drivers/media/dvb/frontends/cx22700.c | |||
@@ -355,10 +355,10 @@ static int cx22700_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_par | |||
355 | 355 | ||
356 | static int cx22700_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) | 356 | static int cx22700_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) |
357 | { | 357 | { |
358 | fesettings->min_delay_ms = 150; | 358 | fesettings->min_delay_ms = 150; |
359 | fesettings->step_size = 166667; | 359 | fesettings->step_size = 166667; |
360 | fesettings->max_drift = 166667*2; | 360 | fesettings->max_drift = 166667*2; |
361 | return 0; | 361 | return 0; |
362 | } | 362 | } |
363 | 363 | ||
364 | static void cx22700_release(struct dvb_frontend* fe) | 364 | static void cx22700_release(struct dvb_frontend* fe) |
@@ -407,7 +407,7 @@ static struct dvb_frontend_ops cx22700_ops = { | |||
407 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | | 407 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | |
408 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | | 408 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | |
409 | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | | 409 | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | |
410 | FE_CAN_RECOVER | 410 | FE_CAN_RECOVER |
411 | }, | 411 | }, |
412 | 412 | ||
413 | .release = cx22700_release, | 413 | .release = cx22700_release, |
diff --git a/drivers/media/dvb/frontends/cx22702.c b/drivers/media/dvb/frontends/cx22702.c index 9f639297a9f..5de0e6d350b 100644 --- a/drivers/media/dvb/frontends/cx22702.c +++ b/drivers/media/dvb/frontends/cx22702.c | |||
@@ -2,12 +2,12 @@ | |||
2 | Conexant 22702 DVB OFDM demodulator driver | 2 | Conexant 22702 DVB OFDM demodulator driver |
3 | 3 | ||
4 | based on: | 4 | based on: |
5 | Alps TDMB7 DVB OFDM demodulator driver | 5 | Alps TDMB7 DVB OFDM demodulator driver |
6 | 6 | ||
7 | Copyright (C) 2001-2002 Convergence Integrated Media GmbH | 7 | Copyright (C) 2001-2002 Convergence Integrated Media GmbH |
8 | Holger Waechtler <holger@convergence.de> | 8 | Holger Waechtler <holger@convergence.de> |
9 | 9 | ||
10 | Copyright (C) 2004 Steven Toth <steve@toth.demon.co.uk> | 10 | Copyright (C) 2004 Steven Toth <stoth@hauppauge.com> |
11 | 11 | ||
12 | This program is free software; you can redistribute it and/or modify | 12 | This program is free software; you can redistribute it and/or modify |
13 | it under the terms of the GNU General Public License as published by | 13 | it under the terms of the GNU General Public License as published by |
diff --git a/drivers/media/dvb/frontends/cx22702.h b/drivers/media/dvb/frontends/cx22702.h index 11f86806756..5633976a58f 100644 --- a/drivers/media/dvb/frontends/cx22702.h +++ b/drivers/media/dvb/frontends/cx22702.h | |||
@@ -2,12 +2,12 @@ | |||
2 | Conexant 22702 DVB OFDM demodulator driver | 2 | Conexant 22702 DVB OFDM demodulator driver |
3 | 3 | ||
4 | based on: | 4 | based on: |
5 | Alps TDMB7 DVB OFDM demodulator driver | 5 | Alps TDMB7 DVB OFDM demodulator driver |
6 | 6 | ||
7 | Copyright (C) 2001-2002 Convergence Integrated Media GmbH | 7 | Copyright (C) 2001-2002 Convergence Integrated Media GmbH |
8 | Holger Waechtler <holger@convergence.de> | 8 | Holger Waechtler <holger@convergence.de> |
9 | 9 | ||
10 | Copyright (C) 2004 Steven Toth <steve@toth.demon.co.uk> | 10 | Copyright (C) 2004 Steven Toth <stoth@hauppauge.com> |
11 | 11 | ||
12 | This program is free software; you can redistribute it and/or modify | 12 | This program is free software; you can redistribute it and/or modify |
13 | it under the terms of the GNU General Public License as published by | 13 | it under the terms of the GNU General Public License as published by |
diff --git a/drivers/media/dvb/frontends/cx24110.c b/drivers/media/dvb/frontends/cx24110.c index 654d7dc879d..0c4db80ec33 100644 --- a/drivers/media/dvb/frontends/cx24110.c +++ b/drivers/media/dvb/frontends/cx24110.c | |||
@@ -55,81 +55,81 @@ static int debug; | |||
55 | } while (0) | 55 | } while (0) |
56 | 56 | ||
57 | static struct {u8 reg; u8 data;} cx24110_regdata[]= | 57 | static struct {u8 reg; u8 data;} cx24110_regdata[]= |
58 | /* Comments beginning with @ denote this value should | 58 | /* Comments beginning with @ denote this value should |
59 | be the default */ | 59 | be the default */ |
60 | {{0x09,0x01}, /* SoftResetAll */ | 60 | {{0x09,0x01}, /* SoftResetAll */ |
61 | {0x09,0x00}, /* release reset */ | 61 | {0x09,0x00}, /* release reset */ |
62 | {0x01,0xe8}, /* MSB of code rate 27.5MS/s */ | 62 | {0x01,0xe8}, /* MSB of code rate 27.5MS/s */ |
63 | {0x02,0x17}, /* middle byte " */ | 63 | {0x02,0x17}, /* middle byte " */ |
64 | {0x03,0x29}, /* LSB " */ | 64 | {0x03,0x29}, /* LSB " */ |
65 | {0x05,0x03}, /* @ DVB mode, standard code rate 3/4 */ | 65 | {0x05,0x03}, /* @ DVB mode, standard code rate 3/4 */ |
66 | {0x06,0xa5}, /* @ PLL 60MHz */ | 66 | {0x06,0xa5}, /* @ PLL 60MHz */ |
67 | {0x07,0x01}, /* @ Fclk, i.e. sampling clock, 60MHz */ | 67 | {0x07,0x01}, /* @ Fclk, i.e. sampling clock, 60MHz */ |
68 | {0x0a,0x00}, /* @ partial chip disables, do not set */ | 68 | {0x0a,0x00}, /* @ partial chip disables, do not set */ |
69 | {0x0b,0x01}, /* set output clock in gapped mode, start signal low | 69 | {0x0b,0x01}, /* set output clock in gapped mode, start signal low |
70 | active for first byte */ | 70 | active for first byte */ |
71 | {0x0c,0x11}, /* no parity bytes, large hold time, serial data out */ | 71 | {0x0c,0x11}, /* no parity bytes, large hold time, serial data out */ |
72 | {0x0d,0x6f}, /* @ RS Sync/Unsync thresholds */ | 72 | {0x0d,0x6f}, /* @ RS Sync/Unsync thresholds */ |
73 | {0x10,0x40}, /* chip doc is misleading here: write bit 6 as 1 | 73 | {0x10,0x40}, /* chip doc is misleading here: write bit 6 as 1 |
74 | to avoid starting the BER counter. Reset the | 74 | to avoid starting the BER counter. Reset the |
75 | CRC test bit. Finite counting selected */ | 75 | CRC test bit. Finite counting selected */ |
76 | {0x15,0xff}, /* @ size of the limited time window for RS BER | 76 | {0x15,0xff}, /* @ size of the limited time window for RS BER |
77 | estimation. It is <value>*256 RS blocks, this | 77 | estimation. It is <value>*256 RS blocks, this |
78 | gives approx. 2.6 sec at 27.5MS/s, rate 3/4 */ | 78 | gives approx. 2.6 sec at 27.5MS/s, rate 3/4 */ |
79 | {0x16,0x00}, /* @ enable all RS output ports */ | 79 | {0x16,0x00}, /* @ enable all RS output ports */ |
80 | {0x17,0x04}, /* @ time window allowed for the RS to sync */ | 80 | {0x17,0x04}, /* @ time window allowed for the RS to sync */ |
81 | {0x18,0xae}, /* @ allow all standard DVB code rates to be scanned | 81 | {0x18,0xae}, /* @ allow all standard DVB code rates to be scanned |
82 | for automatically */ | 82 | for automatically */ |
83 | /* leave the current code rate and normalization | 83 | /* leave the current code rate and normalization |
84 | registers as they are after reset... */ | 84 | registers as they are after reset... */ |
85 | {0x21,0x10}, /* @ during AutoAcq, search each viterbi setting | 85 | {0x21,0x10}, /* @ during AutoAcq, search each viterbi setting |
86 | only once */ | 86 | only once */ |
87 | {0x23,0x18}, /* @ size of the limited time window for Viterbi BER | 87 | {0x23,0x18}, /* @ size of the limited time window for Viterbi BER |
88 | estimation. It is <value>*65536 channel bits, i.e. | 88 | estimation. It is <value>*65536 channel bits, i.e. |
89 | approx. 38ms at 27.5MS/s, rate 3/4 */ | 89 | approx. 38ms at 27.5MS/s, rate 3/4 */ |
90 | {0x24,0x24}, /* do not trigger Viterbi CRC test. Finite count window */ | 90 | {0x24,0x24}, /* do not trigger Viterbi CRC test. Finite count window */ |
91 | /* leave front-end AGC parameters at default values */ | 91 | /* leave front-end AGC parameters at default values */ |
92 | /* leave decimation AGC parameters at default values */ | 92 | /* leave decimation AGC parameters at default values */ |
93 | {0x35,0x40}, /* disable all interrupts. They are not connected anyway */ | 93 | {0x35,0x40}, /* disable all interrupts. They are not connected anyway */ |
94 | {0x36,0xff}, /* clear all interrupt pending flags */ | 94 | {0x36,0xff}, /* clear all interrupt pending flags */ |
95 | {0x37,0x00}, /* @ fully enable AutoAcqq state machine */ | 95 | {0x37,0x00}, /* @ fully enable AutoAcqq state machine */ |
96 | {0x38,0x07}, /* @ enable fade recovery, but not autostart AutoAcq */ | 96 | {0x38,0x07}, /* @ enable fade recovery, but not autostart AutoAcq */ |
97 | /* leave the equalizer parameters on their default values */ | 97 | /* leave the equalizer parameters on their default values */ |
98 | /* leave the final AGC parameters on their default values */ | 98 | /* leave the final AGC parameters on their default values */ |
99 | {0x41,0x00}, /* @ MSB of front-end derotator frequency */ | 99 | {0x41,0x00}, /* @ MSB of front-end derotator frequency */ |
100 | {0x42,0x00}, /* @ middle bytes " */ | 100 | {0x42,0x00}, /* @ middle bytes " */ |
101 | {0x43,0x00}, /* @ LSB " */ | 101 | {0x43,0x00}, /* @ LSB " */ |
102 | /* leave the carrier tracking loop parameters on default */ | 102 | /* leave the carrier tracking loop parameters on default */ |
103 | /* leave the bit timing loop parameters at gefault */ | 103 | /* leave the bit timing loop parameters at gefault */ |
104 | {0x56,0x4d}, /* set the filtune voltage to 2.7V, as recommended by */ | 104 | {0x56,0x4d}, /* set the filtune voltage to 2.7V, as recommended by */ |
105 | /* the cx24108 data sheet for symbol rates above 15MS/s */ | 105 | /* the cx24108 data sheet for symbol rates above 15MS/s */ |
106 | {0x57,0x00}, /* @ Filter sigma delta enabled, positive */ | 106 | {0x57,0x00}, /* @ Filter sigma delta enabled, positive */ |
107 | {0x61,0x95}, /* GPIO pins 1-4 have special function */ | 107 | {0x61,0x95}, /* GPIO pins 1-4 have special function */ |
108 | {0x62,0x05}, /* GPIO pin 5 has special function, pin 6 is GPIO */ | 108 | {0x62,0x05}, /* GPIO pin 5 has special function, pin 6 is GPIO */ |
109 | {0x63,0x00}, /* All GPIO pins use CMOS output characteristics */ | 109 | {0x63,0x00}, /* All GPIO pins use CMOS output characteristics */ |
110 | {0x64,0x20}, /* GPIO 6 is input, all others are outputs */ | 110 | {0x64,0x20}, /* GPIO 6 is input, all others are outputs */ |
111 | {0x6d,0x30}, /* tuner auto mode clock freq 62kHz */ | 111 | {0x6d,0x30}, /* tuner auto mode clock freq 62kHz */ |
112 | {0x70,0x15}, /* use auto mode, tuner word is 21 bits long */ | 112 | {0x70,0x15}, /* use auto mode, tuner word is 21 bits long */ |
113 | {0x73,0x00}, /* @ disable several demod bypasses */ | 113 | {0x73,0x00}, /* @ disable several demod bypasses */ |
114 | {0x74,0x00}, /* @ " */ | 114 | {0x74,0x00}, /* @ " */ |
115 | {0x75,0x00} /* @ " */ | 115 | {0x75,0x00} /* @ " */ |
116 | /* the remaining registers are for SEC */ | 116 | /* the remaining registers are for SEC */ |
117 | }; | 117 | }; |
118 | 118 | ||
119 | 119 | ||
120 | static int cx24110_writereg (struct cx24110_state* state, int reg, int data) | 120 | static int cx24110_writereg (struct cx24110_state* state, int reg, int data) |
121 | { | 121 | { |
122 | u8 buf [] = { reg, data }; | 122 | u8 buf [] = { reg, data }; |
123 | struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; | 123 | struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; |
124 | int err; | 124 | int err; |
125 | 125 | ||
126 | if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) { | 126 | if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) { |
127 | dprintk ("%s: writereg error (err == %i, reg == 0x%02x," | 127 | dprintk ("%s: writereg error (err == %i, reg == 0x%02x," |
128 | " data == 0x%02x)\n", __FUNCTION__, err, reg, data); | 128 | " data == 0x%02x)\n", __FUNCTION__, err, reg, data); |
129 | return -EREMOTEIO; | 129 | return -EREMOTEIO; |
130 | } | 130 | } |
131 | 131 | ||
132 | return 0; | 132 | return 0; |
133 | } | 133 | } |
134 | 134 | ||
135 | static int cx24110_readreg (struct cx24110_state* state, u8 reg) | 135 | static int cx24110_readreg (struct cx24110_state* state, u8 reg) |
@@ -153,27 +153,27 @@ static int cx24110_set_inversion (struct cx24110_state* state, fe_spectral_inver | |||
153 | 153 | ||
154 | switch (inversion) { | 154 | switch (inversion) { |
155 | case INVERSION_OFF: | 155 | case INVERSION_OFF: |
156 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x1); | 156 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x1); |
157 | /* AcqSpectrInvDis on. No idea why someone should want this */ | 157 | /* AcqSpectrInvDis on. No idea why someone should want this */ |
158 | cx24110_writereg(state,0x5,cx24110_readreg(state,0x5)&0xf7); | 158 | cx24110_writereg(state,0x5,cx24110_readreg(state,0x5)&0xf7); |
159 | /* Initial value 0 at start of acq */ | 159 | /* Initial value 0 at start of acq */ |
160 | cx24110_writereg(state,0x22,cx24110_readreg(state,0x22)&0xef); | 160 | cx24110_writereg(state,0x22,cx24110_readreg(state,0x22)&0xef); |
161 | /* current value 0 */ | 161 | /* current value 0 */ |
162 | /* The cx24110 manual tells us this reg is read-only. | 162 | /* The cx24110 manual tells us this reg is read-only. |
163 | But what the heck... set it ayways */ | 163 | But what the heck... set it ayways */ |
164 | break; | 164 | break; |
165 | case INVERSION_ON: | 165 | case INVERSION_ON: |
166 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x1); | 166 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x1); |
167 | /* AcqSpectrInvDis on. No idea why someone should want this */ | 167 | /* AcqSpectrInvDis on. No idea why someone should want this */ |
168 | cx24110_writereg(state,0x5,cx24110_readreg(state,0x5)|0x08); | 168 | cx24110_writereg(state,0x5,cx24110_readreg(state,0x5)|0x08); |
169 | /* Initial value 1 at start of acq */ | 169 | /* Initial value 1 at start of acq */ |
170 | cx24110_writereg(state,0x22,cx24110_readreg(state,0x22)|0x10); | 170 | cx24110_writereg(state,0x22,cx24110_readreg(state,0x22)|0x10); |
171 | /* current value 1 */ | 171 | /* current value 1 */ |
172 | break; | 172 | break; |
173 | case INVERSION_AUTO: | 173 | case INVERSION_AUTO: |
174 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)&0xfe); | 174 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)&0xfe); |
175 | /* AcqSpectrInvDis off. Leave initial & current states as is */ | 175 | /* AcqSpectrInvDis off. Leave initial & current states as is */ |
176 | break; | 176 | break; |
177 | default: | 177 | default: |
178 | return -EINVAL; | 178 | return -EINVAL; |
179 | } | 179 | } |
@@ -185,18 +185,18 @@ static int cx24110_set_fec (struct cx24110_state* state, fe_code_rate_t fec) | |||
185 | { | 185 | { |
186 | /* fixme (low): error handling */ | 186 | /* fixme (low): error handling */ |
187 | 187 | ||
188 | static const int rate[]={-1,1,2,3,5,7,-1}; | 188 | static const int rate[]={-1,1,2,3,5,7,-1}; |
189 | static const int g1[]={-1,0x01,0x02,0x05,0x15,0x45,-1}; | 189 | static const int g1[]={-1,0x01,0x02,0x05,0x15,0x45,-1}; |
190 | static const int g2[]={-1,0x01,0x03,0x06,0x1a,0x7a,-1}; | 190 | static const int g2[]={-1,0x01,0x03,0x06,0x1a,0x7a,-1}; |
191 | 191 | ||
192 | /* Well, the AutoAcq engine of the cx24106 and 24110 automatically | 192 | /* Well, the AutoAcq engine of the cx24106 and 24110 automatically |
193 | searches all enabled viterbi rates, and can handle non-standard | 193 | searches all enabled viterbi rates, and can handle non-standard |
194 | rates as well. */ | 194 | rates as well. */ |
195 | 195 | ||
196 | if (fec>FEC_AUTO) | 196 | if (fec>FEC_AUTO) |
197 | fec=FEC_AUTO; | 197 | fec=FEC_AUTO; |
198 | 198 | ||
199 | if (fec==FEC_AUTO) { /* (re-)establish AutoAcq behaviour */ | 199 | if (fec==FEC_AUTO) { /* (re-)establish AutoAcq behaviour */ |
200 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)&0xdf); | 200 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)&0xdf); |
201 | /* clear AcqVitDis bit */ | 201 | /* clear AcqVitDis bit */ |
202 | cx24110_writereg(state,0x18,0xae); | 202 | cx24110_writereg(state,0x18,0xae); |
@@ -208,7 +208,7 @@ static int cx24110_set_fec (struct cx24110_state* state, fe_code_rate_t fec) | |||
208 | cx24110_writereg(state,0x1a,0x05); cx24110_writereg(state,0x1b,0x06); | 208 | cx24110_writereg(state,0x1a,0x05); cx24110_writereg(state,0x1b,0x06); |
209 | /* set the puncture registers for code rate 3/4 */ | 209 | /* set the puncture registers for code rate 3/4 */ |
210 | return 0; | 210 | return 0; |
211 | } else { | 211 | } else { |
212 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x20); | 212 | cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x20); |
213 | /* set AcqVitDis bit */ | 213 | /* set AcqVitDis bit */ |
214 | if(rate[fec]>0) { | 214 | if(rate[fec]>0) { |
@@ -219,10 +219,10 @@ static int cx24110_set_fec (struct cx24110_state* state, fe_code_rate_t fec) | |||
219 | cx24110_writereg(state,0x1a,g1[fec]); | 219 | cx24110_writereg(state,0x1a,g1[fec]); |
220 | cx24110_writereg(state,0x1b,g2[fec]); | 220 | cx24110_writereg(state,0x1b,g2[fec]); |
221 | /* not sure if this is the right way: I always used AutoAcq mode */ | 221 | /* not sure if this is the right way: I always used AutoAcq mode */ |
222 | } else | 222 | } else |
223 | return -EOPNOTSUPP; | 223 | return -EOPNOTSUPP; |
224 | /* fixme (low): which is the correct return code? */ | 224 | /* fixme (low): which is the correct return code? */ |
225 | }; | 225 | }; |
226 | return 0; | 226 | return 0; |
227 | } | 227 | } |
228 | 228 | ||
@@ -245,72 +245,72 @@ static fe_code_rate_t cx24110_get_fec (struct cx24110_state* state) | |||
245 | static int cx24110_set_symbolrate (struct cx24110_state* state, u32 srate) | 245 | static int cx24110_set_symbolrate (struct cx24110_state* state, u32 srate) |
246 | { | 246 | { |
247 | /* fixme (low): add error handling */ | 247 | /* fixme (low): add error handling */ |
248 | u32 ratio; | 248 | u32 ratio; |
249 | u32 tmp, fclk, BDRI; | 249 | u32 tmp, fclk, BDRI; |
250 | 250 | ||
251 | static const u32 bands[]={5000000UL,15000000UL,90999000UL/2}; | 251 | static const u32 bands[]={5000000UL,15000000UL,90999000UL/2}; |
252 | int i; | 252 | int i; |
253 | 253 | ||
254 | dprintk("cx24110 debug: entering %s(%d)\n",__FUNCTION__,srate); | 254 | dprintk("cx24110 debug: entering %s(%d)\n",__FUNCTION__,srate); |
255 | if (srate>90999000UL/2) | 255 | if (srate>90999000UL/2) |
256 | srate=90999000UL/2; | 256 | srate=90999000UL/2; |
257 | if (srate<500000) | 257 | if (srate<500000) |
258 | srate=500000; | 258 | srate=500000; |
259 | 259 | ||
260 | for(i=0;(i<sizeof(bands)/sizeof(bands[0]))&&(srate>bands[i]);i++) | 260 | for(i=0;(i<sizeof(bands)/sizeof(bands[0]))&&(srate>bands[i]);i++) |
261 | ; | 261 | ; |
262 | /* first, check which sample rate is appropriate: 45, 60 80 or 90 MHz, | 262 | /* first, check which sample rate is appropriate: 45, 60 80 or 90 MHz, |
263 | and set the PLL accordingly (R07[1:0] Fclk, R06[7:4] PLLmult, | 263 | and set the PLL accordingly (R07[1:0] Fclk, R06[7:4] PLLmult, |
264 | R06[3:0] PLLphaseDetGain */ | 264 | R06[3:0] PLLphaseDetGain */ |
265 | tmp=cx24110_readreg(state,0x07)&0xfc; | 265 | tmp=cx24110_readreg(state,0x07)&0xfc; |
266 | if(srate<90999000UL/4) { /* sample rate 45MHz*/ | 266 | if(srate<90999000UL/4) { /* sample rate 45MHz*/ |
267 | cx24110_writereg(state,0x07,tmp); | 267 | cx24110_writereg(state,0x07,tmp); |
268 | cx24110_writereg(state,0x06,0x78); | 268 | cx24110_writereg(state,0x06,0x78); |
269 | fclk=90999000UL/2; | 269 | fclk=90999000UL/2; |
270 | } else if(srate<60666000UL/2) { /* sample rate 60MHz */ | 270 | } else if(srate<60666000UL/2) { /* sample rate 60MHz */ |
271 | cx24110_writereg(state,0x07,tmp|0x1); | 271 | cx24110_writereg(state,0x07,tmp|0x1); |
272 | cx24110_writereg(state,0x06,0xa5); | 272 | cx24110_writereg(state,0x06,0xa5); |
273 | fclk=60666000UL; | 273 | fclk=60666000UL; |
274 | } else if(srate<80888000UL/2) { /* sample rate 80MHz */ | 274 | } else if(srate<80888000UL/2) { /* sample rate 80MHz */ |
275 | cx24110_writereg(state,0x07,tmp|0x2); | 275 | cx24110_writereg(state,0x07,tmp|0x2); |
276 | cx24110_writereg(state,0x06,0x87); | 276 | cx24110_writereg(state,0x06,0x87); |
277 | fclk=80888000UL; | 277 | fclk=80888000UL; |
278 | } else { /* sample rate 90MHz */ | 278 | } else { /* sample rate 90MHz */ |
279 | cx24110_writereg(state,0x07,tmp|0x3); | 279 | cx24110_writereg(state,0x07,tmp|0x3); |
280 | cx24110_writereg(state,0x06,0x78); | 280 | cx24110_writereg(state,0x06,0x78); |
281 | fclk=90999000UL; | 281 | fclk=90999000UL; |
282 | }; | 282 | }; |
283 | dprintk("cx24110 debug: fclk %d Hz\n",fclk); | 283 | dprintk("cx24110 debug: fclk %d Hz\n",fclk); |
284 | /* we need to divide two integers with approx. 27 bits in 32 bit | 284 | /* we need to divide two integers with approx. 27 bits in 32 bit |
285 | arithmetic giving a 25 bit result */ | 285 | arithmetic giving a 25 bit result */ |
286 | /* the maximum dividend is 90999000/2, 0x02b6446c, this number is | 286 | /* the maximum dividend is 90999000/2, 0x02b6446c, this number is |
287 | also the most complex divisor. Hence, the dividend has, | 287 | also the most complex divisor. Hence, the dividend has, |
288 | assuming 32bit unsigned arithmetic, 6 clear bits on top, the | 288 | assuming 32bit unsigned arithmetic, 6 clear bits on top, the |
289 | divisor 2 unused bits at the bottom. Also, the quotient is | 289 | divisor 2 unused bits at the bottom. Also, the quotient is |
290 | always less than 1/2. Borrowed from VES1893.c, of course */ | 290 | always less than 1/2. Borrowed from VES1893.c, of course */ |
291 | 291 | ||
292 | tmp=srate<<6; | 292 | tmp=srate<<6; |
293 | BDRI=fclk>>2; | 293 | BDRI=fclk>>2; |
294 | ratio=(tmp/BDRI); | 294 | ratio=(tmp/BDRI); |
295 | 295 | ||
296 | tmp=(tmp%BDRI)<<8; | 296 | tmp=(tmp%BDRI)<<8; |
297 | ratio=(ratio<<8)+(tmp/BDRI); | 297 | ratio=(ratio<<8)+(tmp/BDRI); |
298 | 298 | ||
299 | tmp=(tmp%BDRI)<<8; | 299 | tmp=(tmp%BDRI)<<8; |
300 | ratio=(ratio<<8)+(tmp/BDRI); | 300 | ratio=(ratio<<8)+(tmp/BDRI); |
301 | 301 | ||
302 | tmp=(tmp%BDRI)<<1; | 302 | tmp=(tmp%BDRI)<<1; |
303 | ratio=(ratio<<1)+(tmp/BDRI); | 303 | ratio=(ratio<<1)+(tmp/BDRI); |
304 | 304 | ||
305 | dprintk("srate= %d (range %d, up to %d)\n", srate,i,bands[i]); | 305 | dprintk("srate= %d (range %d, up to %d)\n", srate,i,bands[i]); |
306 | dprintk("fclk = %d\n", fclk); | 306 | dprintk("fclk = %d\n", fclk); |
307 | dprintk("ratio= %08x\n", ratio); | 307 | dprintk("ratio= %08x\n", ratio); |
308 | 308 | ||
309 | cx24110_writereg(state, 0x1, (ratio>>16)&0xff); | 309 | cx24110_writereg(state, 0x1, (ratio>>16)&0xff); |
310 | cx24110_writereg(state, 0x2, (ratio>>8)&0xff); | 310 | cx24110_writereg(state, 0x2, (ratio>>8)&0xff); |
311 | cx24110_writereg(state, 0x3, (ratio)&0xff); | 311 | cx24110_writereg(state, 0x3, (ratio)&0xff); |
312 | 312 | ||
313 | return 0; | 313 | return 0; |
314 | 314 | ||
315 | } | 315 | } |
316 | 316 | ||
@@ -324,48 +324,48 @@ int cx24110_pll_write (struct dvb_frontend* fe, u32 data) | |||
324 | 324 | ||
325 | dprintk("cx24110 debug: cx24108_write(%8.8x)\n",data); | 325 | dprintk("cx24110 debug: cx24108_write(%8.8x)\n",data); |
326 | 326 | ||
327 | cx24110_writereg(state,0x6d,0x30); /* auto mode at 62kHz */ | 327 | cx24110_writereg(state,0x6d,0x30); /* auto mode at 62kHz */ |
328 | cx24110_writereg(state,0x70,0x15); /* auto mode 21 bits */ | 328 | cx24110_writereg(state,0x70,0x15); /* auto mode 21 bits */ |
329 | 329 | ||
330 | /* if the auto tuner writer is still busy, clear it out */ | 330 | /* if the auto tuner writer is still busy, clear it out */ |
331 | while (cx24110_readreg(state,0x6d)&0x80) | 331 | while (cx24110_readreg(state,0x6d)&0x80) |
332 | cx24110_writereg(state,0x72,0); | 332 | cx24110_writereg(state,0x72,0); |
333 | 333 | ||
334 | /* write the topmost 8 bits */ | 334 | /* write the topmost 8 bits */ |
335 | cx24110_writereg(state,0x72,(data>>24)&0xff); | 335 | cx24110_writereg(state,0x72,(data>>24)&0xff); |
336 | 336 | ||
337 | /* wait for the send to be completed */ | 337 | /* wait for the send to be completed */ |
338 | while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) | 338 | while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) |
339 | ; | 339 | ; |
340 | 340 | ||
341 | /* send another 8 bytes */ | 341 | /* send another 8 bytes */ |
342 | cx24110_writereg(state,0x72,(data>>16)&0xff); | 342 | cx24110_writereg(state,0x72,(data>>16)&0xff); |
343 | while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) | 343 | while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) |
344 | ; | 344 | ; |
345 | 345 | ||
346 | /* and the topmost 5 bits of this byte */ | 346 | /* and the topmost 5 bits of this byte */ |
347 | cx24110_writereg(state,0x72,(data>>8)&0xff); | 347 | cx24110_writereg(state,0x72,(data>>8)&0xff); |
348 | while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) | 348 | while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) |
349 | ; | 349 | ; |
350 | 350 | ||
351 | /* now strobe the enable line once */ | 351 | /* now strobe the enable line once */ |
352 | cx24110_writereg(state,0x6d,0x32); | 352 | cx24110_writereg(state,0x6d,0x32); |
353 | cx24110_writereg(state,0x6d,0x30); | 353 | cx24110_writereg(state,0x6d,0x30); |
354 | 354 | ||
355 | return 0; | 355 | return 0; |
356 | } | 356 | } |
357 | 357 | ||
358 | static int cx24110_initfe(struct dvb_frontend* fe) | 358 | static int cx24110_initfe(struct dvb_frontend* fe) |
359 | { | 359 | { |
360 | struct cx24110_state *state = fe->demodulator_priv; | 360 | struct cx24110_state *state = fe->demodulator_priv; |
361 | /* fixme (low): error handling */ | 361 | /* fixme (low): error handling */ |
362 | int i; | 362 | int i; |
363 | 363 | ||
364 | dprintk("%s: init chip\n", __FUNCTION__); | 364 | dprintk("%s: init chip\n", __FUNCTION__); |
365 | 365 | ||
366 | for(i=0;i<sizeof(cx24110_regdata)/sizeof(cx24110_regdata[0]);i++) { | 366 | for(i=0;i<sizeof(cx24110_regdata)/sizeof(cx24110_regdata[0]);i++) { |
367 | cx24110_writereg(state, cx24110_regdata[i].reg, cx24110_regdata[i].data); | 367 | cx24110_writereg(state, cx24110_regdata[i].reg, cx24110_regdata[i].data); |
368 | }; | 368 | }; |
369 | 369 | ||
370 | if (state->config->pll_init) state->config->pll_init(fe); | 370 | if (state->config->pll_init) state->config->pll_init(fe); |
371 | 371 | ||
diff --git a/drivers/media/dvb/frontends/l64781.c b/drivers/media/dvb/frontends/l64781.c index 19b4bf7c21a..1c7c9122447 100644 --- a/drivers/media/dvb/frontends/l64781.c +++ b/drivers/media/dvb/frontends/l64781.c | |||
@@ -2,7 +2,7 @@ | |||
2 | driver for LSI L64781 COFDM demodulator | 2 | driver for LSI L64781 COFDM demodulator |
3 | 3 | ||
4 | Copyright (C) 2001 Holger Waechtler for Convergence Integrated Media GmbH | 4 | Copyright (C) 2001 Holger Waechtler for Convergence Integrated Media GmbH |
5 | Marko Kohtala <marko.kohtala@luukku.com> | 5 | Marko Kohtala <marko.kohtala@luukku.com> |
6 | 6 | ||
7 | This program is free software; you can redistribute it and/or modify | 7 | This program is free software; you can redistribute it and/or modify |
8 | it under the terms of the GNU General Public License as published by | 8 | it under the terms of the GNU General Public License as published by |
@@ -433,7 +433,7 @@ static int l64781_init(struct dvb_frontend* fe) | |||
433 | { | 433 | { |
434 | struct l64781_state* state = fe->demodulator_priv; | 434 | struct l64781_state* state = fe->demodulator_priv; |
435 | 435 | ||
436 | reset_and_configure (state); | 436 | reset_and_configure (state); |
437 | 437 | ||
438 | /* Power up */ | 438 | /* Power up */ |
439 | l64781_writereg (state, 0x3e, 0xa5); | 439 | l64781_writereg (state, 0x3e, 0xa5); |
@@ -456,9 +456,9 @@ static int l64781_init(struct dvb_frontend* fe) | |||
456 | l64781_writereg (state, 0x0d, 0x8c); | 456 | l64781_writereg (state, 0x0d, 0x8c); |
457 | 457 | ||
458 | /* With ppm=8000, it seems the DTR_SENSITIVITY will result in | 458 | /* With ppm=8000, it seems the DTR_SENSITIVITY will result in |
459 | value of 2 with all possible bandwidths and guard | 459 | value of 2 with all possible bandwidths and guard |
460 | intervals, which is the initial value anyway. */ | 460 | intervals, which is the initial value anyway. */ |
461 | /*l64781_writereg (state, 0x19, 0x92);*/ | 461 | /*l64781_writereg (state, 0x19, 0x92);*/ |
462 | 462 | ||
463 | /* Everything is two's complement, soft bit and CSI_OUT too */ | 463 | /* Everything is two's complement, soft bit and CSI_OUT too */ |
464 | l64781_writereg (state, 0x1e, 0x09); | 464 | l64781_writereg (state, 0x1e, 0x09); |
@@ -477,10 +477,10 @@ static int l64781_init(struct dvb_frontend* fe) | |||
477 | static int l64781_get_tune_settings(struct dvb_frontend* fe, | 477 | static int l64781_get_tune_settings(struct dvb_frontend* fe, |
478 | struct dvb_frontend_tune_settings* fesettings) | 478 | struct dvb_frontend_tune_settings* fesettings) |
479 | { | 479 | { |
480 | fesettings->min_delay_ms = 4000; | 480 | fesettings->min_delay_ms = 4000; |
481 | fesettings->step_size = 0; | 481 | fesettings->step_size = 0; |
482 | fesettings->max_drift = 0; | 482 | fesettings->max_drift = 0; |
483 | return 0; | 483 | return 0; |
484 | } | 484 | } |
485 | 485 | ||
486 | static void l64781_release(struct dvb_frontend* fe) | 486 | static void l64781_release(struct dvb_frontend* fe) |
@@ -522,7 +522,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config, | |||
522 | 522 | ||
523 | /* The chip always responds to reads */ | 523 | /* The chip always responds to reads */ |
524 | if (i2c_transfer(state->i2c, msg, 2) != 2) { | 524 | if (i2c_transfer(state->i2c, msg, 2) != 2) { |
525 | dprintk("No response to read on I2C bus\n"); | 525 | dprintk("No response to read on I2C bus\n"); |
526 | goto error; | 526 | goto error; |
527 | } | 527 | } |
528 | 528 | ||
@@ -531,7 +531,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config, | |||
531 | 531 | ||
532 | /* Reading the POWER_DOWN register always returns 0 */ | 532 | /* Reading the POWER_DOWN register always returns 0 */ |
533 | if (reg0x3e != 0) { | 533 | if (reg0x3e != 0) { |
534 | dprintk("Device doesn't look like L64781\n"); | 534 | dprintk("Device doesn't look like L64781\n"); |
535 | goto error; | 535 | goto error; |
536 | } | 536 | } |
537 | 537 | ||
@@ -540,7 +540,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config, | |||
540 | 540 | ||
541 | /* Responds to all reads with 0 */ | 541 | /* Responds to all reads with 0 */ |
542 | if (l64781_readreg(state, 0x1a) != 0) { | 542 | if (l64781_readreg(state, 0x1a) != 0) { |
543 | dprintk("Read 1 returned unexpcted value\n"); | 543 | dprintk("Read 1 returned unexpcted value\n"); |
544 | goto error; | 544 | goto error; |
545 | } | 545 | } |
546 | 546 | ||
@@ -549,7 +549,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config, | |||
549 | 549 | ||
550 | /* Responds with register default value */ | 550 | /* Responds with register default value */ |
551 | if (l64781_readreg(state, 0x1a) != 0xa1) { | 551 | if (l64781_readreg(state, 0x1a) != 0xa1) { |
552 | dprintk("Read 2 returned unexpcted value\n"); | 552 | dprintk("Read 2 returned unexpcted value\n"); |
553 | goto error; | 553 | goto error; |
554 | } | 554 | } |
555 | 555 | ||
diff --git a/drivers/media/dvb/frontends/l64781.h b/drivers/media/dvb/frontends/l64781.h index 7e30fb0fdfa..947f65f8746 100644 --- a/drivers/media/dvb/frontends/l64781.h +++ b/drivers/media/dvb/frontends/l64781.h | |||
@@ -2,7 +2,7 @@ | |||
2 | driver for LSI L64781 COFDM demodulator | 2 | driver for LSI L64781 COFDM demodulator |
3 | 3 | ||
4 | Copyright (C) 2001 Holger Waechtler for Convergence Integrated Media GmbH | 4 | Copyright (C) 2001 Holger Waechtler for Convergence Integrated Media GmbH |
5 | Marko Kohtala <marko.kohtala@luukku.com> | 5 | Marko Kohtala <marko.kohtala@luukku.com> |
6 | 6 | ||
7 | This program is free software; you can redistribute it and/or modify | 7 | This program is free software; you can redistribute it and/or modify |
8 | it under the terms of the GNU General Public License as published by | 8 | it under the terms of the GNU General Public License as published by |
diff --git a/drivers/media/dvb/frontends/lgdt330x.c b/drivers/media/dvb/frontends/lgdt330x.c index 6a33f5a19a8..cb5301865d0 100644 --- a/drivers/media/dvb/frontends/lgdt330x.c +++ b/drivers/media/dvb/frontends/lgdt330x.c | |||
@@ -301,10 +301,10 @@ static int lgdt330x_set_parameters(struct dvb_frontend* fe, | |||
301 | static u8 lgdt3303_8vsb_44_data[] = { | 301 | static u8 lgdt3303_8vsb_44_data[] = { |
302 | 0x04, 0x00, | 302 | 0x04, 0x00, |
303 | 0x0d, 0x40, | 303 | 0x0d, 0x40, |
304 | 0x0e, 0x87, | 304 | 0x0e, 0x87, |
305 | 0x0f, 0x8e, | 305 | 0x0f, 0x8e, |
306 | 0x10, 0x01, | 306 | 0x10, 0x01, |
307 | 0x47, 0x8b }; | 307 | 0x47, 0x8b }; |
308 | 308 | ||
309 | /* | 309 | /* |
310 | * Array of byte pairs <address, value> | 310 | * Array of byte pairs <address, value> |
diff --git a/drivers/media/dvb/frontends/mt312.c b/drivers/media/dvb/frontends/mt312.c index 9c67f406d58..8d672283c93 100644 --- a/drivers/media/dvb/frontends/mt312.c +++ b/drivers/media/dvb/frontends/mt312.c | |||
@@ -554,7 +554,7 @@ static int mt312_set_frontend(struct dvb_frontend* fe, | |||
554 | if ((ret = mt312_write(state, SYM_RATE_H, buf, sizeof(buf))) < 0) | 554 | if ((ret = mt312_write(state, SYM_RATE_H, buf, sizeof(buf))) < 0) |
555 | return ret; | 555 | return ret; |
556 | 556 | ||
557 | mt312_reset(state, 0); | 557 | mt312_reset(state, 0); |
558 | 558 | ||
559 | return 0; | 559 | return 0; |
560 | } | 560 | } |
@@ -695,7 +695,7 @@ static struct dvb_frontend_ops vp310_mt312_ops = { | |||
695 | FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | | 695 | FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | |
696 | FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | | 696 | FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | |
697 | FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_MUTE_TS | | 697 | FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_MUTE_TS | |
698 | FE_CAN_RECOVER | 698 | FE_CAN_RECOVER |
699 | }, | 699 | }, |
700 | 700 | ||
701 | .release = mt312_release, | 701 | .release = mt312_release, |
diff --git a/drivers/media/dvb/frontends/nxt2002.c b/drivers/media/dvb/frontends/nxt2002.c index 30786b1911b..52c416043a6 100644 --- a/drivers/media/dvb/frontends/nxt2002.c +++ b/drivers/media/dvb/frontends/nxt2002.c | |||
@@ -527,7 +527,7 @@ static int nxt2002_read_snr(struct dvb_frontend* fe, u16* snr) | |||
527 | else | 527 | else |
528 | snrdb = 1000*0 + ( 1000*(12-0) * ( temp2 - 0 ) / ( 0x7C00 - 0 ) ); | 528 | snrdb = 1000*0 + ( 1000*(12-0) * ( temp2 - 0 ) / ( 0x7C00 - 0 ) ); |
529 | 529 | ||
530 | /* the value reported back from the frontend will be FFFF=32db 0000=0db */ | 530 | /* the value reported back from the frontend will be FFFF=32db 0000=0db */ |
531 | 531 | ||
532 | *snr = snrdb * (0xFFFF/32000); | 532 | *snr = snrdb * (0xFFFF/32000); |
533 | 533 | ||
@@ -646,7 +646,7 @@ struct dvb_frontend* nxt2002_attach(const struct nxt2002_config* config, | |||
646 | memcpy(&state->ops, &nxt2002_ops, sizeof(struct dvb_frontend_ops)); | 646 | memcpy(&state->ops, &nxt2002_ops, sizeof(struct dvb_frontend_ops)); |
647 | state->initialised = 0; | 647 | state->initialised = 0; |
648 | 648 | ||
649 | /* Check the first 5 registers to ensure this a revision we can handle */ | 649 | /* Check the first 5 registers to ensure this a revision we can handle */ |
650 | 650 | ||
651 | i2c_readbytes(state, 0x00, buf, 5); | 651 | i2c_readbytes(state, 0x00, buf, 5); |
652 | if (buf[0] != 0x04) goto error; /* device id */ | 652 | if (buf[0] != 0x04) goto error; /* device id */ |
@@ -672,7 +672,7 @@ static struct dvb_frontend_ops nxt2002_ops = { | |||
672 | .type = FE_ATSC, | 672 | .type = FE_ATSC, |
673 | .frequency_min = 54000000, | 673 | .frequency_min = 54000000, |
674 | .frequency_max = 860000000, | 674 | .frequency_max = 860000000, |
675 | /* stepsize is just a guess */ | 675 | /* stepsize is just a guess */ |
676 | .frequency_stepsize = 166666, | 676 | .frequency_stepsize = 166666, |
677 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | | 677 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | |
678 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | | 678 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | |
diff --git a/drivers/media/dvb/frontends/nxt200x.c b/drivers/media/dvb/frontends/nxt200x.c index bad0933eb71..aeafef46e3e 100644 --- a/drivers/media/dvb/frontends/nxt200x.c +++ b/drivers/media/dvb/frontends/nxt200x.c | |||
@@ -44,6 +44,8 @@ | |||
44 | #include <linux/init.h> | 44 | #include <linux/init.h> |
45 | #include <linux/module.h> | 45 | #include <linux/module.h> |
46 | #include <linux/moduleparam.h> | 46 | #include <linux/moduleparam.h> |
47 | #include <linux/slab.h> | ||
48 | #include <linux/string.h> | ||
47 | 49 | ||
48 | #include "dvb_frontend.h" | 50 | #include "dvb_frontend.h" |
49 | #include "dvb-pll.h" | 51 | #include "dvb-pll.h" |
@@ -337,7 +339,7 @@ static int nxt200x_writetuner (struct nxt200x_state* state, u8* data) | |||
337 | switch (state->demod_chip) { | 339 | switch (state->demod_chip) { |
338 | case NXT2004: | 340 | case NXT2004: |
339 | if (i2c_writebytes(state, state->config->pll_address, data, 4)) | 341 | if (i2c_writebytes(state, state->config->pll_address, data, 4)) |
340 | printk(KERN_WARNING "nxt200x: error writing to tuner\n"); | 342 | printk(KERN_WARNING "nxt200x: error writing to tuner\n"); |
341 | /* wait until we have a lock */ | 343 | /* wait until we have a lock */ |
342 | while (count < 20) { | 344 | while (count < 20) { |
343 | i2c_readbytes(state, state->config->pll_address, &buf, 1); | 345 | i2c_readbytes(state, state->config->pll_address, &buf, 1); |
@@ -495,7 +497,7 @@ static int nxt2004_load_firmware (struct dvb_frontend* fe, const struct firmware | |||
495 | 497 | ||
496 | /* calculate firmware CRC */ | 498 | /* calculate firmware CRC */ |
497 | for (position = 0; position < fw->size; position++) { | 499 | for (position = 0; position < fw->size; position++) { |
498 | crc = nxt200x_crc(crc, fw->data[position]); | 500 | crc = nxt200x_crc(crc, fw->data[position]); |
499 | } | 501 | } |
500 | 502 | ||
501 | buf[0] = rambase >> 8; | 503 | buf[0] = rambase >> 8; |
diff --git a/drivers/media/dvb/frontends/nxt6000.c b/drivers/media/dvb/frontends/nxt6000.c index 88a57b79111..a458a3bfff7 100644 --- a/drivers/media/dvb/frontends/nxt6000.c +++ b/drivers/media/dvb/frontends/nxt6000.c | |||
@@ -574,11 +574,11 @@ static struct dvb_frontend_ops nxt6000_ops = { | |||
574 | .symbol_rate_max = 9360000, /* FIXME */ | 574 | .symbol_rate_max = 9360000, /* FIXME */ |
575 | .symbol_rate_tolerance = 4000, | 575 | .symbol_rate_tolerance = 4000, |
576 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | | 576 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | |
577 | FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | | 577 | FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | |
578 | FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO | | 578 | FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO | |
579 | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO | | 579 | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO | |
580 | FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO | | 580 | FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO | |
581 | FE_CAN_HIERARCHY_AUTO, | 581 | FE_CAN_HIERARCHY_AUTO, |
582 | }, | 582 | }, |
583 | 583 | ||
584 | .release = nxt6000_release, | 584 | .release = nxt6000_release, |
diff --git a/drivers/media/dvb/frontends/or51132.c b/drivers/media/dvb/frontends/or51132.c index 78bded861d0..80e0f28127b 100644 --- a/drivers/media/dvb/frontends/or51132.c +++ b/drivers/media/dvb/frontends/or51132.c | |||
@@ -503,7 +503,7 @@ static int or51132_read_signal_strength(struct dvb_frontend* fe, u16* strength) | |||
503 | rcvr_stat = rec_buf[1]; | 503 | rcvr_stat = rec_buf[1]; |
504 | usK = (rcvr_stat & 0x10) ? 3 : 0; | 504 | usK = (rcvr_stat & 0x10) ? 3 : 0; |
505 | 505 | ||
506 | /* The value reported back from the frontend will be FFFF=100% 0000=0% */ | 506 | /* The value reported back from the frontend will be FFFF=100% 0000=0% */ |
507 | signal_strength = (((8952 - i20Log10(snr_equ) - usK*100)/3+5)*65535)/1000; | 507 | signal_strength = (((8952 - i20Log10(snr_equ) - usK*100)/3+5)*65535)/1000; |
508 | if (signal_strength > 0xffff) | 508 | if (signal_strength > 0xffff) |
509 | *strength = 0xffff; | 509 | *strength = 0xffff; |
diff --git a/drivers/media/dvb/frontends/s5h1420.c b/drivers/media/dvb/frontends/s5h1420.c index f265418e326..18715091aed 100644 --- a/drivers/media/dvb/frontends/s5h1420.c +++ b/drivers/media/dvb/frontends/s5h1420.c | |||
@@ -494,7 +494,7 @@ static int s5h1420_getfreqoffset(struct s5h1420_state* state) | |||
494 | } | 494 | } |
495 | 495 | ||
496 | static void s5h1420_setfec_inversion(struct s5h1420_state* state, | 496 | static void s5h1420_setfec_inversion(struct s5h1420_state* state, |
497 | struct dvb_frontend_parameters *p) | 497 | struct dvb_frontend_parameters *p) |
498 | { | 498 | { |
499 | u8 inversion = 0; | 499 | u8 inversion = 0; |
500 | 500 | ||
@@ -521,8 +521,8 @@ static void s5h1420_setfec_inversion(struct s5h1420_state* state, | |||
521 | 521 | ||
522 | case FEC_3_4: | 522 | case FEC_3_4: |
523 | s5h1420_writereg(state, 0x30, 0x04); | 523 | s5h1420_writereg(state, 0x30, 0x04); |
524 | s5h1420_writereg(state, 0x31, 0x12 | inversion); | 524 | s5h1420_writereg(state, 0x31, 0x12 | inversion); |
525 | break; | 525 | break; |
526 | 526 | ||
527 | case FEC_5_6: | 527 | case FEC_5_6: |
528 | s5h1420_writereg(state, 0x30, 0x08); | 528 | s5h1420_writereg(state, 0x30, 0x08); |
diff --git a/drivers/media/dvb/frontends/s5h1420.h b/drivers/media/dvb/frontends/s5h1420.h index 872028ddf2a..73296f13c32 100644 --- a/drivers/media/dvb/frontends/s5h1420.h +++ b/drivers/media/dvb/frontends/s5h1420.h | |||
@@ -39,6 +39,6 @@ struct s5h1420_config | |||
39 | }; | 39 | }; |
40 | 40 | ||
41 | extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config, | 41 | extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config, |
42 | struct i2c_adapter* i2c); | 42 | struct i2c_adapter* i2c); |
43 | 43 | ||
44 | #endif // S5H1420_H | 44 | #endif // S5H1420_H |
diff --git a/drivers/media/dvb/frontends/sp8870.c b/drivers/media/dvb/frontends/sp8870.c index 1c6b2e9264b..fc06cd6b46c 100644 --- a/drivers/media/dvb/frontends/sp8870.c +++ b/drivers/media/dvb/frontends/sp8870.c | |||
@@ -67,16 +67,16 @@ static int debug; | |||
67 | 67 | ||
68 | static int sp8870_writereg (struct sp8870_state* state, u16 reg, u16 data) | 68 | static int sp8870_writereg (struct sp8870_state* state, u16 reg, u16 data) |
69 | { | 69 | { |
70 | u8 buf [] = { reg >> 8, reg & 0xff, data >> 8, data & 0xff }; | 70 | u8 buf [] = { reg >> 8, reg & 0xff, data >> 8, data & 0xff }; |
71 | struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 4 }; | 71 | struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 4 }; |
72 | int err; | 72 | int err; |
73 | 73 | ||
74 | if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { | 74 | if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { |
75 | dprintk ("%s: writereg error (err == %i, reg == 0x%02x, data == 0x%02x)\n", __FUNCTION__, err, reg, data); | 75 | dprintk ("%s: writereg error (err == %i, reg == 0x%02x, data == 0x%02x)\n", __FUNCTION__, err, reg, data); |
76 | return -EREMOTEIO; | 76 | return -EREMOTEIO; |
77 | } | 77 | } |
78 | 78 | ||
79 | return 0; | 79 | return 0; |
80 | } | 80 | } |
81 | 81 | ||
82 | static int sp8870_readreg (struct sp8870_state* state, u16 reg) | 82 | static int sp8870_readreg (struct sp8870_state* state, u16 reg) |
@@ -305,7 +305,7 @@ static int sp8870_set_frontend_parameters (struct dvb_frontend* fe, | |||
305 | static int sp8870_init (struct dvb_frontend* fe) | 305 | static int sp8870_init (struct dvb_frontend* fe) |
306 | { | 306 | { |
307 | struct sp8870_state* state = fe->demodulator_priv; | 307 | struct sp8870_state* state = fe->demodulator_priv; |
308 | const struct firmware *fw = NULL; | 308 | const struct firmware *fw = NULL; |
309 | 309 | ||
310 | sp8870_wake_up(state); | 310 | sp8870_wake_up(state); |
311 | if (state->initialised) return 0; | 311 | if (state->initialised) return 0; |
@@ -534,10 +534,10 @@ static int sp8870_sleep(struct dvb_frontend* fe) | |||
534 | 534 | ||
535 | static int sp8870_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) | 535 | static int sp8870_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) |
536 | { | 536 | { |
537 | fesettings->min_delay_ms = 350; | 537 | fesettings->min_delay_ms = 350; |
538 | fesettings->step_size = 0; | 538 | fesettings->step_size = 0; |
539 | fesettings->max_drift = 0; | 539 | fesettings->max_drift = 0; |
540 | return 0; | 540 | return 0; |
541 | } | 541 | } |
542 | 542 | ||
543 | static void sp8870_release(struct dvb_frontend* fe) | 543 | static void sp8870_release(struct dvb_frontend* fe) |
diff --git a/drivers/media/dvb/frontends/sp887x.c b/drivers/media/dvb/frontends/sp887x.c index 73384e75625..e3b66578224 100644 --- a/drivers/media/dvb/frontends/sp887x.c +++ b/drivers/media/dvb/frontends/sp887x.c | |||
@@ -80,7 +80,7 @@ static int sp887x_readreg (struct sp887x_state* state, u16 reg) | |||
80 | u8 b1 [2]; | 80 | u8 b1 [2]; |
81 | int ret; | 81 | int ret; |
82 | struct i2c_msg msg[] = {{ .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 2 }, | 82 | struct i2c_msg msg[] = {{ .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 2 }, |
83 | { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 2 }}; | 83 | { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 2 }}; |
84 | 84 | ||
85 | if ((ret = i2c_transfer(state->i2c, msg, 2)) != 2) { | 85 | if ((ret = i2c_transfer(state->i2c, msg, 2)) != 2) { |
86 | printk("%s: readreg error (ret == %i)\n", __FUNCTION__, ret); | 86 | printk("%s: readreg error (ret == %i)\n", __FUNCTION__, ret); |
@@ -498,7 +498,7 @@ static int sp887x_sleep(struct dvb_frontend* fe) | |||
498 | static int sp887x_init(struct dvb_frontend* fe) | 498 | static int sp887x_init(struct dvb_frontend* fe) |
499 | { | 499 | { |
500 | struct sp887x_state* state = fe->demodulator_priv; | 500 | struct sp887x_state* state = fe->demodulator_priv; |
501 | const struct firmware *fw = NULL; | 501 | const struct firmware *fw = NULL; |
502 | int ret; | 502 | int ret; |
503 | 503 | ||
504 | if (!state->initialised) { | 504 | if (!state->initialised) { |
@@ -528,10 +528,10 @@ static int sp887x_init(struct dvb_frontend* fe) | |||
528 | 528 | ||
529 | static int sp887x_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) | 529 | static int sp887x_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) |
530 | { | 530 | { |
531 | fesettings->min_delay_ms = 350; | 531 | fesettings->min_delay_ms = 350; |
532 | fesettings->step_size = 166666*2; | 532 | fesettings->step_size = 166666*2; |
533 | fesettings->max_drift = (166666*2)+1; | 533 | fesettings->max_drift = (166666*2)+1; |
534 | return 0; | 534 | return 0; |
535 | } | 535 | } |
536 | 536 | ||
537 | static void sp887x_release(struct dvb_frontend* fe) | 537 | static void sp887x_release(struct dvb_frontend* fe) |
@@ -581,7 +581,7 @@ static struct dvb_frontend_ops sp887x_ops = { | |||
581 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | | 581 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | |
582 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | | 582 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | |
583 | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | | 583 | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | |
584 | FE_CAN_RECOVER | 584 | FE_CAN_RECOVER |
585 | }, | 585 | }, |
586 | 586 | ||
587 | .release = sp887x_release, | 587 | .release = sp887x_release, |
diff --git a/drivers/media/dvb/frontends/stv0299.c b/drivers/media/dvb/frontends/stv0299.c index 29c48665e13..177d71d56b6 100644 --- a/drivers/media/dvb/frontends/stv0299.c +++ b/drivers/media/dvb/frontends/stv0299.c | |||
@@ -95,7 +95,7 @@ static int stv0299_writeregI (struct stv0299_state* state, u8 reg, u8 data) | |||
95 | 95 | ||
96 | int stv0299_writereg (struct dvb_frontend* fe, u8 reg, u8 data) | 96 | int stv0299_writereg (struct dvb_frontend* fe, u8 reg, u8 data) |
97 | { | 97 | { |
98 | struct stv0299_state* state = fe->demodulator_priv; | 98 | struct stv0299_state* state = fe->demodulator_priv; |
99 | 99 | ||
100 | return stv0299_writeregI(state, reg, data); | 100 | return stv0299_writeregI(state, reg, data); |
101 | } | 101 | } |
@@ -220,7 +220,7 @@ static int stv0299_wait_diseqc_idle (struct stv0299_state* state, int timeout) | |||
220 | 220 | ||
221 | static int stv0299_set_symbolrate (struct dvb_frontend* fe, u32 srate) | 221 | static int stv0299_set_symbolrate (struct dvb_frontend* fe, u32 srate) |
222 | { | 222 | { |
223 | struct stv0299_state* state = fe->demodulator_priv; | 223 | struct stv0299_state* state = fe->demodulator_priv; |
224 | u64 big = srate; | 224 | u64 big = srate; |
225 | u32 ratio; | 225 | u32 ratio; |
226 | 226 | ||
@@ -271,7 +271,7 @@ static int stv0299_get_symbolrate (struct stv0299_state* state) | |||
271 | static int stv0299_send_diseqc_msg (struct dvb_frontend* fe, | 271 | static int stv0299_send_diseqc_msg (struct dvb_frontend* fe, |
272 | struct dvb_diseqc_master_cmd *m) | 272 | struct dvb_diseqc_master_cmd *m) |
273 | { | 273 | { |
274 | struct stv0299_state* state = fe->demodulator_priv; | 274 | struct stv0299_state* state = fe->demodulator_priv; |
275 | u8 val; | 275 | u8 val; |
276 | int i; | 276 | int i; |
277 | 277 | ||
@@ -301,7 +301,7 @@ static int stv0299_send_diseqc_msg (struct dvb_frontend* fe, | |||
301 | 301 | ||
302 | static int stv0299_send_diseqc_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t burst) | 302 | static int stv0299_send_diseqc_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t burst) |
303 | { | 303 | { |
304 | struct stv0299_state* state = fe->demodulator_priv; | 304 | struct stv0299_state* state = fe->demodulator_priv; |
305 | u8 val; | 305 | u8 val; |
306 | 306 | ||
307 | dprintk ("%s\n", __FUNCTION__); | 307 | dprintk ("%s\n", __FUNCTION__); |
@@ -328,7 +328,7 @@ static int stv0299_send_diseqc_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t | |||
328 | 328 | ||
329 | static int stv0299_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone) | 329 | static int stv0299_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone) |
330 | { | 330 | { |
331 | struct stv0299_state* state = fe->demodulator_priv; | 331 | struct stv0299_state* state = fe->demodulator_priv; |
332 | u8 val; | 332 | u8 val; |
333 | 333 | ||
334 | if (stv0299_wait_diseqc_idle (state, 100) < 0) | 334 | if (stv0299_wait_diseqc_idle (state, 100) < 0) |
@@ -350,7 +350,7 @@ static int stv0299_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone) | |||
350 | 350 | ||
351 | static int stv0299_set_voltage (struct dvb_frontend* fe, fe_sec_voltage_t voltage) | 351 | static int stv0299_set_voltage (struct dvb_frontend* fe, fe_sec_voltage_t voltage) |
352 | { | 352 | { |
353 | struct stv0299_state* state = fe->demodulator_priv; | 353 | struct stv0299_state* state = fe->demodulator_priv; |
354 | u8 reg0x08; | 354 | u8 reg0x08; |
355 | u8 reg0x0c; | 355 | u8 reg0x0c; |
356 | 356 | ||
@@ -442,7 +442,7 @@ static int stv0299_send_legacy_dish_cmd (struct dvb_frontend* fe, u32 cmd) | |||
442 | 442 | ||
443 | static int stv0299_init (struct dvb_frontend* fe) | 443 | static int stv0299_init (struct dvb_frontend* fe) |
444 | { | 444 | { |
445 | struct stv0299_state* state = fe->demodulator_priv; | 445 | struct stv0299_state* state = fe->demodulator_priv; |
446 | int i; | 446 | int i; |
447 | 447 | ||
448 | dprintk("stv0299: init chip\n"); | 448 | dprintk("stv0299: init chip\n"); |
@@ -461,7 +461,7 @@ static int stv0299_init (struct dvb_frontend* fe) | |||
461 | 461 | ||
462 | static int stv0299_read_status(struct dvb_frontend* fe, fe_status_t* status) | 462 | static int stv0299_read_status(struct dvb_frontend* fe, fe_status_t* status) |
463 | { | 463 | { |
464 | struct stv0299_state* state = fe->demodulator_priv; | 464 | struct stv0299_state* state = fe->demodulator_priv; |
465 | 465 | ||
466 | u8 signal = 0xff - stv0299_readreg (state, 0x18); | 466 | u8 signal = 0xff - stv0299_readreg (state, 0x18); |
467 | u8 sync = stv0299_readreg (state, 0x1b); | 467 | u8 sync = stv0299_readreg (state, 0x1b); |
@@ -489,7 +489,7 @@ static int stv0299_read_status(struct dvb_frontend* fe, fe_status_t* status) | |||
489 | 489 | ||
490 | static int stv0299_read_ber(struct dvb_frontend* fe, u32* ber) | 490 | static int stv0299_read_ber(struct dvb_frontend* fe, u32* ber) |
491 | { | 491 | { |
492 | struct stv0299_state* state = fe->demodulator_priv; | 492 | struct stv0299_state* state = fe->demodulator_priv; |
493 | 493 | ||
494 | if (state->errmode != STATUS_BER) return 0; | 494 | if (state->errmode != STATUS_BER) return 0; |
495 | *ber = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e); | 495 | *ber = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e); |
@@ -499,7 +499,7 @@ static int stv0299_read_ber(struct dvb_frontend* fe, u32* ber) | |||
499 | 499 | ||
500 | static int stv0299_read_signal_strength(struct dvb_frontend* fe, u16* strength) | 500 | static int stv0299_read_signal_strength(struct dvb_frontend* fe, u16* strength) |
501 | { | 501 | { |
502 | struct stv0299_state* state = fe->demodulator_priv; | 502 | struct stv0299_state* state = fe->demodulator_priv; |
503 | 503 | ||
504 | s32 signal = 0xffff - ((stv0299_readreg (state, 0x18) << 8) | 504 | s32 signal = 0xffff - ((stv0299_readreg (state, 0x18) << 8) |
505 | | stv0299_readreg (state, 0x19)); | 505 | | stv0299_readreg (state, 0x19)); |
@@ -516,7 +516,7 @@ static int stv0299_read_signal_strength(struct dvb_frontend* fe, u16* strength) | |||
516 | 516 | ||
517 | static int stv0299_read_snr(struct dvb_frontend* fe, u16* snr) | 517 | static int stv0299_read_snr(struct dvb_frontend* fe, u16* snr) |
518 | { | 518 | { |
519 | struct stv0299_state* state = fe->demodulator_priv; | 519 | struct stv0299_state* state = fe->demodulator_priv; |
520 | 520 | ||
521 | s32 xsnr = 0xffff - ((stv0299_readreg (state, 0x24) << 8) | 521 | s32 xsnr = 0xffff - ((stv0299_readreg (state, 0x24) << 8) |
522 | | stv0299_readreg (state, 0x25)); | 522 | | stv0299_readreg (state, 0x25)); |
@@ -528,7 +528,7 @@ static int stv0299_read_snr(struct dvb_frontend* fe, u16* snr) | |||
528 | 528 | ||
529 | static int stv0299_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) | 529 | static int stv0299_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) |
530 | { | 530 | { |
531 | struct stv0299_state* state = fe->demodulator_priv; | 531 | struct stv0299_state* state = fe->demodulator_priv; |
532 | 532 | ||
533 | if (state->errmode != STATUS_UCBLOCKS) *ucblocks = 0; | 533 | if (state->errmode != STATUS_UCBLOCKS) *ucblocks = 0; |
534 | else *ucblocks = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e); | 534 | else *ucblocks = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e); |
@@ -538,7 +538,7 @@ static int stv0299_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) | |||
538 | 538 | ||
539 | static int stv0299_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p) | 539 | static int stv0299_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p) |
540 | { | 540 | { |
541 | struct stv0299_state* state = fe->demodulator_priv; | 541 | struct stv0299_state* state = fe->demodulator_priv; |
542 | int invval = 0; | 542 | int invval = 0; |
543 | 543 | ||
544 | dprintk ("%s : FE_SET_FRONTEND\n", __FUNCTION__); | 544 | dprintk ("%s : FE_SET_FRONTEND\n", __FUNCTION__); |
@@ -571,7 +571,7 @@ static int stv0299_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_par | |||
571 | 571 | ||
572 | static int stv0299_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p) | 572 | static int stv0299_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p) |
573 | { | 573 | { |
574 | struct stv0299_state* state = fe->demodulator_priv; | 574 | struct stv0299_state* state = fe->demodulator_priv; |
575 | s32 derot_freq; | 575 | s32 derot_freq; |
576 | int invval; | 576 | int invval; |
577 | 577 | ||
@@ -596,7 +596,7 @@ static int stv0299_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_par | |||
596 | 596 | ||
597 | static int stv0299_sleep(struct dvb_frontend* fe) | 597 | static int stv0299_sleep(struct dvb_frontend* fe) |
598 | { | 598 | { |
599 | struct stv0299_state* state = fe->demodulator_priv; | 599 | struct stv0299_state* state = fe->demodulator_priv; |
600 | 600 | ||
601 | stv0299_writeregI(state, 0x02, 0x80); | 601 | stv0299_writeregI(state, 0x02, 0x80); |
602 | state->initialised = 0; | 602 | state->initialised = 0; |
@@ -606,7 +606,7 @@ static int stv0299_sleep(struct dvb_frontend* fe) | |||
606 | 606 | ||
607 | static int stv0299_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) | 607 | static int stv0299_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) |
608 | { | 608 | { |
609 | struct stv0299_state* state = fe->demodulator_priv; | 609 | struct stv0299_state* state = fe->demodulator_priv; |
610 | 610 | ||
611 | fesettings->min_delay_ms = state->config->min_delay_ms; | 611 | fesettings->min_delay_ms = state->config->min_delay_ms; |
612 | if (fesettings->parameters.u.qpsk.symbol_rate < 10000000) { | 612 | if (fesettings->parameters.u.qpsk.symbol_rate < 10000000) { |
@@ -658,7 +658,7 @@ struct dvb_frontend* stv0299_attach(const struct stv0299_config* config, | |||
658 | 658 | ||
659 | /* create dvb_frontend */ | 659 | /* create dvb_frontend */ |
660 | state->frontend.ops = &state->ops; | 660 | state->frontend.ops = &state->ops; |
661 | state->frontend.demodulator_priv = state; | 661 | state->frontend.demodulator_priv = state; |
662 | return &state->frontend; | 662 | return &state->frontend; |
663 | 663 | ||
664 | error: | 664 | error: |
@@ -714,7 +714,7 @@ MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); | |||
714 | 714 | ||
715 | MODULE_DESCRIPTION("ST STV0299 DVB Demodulator driver"); | 715 | MODULE_DESCRIPTION("ST STV0299 DVB Demodulator driver"); |
716 | MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Peter Schildmann, Felix Domke, " | 716 | MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Peter Schildmann, Felix Domke, " |
717 | "Andreas Oberritter, Andrew de Quincey, Kenneth Aafløy"); | 717 | "Andreas Oberritter, Andrew de Quincey, Kenneth Aafløy"); |
718 | MODULE_LICENSE("GPL"); | 718 | MODULE_LICENSE("GPL"); |
719 | 719 | ||
720 | EXPORT_SYMBOL(stv0299_writereg); | 720 | EXPORT_SYMBOL(stv0299_writereg); |
diff --git a/drivers/media/dvb/frontends/tda10021.c b/drivers/media/dvb/frontends/tda10021.c index eaf130e666d..425cd19136f 100644 --- a/drivers/media/dvb/frontends/tda10021.c +++ b/drivers/media/dvb/frontends/tda10021.c | |||
@@ -1,10 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | TDA10021 - Single Chip Cable Channel Receiver driver module | 2 | TDA10021 - Single Chip Cable Channel Receiver driver module |
3 | used on the the Siemens DVB-C cards | 3 | used on the the Siemens DVB-C cards |
4 | 4 | ||
5 | Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> | 5 | Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> |
6 | Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> | 6 | Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> |
7 | Support for TDA10021 | 7 | Support for TDA10021 |
8 | 8 | ||
9 | This program is free software; you can redistribute it and/or modify | 9 | This program is free software; you can redistribute it and/or modify |
10 | it under the terms of the GNU General Public License as published by | 10 | it under the terms of the GNU General Public License as published by |
@@ -76,9 +76,9 @@ static u8 tda10021_inittab[0x40]= | |||
76 | 76 | ||
77 | static int tda10021_writereg (struct tda10021_state* state, u8 reg, u8 data) | 77 | static int tda10021_writereg (struct tda10021_state* state, u8 reg, u8 data) |
78 | { | 78 | { |
79 | u8 buf[] = { reg, data }; | 79 | u8 buf[] = { reg, data }; |
80 | struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; | 80 | struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; |
81 | int ret; | 81 | int ret; |
82 | 82 | ||
83 | ret = i2c_transfer (state->i2c, &msg, 1); | 83 | ret = i2c_transfer (state->i2c, &msg, 1); |
84 | if (ret != 1) | 84 | if (ret != 1) |
@@ -95,7 +95,7 @@ static u8 tda10021_readreg (struct tda10021_state* state, u8 reg) | |||
95 | u8 b0 [] = { reg }; | 95 | u8 b0 [] = { reg }; |
96 | u8 b1 [] = { 0 }; | 96 | u8 b1 [] = { 0 }; |
97 | struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 }, | 97 | struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 }, |
98 | { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; | 98 | { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; |
99 | int ret; | 99 | int ret; |
100 | 100 | ||
101 | ret = i2c_transfer (state->i2c, msg, 2); | 101 | ret = i2c_transfer (state->i2c, msg, 2); |
diff --git a/drivers/media/dvb/frontends/tda10021.h b/drivers/media/dvb/frontends/tda10021.h index 7d6a51ce291..53be939e8c5 100644 --- a/drivers/media/dvb/frontends/tda10021.h +++ b/drivers/media/dvb/frontends/tda10021.h | |||
@@ -1,10 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | TDA10021 - Single Chip Cable Channel Receiver driver module | 2 | TDA10021 - Single Chip Cable Channel Receiver driver module |
3 | used on the the Siemens DVB-C cards | 3 | used on the the Siemens DVB-C cards |
4 | 4 | ||
5 | Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> | 5 | Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> |
6 | Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> | 6 | Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> |
7 | Support for TDA10021 | 7 | Support for TDA10021 |
8 | 8 | ||
9 | This program is free software; you can redistribute it and/or modify | 9 | This program is free software; you can redistribute it and/or modify |
10 | it under the terms of the GNU General Public License as published by | 10 | it under the terms of the GNU General Public License as published by |
diff --git a/drivers/media/dvb/frontends/tda1004x.c b/drivers/media/dvb/frontends/tda1004x.c index 7968743826f..dd02aff467f 100644 --- a/drivers/media/dvb/frontends/tda1004x.c +++ b/drivers/media/dvb/frontends/tda1004x.c | |||
@@ -475,7 +475,7 @@ static int tda10046_fwupload(struct dvb_frontend* fe) | |||
475 | ret = state->config->request_firmware(fe, &fw, TDA10046_DEFAULT_FIRMWARE); | 475 | ret = state->config->request_firmware(fe, &fw, TDA10046_DEFAULT_FIRMWARE); |
476 | if (ret) { | 476 | if (ret) { |
477 | printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n"); | 477 | printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n"); |
478 | return ret; | 478 | return ret; |
479 | } | 479 | } |
480 | tda1004x_write_mask(state, TDA1004X_CONFC4, 8, 8); // going to boot from HOST | 480 | tda1004x_write_mask(state, TDA1004X_CONFC4, 8, 8); // going to boot from HOST |
481 | ret = tda1004x_do_upload(state, fw->data, fw->size, TDA10046H_CODE_CPT, TDA10046H_CODE_IN); | 481 | ret = tda1004x_do_upload(state, fw->data, fw->size, TDA10046H_CODE_CPT, TDA10046H_CODE_IN); |
diff --git a/drivers/media/dvb/frontends/tda8083.c b/drivers/media/dvb/frontends/tda8083.c index c05cf186105..91baa9cedd7 100644 --- a/drivers/media/dvb/frontends/tda8083.c +++ b/drivers/media/dvb/frontends/tda8083.c | |||
@@ -66,13 +66,13 @@ static int tda8083_writereg (struct tda8083_state* state, u8 reg, u8 data) | |||
66 | u8 buf [] = { reg, data }; | 66 | u8 buf [] = { reg, data }; |
67 | struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; | 67 | struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; |
68 | 68 | ||
69 | ret = i2c_transfer(state->i2c, &msg, 1); | 69 | ret = i2c_transfer(state->i2c, &msg, 1); |
70 | 70 | ||
71 | if (ret != 1) | 71 | if (ret != 1) |
72 | dprintk ("%s: writereg error (reg %02x, ret == %i)\n", | 72 | dprintk ("%s: writereg error (reg %02x, ret == %i)\n", |
73 | __FUNCTION__, reg, ret); | 73 | __FUNCTION__, reg, ret); |
74 | 74 | ||
75 | return (ret != 1) ? -1 : 0; | 75 | return (ret != 1) ? -1 : 0; |
76 | } | 76 | } |
77 | 77 | ||
78 | static int tda8083_readregs (struct tda8083_state* state, u8 reg1, u8 *b, u8 len) | 78 | static int tda8083_readregs (struct tda8083_state* state, u8 reg1, u8 *b, u8 len) |
@@ -87,7 +87,7 @@ static int tda8083_readregs (struct tda8083_state* state, u8 reg1, u8 *b, u8 len | |||
87 | dprintk ("%s: readreg error (reg %02x, ret == %i)\n", | 87 | dprintk ("%s: readreg error (reg %02x, ret == %i)\n", |
88 | __FUNCTION__, reg1, ret); | 88 | __FUNCTION__, reg1, ret); |
89 | 89 | ||
90 | return ret == 2 ? 0 : -1; | 90 | return ret == 2 ? 0 : -1; |
91 | } | 91 | } |
92 | 92 | ||
93 | static inline u8 tda8083_readreg (struct tda8083_state* state, u8 reg) | 93 | static inline u8 tda8083_readreg (struct tda8083_state* state, u8 reg) |
@@ -132,14 +132,14 @@ static fe_code_rate_t tda8083_get_fec (struct tda8083_state* state) | |||
132 | 132 | ||
133 | static int tda8083_set_symbolrate (struct tda8083_state* state, u32 srate) | 133 | static int tda8083_set_symbolrate (struct tda8083_state* state, u32 srate) |
134 | { | 134 | { |
135 | u32 ratio; | 135 | u32 ratio; |
136 | u32 tmp; | 136 | u32 tmp; |
137 | u8 filter; | 137 | u8 filter; |
138 | 138 | ||
139 | if (srate > 32000000) | 139 | if (srate > 32000000) |
140 | srate = 32000000; | 140 | srate = 32000000; |
141 | if (srate < 500000) | 141 | if (srate < 500000) |
142 | srate = 500000; | 142 | srate = 500000; |
143 | 143 | ||
144 | filter = 0; | 144 | filter = 0; |
145 | if (srate < 24000000) | 145 | if (srate < 24000000) |
@@ -174,7 +174,7 @@ static void tda8083_wait_diseqc_fifo (struct tda8083_state* state, int timeout) | |||
174 | unsigned long start = jiffies; | 174 | unsigned long start = jiffies; |
175 | 175 | ||
176 | while (jiffies - start < timeout && | 176 | while (jiffies - start < timeout && |
177 | !(tda8083_readreg(state, 0x02) & 0x80)) | 177 | !(tda8083_readreg(state, 0x02) & 0x80)) |
178 | { | 178 | { |
179 | msleep(50); | 179 | msleep(50); |
180 | }; | 180 | }; |
diff --git a/drivers/media/dvb/frontends/ves1820.c b/drivers/media/dvb/frontends/ves1820.c index c6d276618e8..ad8647a3c85 100644 --- a/drivers/media/dvb/frontends/ves1820.c +++ b/drivers/media/dvb/frontends/ves1820.c | |||
@@ -140,25 +140,25 @@ static int ves1820_set_symbolrate(struct ves1820_state *state, u32 symbolrate) | |||
140 | /* yeuch! */ | 140 | /* yeuch! */ |
141 | fpxin = state->config->xin * 10; | 141 | fpxin = state->config->xin * 10; |
142 | fptmp = fpxin; do_div(fptmp, 123); | 142 | fptmp = fpxin; do_div(fptmp, 123); |
143 | if (symbolrate < fptmp); | 143 | if (symbolrate < fptmp) |
144 | SFIL = 1; | 144 | SFIL = 1; |
145 | fptmp = fpxin; do_div(fptmp, 160); | 145 | fptmp = fpxin; do_div(fptmp, 160); |
146 | if (symbolrate < fptmp); | 146 | if (symbolrate < fptmp) |
147 | SFIL = 0; | 147 | SFIL = 0; |
148 | fptmp = fpxin; do_div(fptmp, 246); | 148 | fptmp = fpxin; do_div(fptmp, 246); |
149 | if (symbolrate < fptmp); | 149 | if (symbolrate < fptmp) |
150 | SFIL = 1; | 150 | SFIL = 1; |
151 | fptmp = fpxin; do_div(fptmp, 320); | 151 | fptmp = fpxin; do_div(fptmp, 320); |
152 | if (symbolrate < fptmp); | 152 | if (symbolrate < fptmp) |
153 | SFIL = 0; | 153 | SFIL = 0; |
154 | fptmp = fpxin; do_div(fptmp, 492); | 154 | fptmp = fpxin; do_div(fptmp, 492); |
155 | if (symbolrate < fptmp); | 155 | if (symbolrate < fptmp) |
156 | SFIL = 1; | 156 | SFIL = 1; |
157 | fptmp = fpxin; do_div(fptmp, 640); | 157 | fptmp = fpxin; do_div(fptmp, 640); |
158 | if (symbolrate < fptmp); | 158 | if (symbolrate < fptmp) |
159 | SFIL = 0; | 159 | SFIL = 0; |
160 | fptmp = fpxin; do_div(fptmp, 984); | 160 | fptmp = fpxin; do_div(fptmp, 984); |
161 | if (symbolrate < fptmp); | 161 | if (symbolrate < fptmp) |
162 | SFIL = 1; | 162 | SFIL = 1; |
163 | 163 | ||
164 | fin = state->config->xin >> 4; | 164 | fin = state->config->xin >> 4; |
diff --git a/drivers/media/dvb/ttpci/Kconfig b/drivers/media/dvb/ttpci/Kconfig index d8bf6587789..fa5034a9ecf 100644 --- a/drivers/media/dvb/ttpci/Kconfig +++ b/drivers/media/dvb/ttpci/Kconfig | |||
@@ -81,6 +81,7 @@ config DVB_BUDGET_CI | |||
81 | tristate "Budget cards with onboard CI connector" | 81 | tristate "Budget cards with onboard CI connector" |
82 | depends on DVB_CORE && PCI | 82 | depends on DVB_CORE && PCI |
83 | select VIDEO_SAA7146 | 83 | select VIDEO_SAA7146 |
84 | select DVB_STV0297 | ||
84 | select DVB_STV0299 | 85 | select DVB_STV0299 |
85 | select DVB_TDA1004X | 86 | select DVB_TDA1004X |
86 | help | 87 | help |
diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c index 87ea52757a2..7dae91e5863 100644 --- a/drivers/media/dvb/ttpci/av7110.c +++ b/drivers/media/dvb/ttpci/av7110.c | |||
@@ -176,6 +176,9 @@ static void init_av7110_av(struct av7110 *av7110) | |||
176 | } | 176 | } |
177 | } | 177 | } |
178 | 178 | ||
179 | if (dev->pci->subsystem_vendor == 0x13c2 && dev->pci->subsystem_device == 0x000e) | ||
180 | av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, SpdifSwitch, 1, 0); // SPDIF on | ||
181 | |||
179 | ret = av7110_set_volume(av7110, av7110->mixer.volume_left, av7110->mixer.volume_right); | 182 | ret = av7110_set_volume(av7110, av7110->mixer.volume_left, av7110->mixer.volume_right); |
180 | if (ret < 0) | 183 | if (ret < 0) |
181 | printk("dvb-ttpci:cannot set volume :%d\n",ret); | 184 | printk("dvb-ttpci:cannot set volume :%d\n",ret); |
@@ -217,10 +220,10 @@ static int arm_thread(void *data) | |||
217 | 220 | ||
218 | dprintk(4, "%p\n",av7110); | 221 | dprintk(4, "%p\n",av7110); |
219 | 222 | ||
220 | lock_kernel(); | 223 | lock_kernel(); |
221 | daemonize("arm_mon"); | 224 | daemonize("arm_mon"); |
222 | sigfillset(¤t->blocked); | 225 | sigfillset(¤t->blocked); |
223 | unlock_kernel(); | 226 | unlock_kernel(); |
224 | 227 | ||
225 | av7110->arm_thread = current; | 228 | av7110->arm_thread = current; |
226 | 229 | ||
@@ -1535,7 +1538,7 @@ static int alps_bsrv2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param | |||
1535 | buf[2] = ((div & 0x18000) >> 10) | 0x95; | 1538 | buf[2] = ((div & 0x18000) >> 10) | 0x95; |
1536 | buf[3] = (pwr << 6) | 0x30; | 1539 | buf[3] = (pwr << 6) | 0x30; |
1537 | 1540 | ||
1538 | // NOTE: since we're using a prescaler of 2, we set the | 1541 | // NOTE: since we're using a prescaler of 2, we set the |
1539 | // divisor frequency to 62.5kHz and divide by 125 above | 1542 | // divisor frequency to 62.5kHz and divide by 125 above |
1540 | 1543 | ||
1541 | if (i2c_transfer (&av7110->i2c_adap, &msg, 1) != 1) | 1544 | if (i2c_transfer (&av7110->i2c_adap, &msg, 1) != 1) |
@@ -1811,7 +1814,7 @@ static struct tda8083_config grundig_29504_451_config = { | |||
1811 | static int philips_cd1516_pll_set(struct dvb_frontend* fe, | 1814 | static int philips_cd1516_pll_set(struct dvb_frontend* fe, |
1812 | struct dvb_frontend_parameters* params) | 1815 | struct dvb_frontend_parameters* params) |
1813 | { | 1816 | { |
1814 | struct av7110* av7110 = fe->dvb->priv; | 1817 | struct av7110* av7110 = fe->dvb->priv; |
1815 | u32 div; | 1818 | u32 div; |
1816 | u32 f = params->frequency; | 1819 | u32 f = params->frequency; |
1817 | u8 data[4]; | 1820 | u8 data[4]; |
@@ -2202,7 +2205,7 @@ static u8 read_pwm(struct av7110* av7110) | |||
2202 | struct i2c_msg msg[] = { { .addr = 0x50,.flags = 0,.buf = &b,.len = 1 }, | 2205 | struct i2c_msg msg[] = { { .addr = 0x50,.flags = 0,.buf = &b,.len = 1 }, |
2203 | { .addr = 0x50,.flags = I2C_M_RD,.buf = &pwm,.len = 1} }; | 2206 | { .addr = 0x50,.flags = I2C_M_RD,.buf = &pwm,.len = 1} }; |
2204 | 2207 | ||
2205 | if ((i2c_transfer(&av7110->i2c_adap, msg, 2) != 2) || (pwm == 0xff)) | 2208 | if ((i2c_transfer(&av7110->i2c_adap, msg, 2) != 2) || (pwm == 0xff)) |
2206 | pwm = 0x48; | 2209 | pwm = 0x48; |
2207 | 2210 | ||
2208 | return pwm; | 2211 | return pwm; |
@@ -2245,7 +2248,7 @@ static int frontend_init(struct av7110 *av7110) | |||
2245 | } | 2248 | } |
2246 | 2249 | ||
2247 | // Try the grundig 29504-451 | 2250 | // Try the grundig 29504-451 |
2248 | av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap); | 2251 | av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap); |
2249 | if (av7110->fe) { | 2252 | if (av7110->fe) { |
2250 | av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd; | 2253 | av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd; |
2251 | av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst; | 2254 | av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst; |
@@ -2271,12 +2274,12 @@ static int frontend_init(struct av7110 *av7110) | |||
2271 | case 0x0001: // Hauppauge/TT Nexus-T premium rev1.X | 2274 | case 0x0001: // Hauppauge/TT Nexus-T premium rev1.X |
2272 | 2275 | ||
2273 | // ALPS TDLB7 | 2276 | // ALPS TDLB7 |
2274 | av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap); | 2277 | av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap); |
2275 | break; | 2278 | break; |
2276 | 2279 | ||
2277 | case 0x0002: // Hauppauge/TT DVB-C premium rev2.X | 2280 | case 0x0002: // Hauppauge/TT DVB-C premium rev2.X |
2278 | 2281 | ||
2279 | av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110)); | 2282 | av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110)); |
2280 | break; | 2283 | break; |
2281 | 2284 | ||
2282 | case 0x0006: /* Fujitsu-Siemens DVB-S rev 1.6 */ | 2285 | case 0x0006: /* Fujitsu-Siemens DVB-S rev 1.6 */ |
@@ -2421,9 +2424,9 @@ static int av7110_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_d | |||
2421 | 2424 | ||
2422 | dprintk(4, "dev: %p\n", dev); | 2425 | dprintk(4, "dev: %p\n", dev); |
2423 | 2426 | ||
2424 | /* Set RPS_IRQ to 1 to track rps1 activity. | 2427 | /* Set RPS_IRQ to 1 to track rps1 activity. |
2425 | * Enabling this won't send any interrupt to PC CPU. | 2428 | * Enabling this won't send any interrupt to PC CPU. |
2426 | */ | 2429 | */ |
2427 | #define RPS_IRQ 0 | 2430 | #define RPS_IRQ 0 |
2428 | 2431 | ||
2429 | if (budgetpatch == 1) { | 2432 | if (budgetpatch == 1) { |
diff --git a/drivers/media/dvb/ttpci/av7110_ca.c b/drivers/media/dvb/ttpci/av7110_ca.c index c3801e328fe..6079e8865d5 100644 --- a/drivers/media/dvb/ttpci/av7110_ca.c +++ b/drivers/media/dvb/ttpci/av7110_ca.c | |||
@@ -40,6 +40,7 @@ | |||
40 | 40 | ||
41 | #include "av7110.h" | 41 | #include "av7110.h" |
42 | #include "av7110_hw.h" | 42 | #include "av7110_hw.h" |
43 | #include "av7110_ca.h" | ||
43 | 44 | ||
44 | 45 | ||
45 | void CI_handle(struct av7110 *av7110, u8 *data, u16 len) | 46 | void CI_handle(struct av7110 *av7110, u8 *data, u16 len) |
diff --git a/drivers/media/dvb/ttpci/av7110_hw.c b/drivers/media/dvb/ttpci/av7110_hw.c index 7442f56a72e..87106e8bf35 100644 --- a/drivers/media/dvb/ttpci/av7110_hw.c +++ b/drivers/media/dvb/ttpci/av7110_hw.c | |||
@@ -1203,15 +1203,15 @@ int av7110_osd_cmd(struct av7110 *av7110, osd_cmd_t *dc) | |||
1203 | 1203 | ||
1204 | int av7110_osd_capability(struct av7110 *av7110, osd_cap_t *cap) | 1204 | int av7110_osd_capability(struct av7110 *av7110, osd_cap_t *cap) |
1205 | { | 1205 | { |
1206 | switch (cap->cmd) { | 1206 | switch (cap->cmd) { |
1207 | case OSD_CAP_MEMSIZE: | 1207 | case OSD_CAP_MEMSIZE: |
1208 | if (FW_4M_SDRAM(av7110->arm_app)) | 1208 | if (FW_4M_SDRAM(av7110->arm_app)) |
1209 | cap->val = 1000000; | 1209 | cap->val = 1000000; |
1210 | else | 1210 | else |
1211 | cap->val = 92000; | 1211 | cap->val = 92000; |
1212 | return 0; | 1212 | return 0; |
1213 | default: | 1213 | default: |
1214 | return -EINVAL; | 1214 | return -EINVAL; |
1215 | } | 1215 | } |
1216 | } | 1216 | } |
1217 | #endif /* CONFIG_DVB_AV7110_OSD */ | 1217 | #endif /* CONFIG_DVB_AV7110_OSD */ |
diff --git a/drivers/media/dvb/ttpci/av7110_hw.h b/drivers/media/dvb/ttpci/av7110_hw.h index fedd20f9815..2a5e87ba105 100644 --- a/drivers/media/dvb/ttpci/av7110_hw.h +++ b/drivers/media/dvb/ttpci/av7110_hw.h | |||
@@ -143,7 +143,8 @@ enum av7110_audio_command { | |||
143 | MainSwitch, | 143 | MainSwitch, |
144 | ADSwitch, | 144 | ADSwitch, |
145 | SendDiSEqC, | 145 | SendDiSEqC, |
146 | SetRegister | 146 | SetRegister, |
147 | SpdifSwitch | ||
147 | }; | 148 | }; |
148 | 149 | ||
149 | enum av7110_request_command { | 150 | enum av7110_request_command { |
diff --git a/drivers/media/dvb/ttpci/av7110_v4l.c b/drivers/media/dvb/ttpci/av7110_v4l.c index 6af74f78b3e..b5aea4129fa 100644 --- a/drivers/media/dvb/ttpci/av7110_v4l.c +++ b/drivers/media/dvb/ttpci/av7110_v4l.c | |||
@@ -120,8 +120,8 @@ static int ves1820_writereg(struct saa7146_dev *dev, u8 addr, u8 reg, u8 data) | |||
120 | 120 | ||
121 | static int stv0297_writereg(struct saa7146_dev *dev, u8 addr, u8 reg, u8 data) | 121 | static int stv0297_writereg(struct saa7146_dev *dev, u8 addr, u8 reg, u8 data) |
122 | { | 122 | { |
123 | u8 buf [] = { reg, data }; | 123 | u8 buf [] = { reg, data }; |
124 | struct i2c_msg msg = { .addr = addr, .flags = 0, .buf = buf, .len = 2 }; | 124 | struct i2c_msg msg = { .addr = addr, .flags = 0, .buf = buf, .len = 2 }; |
125 | 125 | ||
126 | if (1 != saa7146_i2c_transfer(dev, &msg, 1, 1)) | 126 | if (1 != saa7146_i2c_transfer(dev, &msg, 1, 1)) |
127 | return -1; | 127 | return -1; |
diff --git a/drivers/media/dvb/ttpci/budget-av.c b/drivers/media/dvb/ttpci/budget-av.c index aa75dc03a0b..9f51bae7194 100644 --- a/drivers/media/dvb/ttpci/budget-av.c +++ b/drivers/media/dvb/ttpci/budget-av.c | |||
@@ -1020,6 +1020,8 @@ MODULE_DEVICE_TABLE(pci, pci_tbl); | |||
1020 | 1020 | ||
1021 | static struct saa7146_extension budget_extension = { | 1021 | static struct saa7146_extension budget_extension = { |
1022 | .name = "budget_av", | 1022 | .name = "budget_av", |
1023 | .flags = SAA7146_I2C_SHORT_DELAY, | ||
1024 | |||
1023 | .pci_tbl = pci_tbl, | 1025 | .pci_tbl = pci_tbl, |
1024 | 1026 | ||
1025 | .module = THIS_MODULE, | 1027 | .module = THIS_MODULE, |
diff --git a/drivers/media/dvb/ttpci/budget-ci.c b/drivers/media/dvb/ttpci/budget-ci.c index 75fb92d6099..b9b3cd9c036 100644 --- a/drivers/media/dvb/ttpci/budget-ci.c +++ b/drivers/media/dvb/ttpci/budget-ci.c | |||
@@ -1166,7 +1166,7 @@ MODULE_DEVICE_TABLE(pci, pci_tbl); | |||
1166 | 1166 | ||
1167 | static struct saa7146_extension budget_extension = { | 1167 | static struct saa7146_extension budget_extension = { |
1168 | .name = "budget_ci dvb\0", | 1168 | .name = "budget_ci dvb\0", |
1169 | .flags = 0, | 1169 | .flags = SAA7146_I2C_SHORT_DELAY, |
1170 | 1170 | ||
1171 | .module = THIS_MODULE, | 1171 | .module = THIS_MODULE, |
1172 | .pci_tbl = &pci_tbl[0], | 1172 | .pci_tbl = &pci_tbl[0], |
diff --git a/drivers/media/dvb/ttpci/budget-core.c b/drivers/media/dvb/ttpci/budget-core.c index 0498a055a4c..017fcbccb8c 100644 --- a/drivers/media/dvb/ttpci/budget-core.c +++ b/drivers/media/dvb/ttpci/budget-core.c | |||
@@ -87,7 +87,7 @@ static int start_ts_capture(struct budget *budget) | |||
87 | * Pitch: 188, NumBytes3: 188, NumLines3: 1024 | 87 | * Pitch: 188, NumBytes3: 188, NumLines3: 1024 |
88 | */ | 88 | */ |
89 | 89 | ||
90 | switch(budget->card->type) { | 90 | switch(budget->card->type) { |
91 | case BUDGET_FS_ACTIVY: | 91 | case BUDGET_FS_ACTIVY: |
92 | saa7146_write(dev, DD1_INIT, 0x04000000); | 92 | saa7146_write(dev, DD1_INIT, 0x04000000); |
93 | saa7146_write(dev, MC2, (MASK_09 | MASK_25)); | 93 | saa7146_write(dev, MC2, (MASK_09 | MASK_25)); |
diff --git a/drivers/media/dvb/ttpci/budget-patch.c b/drivers/media/dvb/ttpci/budget-patch.c index 755df81cbc4..fc416cf5253 100644 --- a/drivers/media/dvb/ttpci/budget-patch.c +++ b/drivers/media/dvb/ttpci/budget-patch.c | |||
@@ -45,11 +45,11 @@ MAKE_BUDGET_INFO(ttbp, "TT-Budget/Patch DVB-S 1.x PCI", BUDGET_PATCH); | |||
45 | //MAKE_BUDGET_INFO(satel,"TT-Budget/Patch SATELCO PCI", BUDGET_TT_HW_DISEQC); | 45 | //MAKE_BUDGET_INFO(satel,"TT-Budget/Patch SATELCO PCI", BUDGET_TT_HW_DISEQC); |
46 | 46 | ||
47 | static struct pci_device_id pci_tbl[] = { | 47 | static struct pci_device_id pci_tbl[] = { |
48 | MAKE_EXTENSION_PCI(ttbp,0x13c2, 0x0000), | 48 | MAKE_EXTENSION_PCI(ttbp,0x13c2, 0x0000), |
49 | // MAKE_EXTENSION_PCI(satel, 0x13c2, 0x1013), | 49 | // MAKE_EXTENSION_PCI(satel, 0x13c2, 0x1013), |
50 | { | 50 | { |
51 | .vendor = 0, | 51 | .vendor = 0, |
52 | } | 52 | } |
53 | }; | 53 | }; |
54 | 54 | ||
55 | /* those lines are for budget-patch to be tried | 55 | /* those lines are for budget-patch to be tried |
@@ -165,57 +165,57 @@ static int budget_diseqc_send_burst(struct dvb_frontend* fe, fe_sec_mini_cmd_t m | |||
165 | 165 | ||
166 | static int budget_av7110_send_fw_cmd(struct budget_patch *budget, u16* buf, int length) | 166 | static int budget_av7110_send_fw_cmd(struct budget_patch *budget, u16* buf, int length) |
167 | { | 167 | { |
168 | int i; | 168 | int i; |
169 | 169 | ||
170 | dprintk(2, "budget: %p\n", budget); | 170 | dprintk(2, "budget: %p\n", budget); |
171 | 171 | ||
172 | for (i = 2; i < length; i++) | 172 | for (i = 2; i < length; i++) |
173 | { | 173 | { |
174 | ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2*i, 2, (u32) buf[i], 0,0); | 174 | ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2*i, 2, (u32) buf[i], 0,0); |
175 | msleep(5); | 175 | msleep(5); |
176 | } | 176 | } |
177 | if (length) | 177 | if (length) |
178 | ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2, 2, (u32) buf[1], 0,0); | 178 | ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2, 2, (u32) buf[1], 0,0); |
179 | else | 179 | else |
180 | ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2, 2, 0, 0,0); | 180 | ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2, 2, 0, 0,0); |
181 | msleep(5); | 181 | msleep(5); |
182 | ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND, 2, (u32) buf[0], 0,0); | 182 | ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND, 2, (u32) buf[0], 0,0); |
183 | msleep(5); | 183 | msleep(5); |
184 | return 0; | 184 | return 0; |
185 | } | 185 | } |
186 | 186 | ||
187 | static void av7110_set22k(struct budget_patch *budget, int state) | 187 | static void av7110_set22k(struct budget_patch *budget, int state) |
188 | { | 188 | { |
189 | u16 buf[2] = {( COMTYPE_AUDIODAC << 8) | (state ? ON22K : OFF22K), 0}; | 189 | u16 buf[2] = {( COMTYPE_AUDIODAC << 8) | (state ? ON22K : OFF22K), 0}; |
190 | 190 | ||
191 | dprintk(2, "budget: %p\n", budget); | 191 | dprintk(2, "budget: %p\n", budget); |
192 | budget_av7110_send_fw_cmd(budget, buf, 2); | 192 | budget_av7110_send_fw_cmd(budget, buf, 2); |
193 | } | 193 | } |
194 | 194 | ||
195 | static int av7110_send_diseqc_msg(struct budget_patch *budget, int len, u8 *msg, int burst) | 195 | static int av7110_send_diseqc_msg(struct budget_patch *budget, int len, u8 *msg, int burst) |
196 | { | 196 | { |
197 | int i; | 197 | int i; |
198 | u16 buf[18] = { ((COMTYPE_AUDIODAC << 8) | SendDiSEqC), | 198 | u16 buf[18] = { ((COMTYPE_AUDIODAC << 8) | SendDiSEqC), |
199 | 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; | 199 | 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
200 | 200 | ||
201 | dprintk(2, "budget: %p\n", budget); | 201 | dprintk(2, "budget: %p\n", budget); |
202 | 202 | ||
203 | if (len>10) | 203 | if (len>10) |
204 | len=10; | 204 | len=10; |
205 | 205 | ||
206 | buf[1] = len+2; | 206 | buf[1] = len+2; |
207 | buf[2] = len; | 207 | buf[2] = len; |
208 | 208 | ||
209 | if (burst != -1) | 209 | if (burst != -1) |
210 | buf[3]=burst ? 0x01 : 0x00; | 210 | buf[3]=burst ? 0x01 : 0x00; |
211 | else | 211 | else |
212 | buf[3]=0xffff; | 212 | buf[3]=0xffff; |
213 | 213 | ||
214 | for (i=0; i<len; i++) | 214 | for (i=0; i<len; i++) |
215 | buf[i+4]=msg[i]; | 215 | buf[i+4]=msg[i]; |
216 | 216 | ||
217 | budget_av7110_send_fw_cmd(budget, buf, 18); | 217 | budget_av7110_send_fw_cmd(budget, buf, 18); |
218 | return 0; | 218 | return 0; |
219 | } | 219 | } |
220 | 220 | ||
221 | static int budget_patch_set_tone(struct dvb_frontend* fe, fe_sec_tone_mode_t tone) | 221 | static int budget_patch_set_tone(struct dvb_frontend* fe, fe_sec_tone_mode_t tone) |
@@ -276,7 +276,7 @@ static int alps_bsrv2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param | |||
276 | buf[2] = ((div & 0x18000) >> 10) | 0x95; | 276 | buf[2] = ((div & 0x18000) >> 10) | 0x95; |
277 | buf[3] = (pwr << 6) | 0x30; | 277 | buf[3] = (pwr << 6) | 0x30; |
278 | 278 | ||
279 | // NOTE: since we're using a prescaler of 2, we set the | 279 | // NOTE: since we're using a prescaler of 2, we set the |
280 | // divisor frequency to 62.5kHz and divide by 125 above | 280 | // divisor frequency to 62.5kHz and divide by 125 above |
281 | 281 | ||
282 | if (i2c_transfer (&budget->i2c_adap, &msg, 1) != 1) return -EIO; | 282 | if (i2c_transfer (&budget->i2c_adap, &msg, 1) != 1) return -EIO; |
@@ -294,7 +294,7 @@ static u8 alps_bsru6_inittab[] = { | |||
294 | 0x01, 0x15, | 294 | 0x01, 0x15, |
295 | 0x02, 0x00, | 295 | 0x02, 0x00, |
296 | 0x03, 0x00, | 296 | 0x03, 0x00, |
297 | 0x04, 0x7d, /* F22FR = 0x7d, F22 = f_VCO / 128 / 0x7d = 22 kHz */ | 297 | 0x04, 0x7d, /* F22FR = 0x7d, F22 = f_VCO / 128 / 0x7d = 22 kHz */ |
298 | 0x05, 0x35, /* I2CT = 0, SCLT = 1, SDAT = 1 */ | 298 | 0x05, 0x35, /* I2CT = 0, SCLT = 1, SDAT = 1 */ |
299 | 0x06, 0x40, /* DAC not used, set to high impendance mode */ | 299 | 0x06, 0x40, /* DAC not used, set to high impendance mode */ |
300 | 0x07, 0x00, /* DAC LSB */ | 300 | 0x07, 0x00, /* DAC LSB */ |
@@ -413,7 +413,7 @@ static void frontend_init(struct budget_patch* budget) | |||
413 | { | 413 | { |
414 | switch(budget->dev->pci->subsystem_device) { | 414 | switch(budget->dev->pci->subsystem_device) { |
415 | case 0x0000: // Hauppauge/TT WinTV DVB-S rev1.X | 415 | case 0x0000: // Hauppauge/TT WinTV DVB-S rev1.X |
416 | case 0x1013: // SATELCO Multimedia PCI | 416 | case 0x1013: // SATELCO Multimedia PCI |
417 | 417 | ||
418 | // try the ALPS BSRV2 first of all | 418 | // try the ALPS BSRV2 first of all |
419 | budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap); | 419 | budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap); |
@@ -463,8 +463,8 @@ static void frontend_init(struct budget_patch* budget) | |||
463 | /* written by Emard */ | 463 | /* written by Emard */ |
464 | static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_extension_data *info) | 464 | static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_extension_data *info) |
465 | { | 465 | { |
466 | struct budget_patch *budget; | 466 | struct budget_patch *budget; |
467 | int err; | 467 | int err; |
468 | int count = 0; | 468 | int count = 0; |
469 | int detected = 0; | 469 | int detected = 0; |
470 | 470 | ||
@@ -472,12 +472,12 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte | |||
472 | #define RPS_IRQ 0 | 472 | #define RPS_IRQ 0 |
473 | #define HPS_SETUP 0 | 473 | #define HPS_SETUP 0 |
474 | #if PATCH_RESET | 474 | #if PATCH_RESET |
475 | saa7146_write(dev, MC1, MASK_31); | 475 | saa7146_write(dev, MC1, MASK_31); |
476 | msleep(40); | 476 | msleep(40); |
477 | #endif | 477 | #endif |
478 | #if HPS_SETUP | 478 | #if HPS_SETUP |
479 | // initialize registers. Better to have it like this | 479 | // initialize registers. Better to have it like this |
480 | // than leaving something unconfigured | 480 | // than leaving something unconfigured |
481 | saa7146_write(dev, DD1_STREAM_B, 0); | 481 | saa7146_write(dev, DD1_STREAM_B, 0); |
482 | // port B VSYNC at rising edge | 482 | // port B VSYNC at rising edge |
483 | saa7146_write(dev, DD1_INIT, 0x00000200); // have this in budget-core too! | 483 | saa7146_write(dev, DD1_INIT, 0x00000200); // have this in budget-core too! |
@@ -486,29 +486,29 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte | |||
486 | // debi config | 486 | // debi config |
487 | // saa7146_write(dev, DEBI_CONFIG, MASK_30|MASK_28|MASK_18); | 487 | // saa7146_write(dev, DEBI_CONFIG, MASK_30|MASK_28|MASK_18); |
488 | 488 | ||
489 | // zero all HPS registers | 489 | // zero all HPS registers |
490 | saa7146_write(dev, HPS_H_PRESCALE, 0); // r68 | 490 | saa7146_write(dev, HPS_H_PRESCALE, 0); // r68 |
491 | saa7146_write(dev, HPS_H_SCALE, 0); // r6c | 491 | saa7146_write(dev, HPS_H_SCALE, 0); // r6c |
492 | saa7146_write(dev, BCS_CTRL, 0); // r70 | 492 | saa7146_write(dev, BCS_CTRL, 0); // r70 |
493 | saa7146_write(dev, HPS_V_SCALE, 0); // r60 | 493 | saa7146_write(dev, HPS_V_SCALE, 0); // r60 |
494 | saa7146_write(dev, HPS_V_GAIN, 0); // r64 | 494 | saa7146_write(dev, HPS_V_GAIN, 0); // r64 |
495 | saa7146_write(dev, CHROMA_KEY_RANGE, 0); // r74 | 495 | saa7146_write(dev, CHROMA_KEY_RANGE, 0); // r74 |
496 | saa7146_write(dev, CLIP_FORMAT_CTRL, 0); // r78 | 496 | saa7146_write(dev, CLIP_FORMAT_CTRL, 0); // r78 |
497 | // Set HPS prescaler for port B input | 497 | // Set HPS prescaler for port B input |
498 | saa7146_write(dev, HPS_CTRL, (1<<30) | (0<<29) | (1<<28) | (0<<12) ); | 498 | saa7146_write(dev, HPS_CTRL, (1<<30) | (0<<29) | (1<<28) | (0<<12) ); |
499 | saa7146_write(dev, MC2, | 499 | saa7146_write(dev, MC2, |
500 | 0 * (MASK_08 | MASK_24) | // BRS control | 500 | 0 * (MASK_08 | MASK_24) | // BRS control |
501 | 0 * (MASK_09 | MASK_25) | // a | 501 | 0 * (MASK_09 | MASK_25) | // a |
502 | 0 * (MASK_10 | MASK_26) | // b | 502 | 0 * (MASK_10 | MASK_26) | // b |
503 | 1 * (MASK_06 | MASK_22) | // HPS_CTRL1 | 503 | 1 * (MASK_06 | MASK_22) | // HPS_CTRL1 |
504 | 1 * (MASK_05 | MASK_21) | // HPS_CTRL2 | 504 | 1 * (MASK_05 | MASK_21) | // HPS_CTRL2 |
505 | 0 * (MASK_01 | MASK_15) // DEBI | 505 | 0 * (MASK_01 | MASK_15) // DEBI |
506 | ); | 506 | ); |
507 | #endif | 507 | #endif |
508 | // Disable RPS1 and RPS0 | 508 | // Disable RPS1 and RPS0 |
509 | saa7146_write(dev, MC1, ( MASK_29 | MASK_28)); | 509 | saa7146_write(dev, MC1, ( MASK_29 | MASK_28)); |
510 | // RPS1 timeout disable | 510 | // RPS1 timeout disable |
511 | saa7146_write(dev, RPS_TOV1, 0); | 511 | saa7146_write(dev, RPS_TOV1, 0); |
512 | 512 | ||
513 | // code for autodetection | 513 | // code for autodetection |
514 | // will wait for VBI_B event (vertical blank at port B) | 514 | // will wait for VBI_B event (vertical blank at port B) |
@@ -521,38 +521,38 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte | |||
521 | WRITE_RPS1(cpu_to_le32(CMD_UPLOAD | | 521 | WRITE_RPS1(cpu_to_le32(CMD_UPLOAD | |
522 | MASK_10 | MASK_09 | MASK_08 | MASK_06 | MASK_05 | MASK_04 | MASK_03 | MASK_02 )); | 522 | MASK_10 | MASK_09 | MASK_08 | MASK_06 | MASK_05 | MASK_04 | MASK_03 | MASK_02 )); |
523 | #endif | 523 | #endif |
524 | WRITE_RPS1(cpu_to_le32(CMD_PAUSE | EVT_VBI_B)); | 524 | WRITE_RPS1(cpu_to_le32(CMD_PAUSE | EVT_VBI_B)); |
525 | WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); | 525 | WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); |
526 | WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); | 526 | WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); |
527 | WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTLO<<24)); | 527 | WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTLO<<24)); |
528 | #if RPS_IRQ | 528 | #if RPS_IRQ |
529 | // issue RPS1 interrupt to increment counter | 529 | // issue RPS1 interrupt to increment counter |
530 | WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); | 530 | WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); |
531 | // at least a NOP is neede between two interrupts | 531 | // at least a NOP is neede between two interrupts |
532 | WRITE_RPS1(cpu_to_le32(CMD_NOP)); | 532 | WRITE_RPS1(cpu_to_le32(CMD_NOP)); |
533 | // interrupt again | 533 | // interrupt again |
534 | WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); | 534 | WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); |
535 | #endif | 535 | #endif |
536 | WRITE_RPS1(cpu_to_le32(CMD_STOP)); | 536 | WRITE_RPS1(cpu_to_le32(CMD_STOP)); |
537 | 537 | ||
538 | #if RPS_IRQ | 538 | #if RPS_IRQ |
539 | // set event counter 1 source as RPS1 interrupt (0x03) (rE4 p53) | 539 | // set event counter 1 source as RPS1 interrupt (0x03) (rE4 p53) |
540 | // use 0x03 to track RPS1 interrupts - increase by 1 every gpio3 is toggled | 540 | // use 0x03 to track RPS1 interrupts - increase by 1 every gpio3 is toggled |
541 | // use 0x15 to track VPE interrupts - increase by 1 every vpeirq() is called | 541 | // use 0x15 to track VPE interrupts - increase by 1 every vpeirq() is called |
542 | saa7146_write(dev, EC1SSR, (0x03<<2) | 3 ); | 542 | saa7146_write(dev, EC1SSR, (0x03<<2) | 3 ); |
543 | // set event counter 1 treshold to maximum allowed value (rEC p55) | 543 | // set event counter 1 treshold to maximum allowed value (rEC p55) |
544 | saa7146_write(dev, ECT1R, 0x3fff ); | 544 | saa7146_write(dev, ECT1R, 0x3fff ); |
545 | #endif | 545 | #endif |
546 | // Fix VSYNC level | 546 | // Fix VSYNC level |
547 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); | 547 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); |
548 | // Set RPS1 Address register to point to RPS code (r108 p42) | 548 | // Set RPS1 Address register to point to RPS code (r108 p42) |
549 | saa7146_write(dev, RPS_ADDR1, dev->d_rps1.dma_handle); | 549 | saa7146_write(dev, RPS_ADDR1, dev->d_rps1.dma_handle); |
550 | // Enable RPS1, (rFC p33) | 550 | // Enable RPS1, (rFC p33) |
551 | saa7146_write(dev, MC1, (MASK_13 | MASK_29 )); | 551 | saa7146_write(dev, MC1, (MASK_13 | MASK_29 )); |
552 | 552 | ||
553 | 553 | ||
554 | mdelay(50); | 554 | mdelay(50); |
555 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); | 555 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); |
556 | mdelay(150); | 556 | mdelay(150); |
557 | 557 | ||
558 | 558 | ||
@@ -560,17 +560,17 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte | |||
560 | detected = 1; | 560 | detected = 1; |
561 | 561 | ||
562 | #if RPS_IRQ | 562 | #if RPS_IRQ |
563 | printk("Event Counter 1 0x%04x\n", saa7146_read(dev, EC1R) & 0x3fff ); | 563 | printk("Event Counter 1 0x%04x\n", saa7146_read(dev, EC1R) & 0x3fff ); |
564 | #endif | 564 | #endif |
565 | // Disable RPS1 | 565 | // Disable RPS1 |
566 | saa7146_write(dev, MC1, ( MASK_29 )); | 566 | saa7146_write(dev, MC1, ( MASK_29 )); |
567 | 567 | ||
568 | if(detected == 0) | 568 | if(detected == 0) |
569 | printk("budget-patch not detected or saa7146 in non-default state.\n" | 569 | printk("budget-patch not detected or saa7146 in non-default state.\n" |
570 | "try enabling ressetting of 7146 with MASK_31 in MC1 register\n"); | 570 | "try enabling ressetting of 7146 with MASK_31 in MC1 register\n"); |
571 | 571 | ||
572 | else | 572 | else |
573 | printk("BUDGET-PATCH DETECTED.\n"); | 573 | printk("BUDGET-PATCH DETECTED.\n"); |
574 | 574 | ||
575 | 575 | ||
576 | /* OLD (Original design by Roberto Deza): | 576 | /* OLD (Original design by Roberto Deza): |
@@ -641,83 +641,83 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte | |||
641 | */ | 641 | */ |
642 | 642 | ||
643 | // Setup RPS1 "program" (p35) | 643 | // Setup RPS1 "program" (p35) |
644 | count = 0; | 644 | count = 0; |
645 | 645 | ||
646 | 646 | ||
647 | // Wait Source Line Counter Threshold (p36) | 647 | // Wait Source Line Counter Threshold (p36) |
648 | WRITE_RPS1(cpu_to_le32(CMD_PAUSE | EVT_HS)); | 648 | WRITE_RPS1(cpu_to_le32(CMD_PAUSE | EVT_HS)); |
649 | // Set GPIO3=1 (p42) | 649 | // Set GPIO3=1 (p42) |
650 | WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); | 650 | WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); |
651 | WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); | 651 | WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); |
652 | WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTHI<<24)); | 652 | WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTHI<<24)); |
653 | #if RPS_IRQ | 653 | #if RPS_IRQ |
654 | // issue RPS1 interrupt | 654 | // issue RPS1 interrupt |
655 | WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); | 655 | WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); |
656 | #endif | 656 | #endif |
657 | // Wait reset Source Line Counter Threshold (p36) | 657 | // Wait reset Source Line Counter Threshold (p36) |
658 | WRITE_RPS1(cpu_to_le32(CMD_PAUSE | RPS_INV | EVT_HS)); | 658 | WRITE_RPS1(cpu_to_le32(CMD_PAUSE | RPS_INV | EVT_HS)); |
659 | // Set GPIO3=0 (p42) | 659 | // Set GPIO3=0 (p42) |
660 | WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); | 660 | WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); |
661 | WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); | 661 | WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); |
662 | WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTLO<<24)); | 662 | WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTLO<<24)); |
663 | #if RPS_IRQ | 663 | #if RPS_IRQ |
664 | // issue RPS1 interrupt | 664 | // issue RPS1 interrupt |
665 | WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); | 665 | WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); |
666 | #endif | 666 | #endif |
667 | // Jump to begin of RPS program (p37) | 667 | // Jump to begin of RPS program (p37) |
668 | WRITE_RPS1(cpu_to_le32(CMD_JUMP)); | 668 | WRITE_RPS1(cpu_to_le32(CMD_JUMP)); |
669 | WRITE_RPS1(cpu_to_le32(dev->d_rps1.dma_handle)); | 669 | WRITE_RPS1(cpu_to_le32(dev->d_rps1.dma_handle)); |
670 | |||
671 | // Fix VSYNC level | ||
672 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); | ||
673 | // Set RPS1 Address register to point to RPS code (r108 p42) | ||
674 | saa7146_write(dev, RPS_ADDR1, dev->d_rps1.dma_handle); | ||
675 | // Set Source Line Counter Threshold, using BRS (rCC p43) | ||
676 | // It generates HS event every TS_HEIGHT lines | ||
677 | // this is related to TS_WIDTH set in register | ||
678 | // NUM_LINE_BYTE3 in budget-core.c. If NUM_LINE_BYTE | ||
679 | // low 16 bits are set to TS_WIDTH bytes (TS_WIDTH=2*188 | ||
680 | //,then RPS_THRESH1 | ||
681 | // should be set to trigger every TS_HEIGHT (512) lines. | ||
682 | // | ||
683 | saa7146_write(dev, RPS_THRESH1, (TS_HEIGHT*1) | MASK_12 ); | ||
684 | 670 | ||
685 | // saa7146_write(dev, RPS_THRESH0, ((TS_HEIGHT/2)<<16) |MASK_28| (TS_HEIGHT/2) |MASK_12 ); | 671 | // Fix VSYNC level |
686 | // Enable RPS1 (rFC p33) | 672 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); |
687 | saa7146_write(dev, MC1, (MASK_13 | MASK_29)); | 673 | // Set RPS1 Address register to point to RPS code (r108 p42) |
688 | 674 | saa7146_write(dev, RPS_ADDR1, dev->d_rps1.dma_handle); | |
689 | 675 | // Set Source Line Counter Threshold, using BRS (rCC p43) | |
690 | if (!(budget = kmalloc (sizeof(struct budget_patch), GFP_KERNEL))) | 676 | // It generates HS event every TS_HEIGHT lines |
691 | return -ENOMEM; | 677 | // this is related to TS_WIDTH set in register |
678 | // NUM_LINE_BYTE3 in budget-core.c. If NUM_LINE_BYTE | ||
679 | // low 16 bits are set to TS_WIDTH bytes (TS_WIDTH=2*188 | ||
680 | //,then RPS_THRESH1 | ||
681 | // should be set to trigger every TS_HEIGHT (512) lines. | ||
682 | // | ||
683 | saa7146_write(dev, RPS_THRESH1, (TS_HEIGHT*1) | MASK_12 ); | ||
684 | |||
685 | // saa7146_write(dev, RPS_THRESH0, ((TS_HEIGHT/2)<<16) |MASK_28| (TS_HEIGHT/2) |MASK_12 ); | ||
686 | // Enable RPS1 (rFC p33) | ||
687 | saa7146_write(dev, MC1, (MASK_13 | MASK_29)); | ||
688 | |||
689 | |||
690 | if (!(budget = kmalloc (sizeof(struct budget_patch), GFP_KERNEL))) | ||
691 | return -ENOMEM; | ||
692 | 692 | ||
693 | dprintk(2, "budget: %p\n", budget); | 693 | dprintk(2, "budget: %p\n", budget); |
694 | 694 | ||
695 | if ((err = ttpci_budget_init (budget, dev, info, THIS_MODULE))) { | 695 | if ((err = ttpci_budget_init (budget, dev, info, THIS_MODULE))) { |
696 | kfree (budget); | 696 | kfree (budget); |
697 | return err; | 697 | return err; |
698 | } | 698 | } |
699 | 699 | ||
700 | 700 | ||
701 | dev->ext_priv = budget; | 701 | dev->ext_priv = budget; |
702 | 702 | ||
703 | budget->dvb_adapter.priv = budget; | 703 | budget->dvb_adapter.priv = budget; |
704 | frontend_init(budget); | 704 | frontend_init(budget); |
705 | 705 | ||
706 | return 0; | 706 | return 0; |
707 | } | 707 | } |
708 | 708 | ||
709 | static int budget_patch_detach (struct saa7146_dev* dev) | 709 | static int budget_patch_detach (struct saa7146_dev* dev) |
710 | { | 710 | { |
711 | struct budget_patch *budget = (struct budget_patch*) dev->ext_priv; | 711 | struct budget_patch *budget = (struct budget_patch*) dev->ext_priv; |
712 | int err; | 712 | int err; |
713 | 713 | ||
714 | if (budget->dvb_frontend) dvb_unregister_frontend(budget->dvb_frontend); | 714 | if (budget->dvb_frontend) dvb_unregister_frontend(budget->dvb_frontend); |
715 | 715 | ||
716 | err = ttpci_budget_deinit (budget); | 716 | err = ttpci_budget_deinit (budget); |
717 | 717 | ||
718 | kfree (budget); | 718 | kfree (budget); |
719 | 719 | ||
720 | return err; | 720 | return err; |
721 | } | 721 | } |
722 | 722 | ||
723 | static int __init budget_patch_init(void) | 723 | static int __init budget_patch_init(void) |
@@ -727,20 +727,20 @@ static int __init budget_patch_init(void) | |||
727 | 727 | ||
728 | static void __exit budget_patch_exit(void) | 728 | static void __exit budget_patch_exit(void) |
729 | { | 729 | { |
730 | saa7146_unregister_extension(&budget_extension); | 730 | saa7146_unregister_extension(&budget_extension); |
731 | } | 731 | } |
732 | 732 | ||
733 | static struct saa7146_extension budget_extension = { | 733 | static struct saa7146_extension budget_extension = { |
734 | .name = "budget_patch dvb\0", | 734 | .name = "budget_patch dvb\0", |
735 | .flags = 0, | 735 | .flags = 0, |
736 | 736 | ||
737 | .module = THIS_MODULE, | 737 | .module = THIS_MODULE, |
738 | .pci_tbl = pci_tbl, | 738 | .pci_tbl = pci_tbl, |
739 | .attach = budget_patch_attach, | 739 | .attach = budget_patch_attach, |
740 | .detach = budget_patch_detach, | 740 | .detach = budget_patch_detach, |
741 | 741 | ||
742 | .irq_mask = MASK_10, | 742 | .irq_mask = MASK_10, |
743 | .irq_func = ttpci_budget_irq10_handler, | 743 | .irq_func = ttpci_budget_irq10_handler, |
744 | }; | 744 | }; |
745 | 745 | ||
746 | module_init(budget_patch_init); | 746 | module_init(budget_patch_init); |
@@ -749,4 +749,4 @@ module_exit(budget_patch_exit); | |||
749 | MODULE_LICENSE("GPL"); | 749 | MODULE_LICENSE("GPL"); |
750 | MODULE_AUTHOR("Emard, Roberto Deza, Holger Waechtler, Michael Hunold, others"); | 750 | MODULE_AUTHOR("Emard, Roberto Deza, Holger Waechtler, Michael Hunold, others"); |
751 | MODULE_DESCRIPTION("Driver for full TS modified DVB-S SAA7146+AV7110 " | 751 | MODULE_DESCRIPTION("Driver for full TS modified DVB-S SAA7146+AV7110 " |
752 | "based so-called Budget Patch cards"); | 752 | "based so-called Budget Patch cards"); |
diff --git a/drivers/media/dvb/ttpci/budget.c b/drivers/media/dvb/ttpci/budget.c index 4fd8bbc4703..fafe6407b3d 100644 --- a/drivers/media/dvb/ttpci/budget.c +++ b/drivers/media/dvb/ttpci/budget.c | |||
@@ -256,7 +256,7 @@ static int alps_bsrv2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param | |||
256 | buf[2] = ((div & 0x18000) >> 10) | 0x95; | 256 | buf[2] = ((div & 0x18000) >> 10) | 0x95; |
257 | buf[3] = (pwr << 6) | 0x30; | 257 | buf[3] = (pwr << 6) | 0x30; |
258 | 258 | ||
259 | // NOTE: since we're using a prescaler of 2, we set the | 259 | // NOTE: since we're using a prescaler of 2, we set the |
260 | // divisor frequency to 62.5kHz and divide by 125 above | 260 | // divisor frequency to 62.5kHz and divide by 125 above |
261 | 261 | ||
262 | if (i2c_transfer (&budget->i2c_adap, &msg, 1) != 1) return -EIO; | 262 | if (i2c_transfer (&budget->i2c_adap, &msg, 1) != 1) return -EIO; |
@@ -565,7 +565,7 @@ static u8 read_pwm(struct budget* budget) | |||
565 | struct i2c_msg msg[] = { { .addr = 0x50,.flags = 0,.buf = &b,.len = 1 }, | 565 | struct i2c_msg msg[] = { { .addr = 0x50,.flags = 0,.buf = &b,.len = 1 }, |
566 | { .addr = 0x50,.flags = I2C_M_RD,.buf = &pwm,.len = 1} }; | 566 | { .addr = 0x50,.flags = I2C_M_RD,.buf = &pwm,.len = 1} }; |
567 | 567 | ||
568 | if ((i2c_transfer(&budget->i2c_adap, msg, 2) != 2) || (pwm == 0xff)) | 568 | if ((i2c_transfer(&budget->i2c_adap, msg, 2) != 2) || (pwm == 0xff)) |
569 | pwm = 0x48; | 569 | pwm = 0x48; |
570 | 570 | ||
571 | return pwm; | 571 | return pwm; |
@@ -593,7 +593,7 @@ static void frontend_init(struct budget *budget) | |||
593 | budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap); | 593 | budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap); |
594 | if (budget->dvb_frontend) { | 594 | if (budget->dvb_frontend) { |
595 | budget->dvb_frontend->ops->diseqc_send_master_cmd = budget_diseqc_send_master_cmd; | 595 | budget->dvb_frontend->ops->diseqc_send_master_cmd = budget_diseqc_send_master_cmd; |
596 | budget->dvb_frontend->ops->diseqc_send_burst = budget_diseqc_send_burst; | 596 | budget->dvb_frontend->ops->diseqc_send_burst = budget_diseqc_send_burst; |
597 | budget->dvb_frontend->ops->set_tone = budget_set_tone; | 597 | budget->dvb_frontend->ops->set_tone = budget_set_tone; |
598 | break; | 598 | break; |
599 | } | 599 | } |
@@ -738,7 +738,7 @@ MODULE_DEVICE_TABLE(pci, pci_tbl); | |||
738 | 738 | ||
739 | static struct saa7146_extension budget_extension = { | 739 | static struct saa7146_extension budget_extension = { |
740 | .name = "budget dvb\0", | 740 | .name = "budget dvb\0", |
741 | .flags = 0, | 741 | .flags = SAA7146_I2C_SHORT_DELAY, |
742 | 742 | ||
743 | .module = THIS_MODULE, | 743 | .module = THIS_MODULE, |
744 | .pci_tbl = pci_tbl, | 744 | .pci_tbl = pci_tbl, |
diff --git a/drivers/media/dvb/ttpci/budget.h b/drivers/media/dvb/ttpci/budget.h index c6ef496ba70..c8d48cfba27 100644 --- a/drivers/media/dvb/ttpci/budget.h +++ b/drivers/media/dvb/ttpci/budget.h | |||
@@ -19,7 +19,7 @@ extern int budget_debug; | |||
19 | #endif | 19 | #endif |
20 | 20 | ||
21 | #define dprintk(level,args...) \ | 21 | #define dprintk(level,args...) \ |
22 | do { if ((budget_debug & level)) { printk("%s: %s(): ",__stringify(KBUILD_MODNAME), __FUNCTION__); printk(args); } } while (0) | 22 | do { if ((budget_debug & level)) { printk("%s: %s(): ", KBUILD_MODNAME, __FUNCTION__); printk(args); } } while (0) |
23 | 23 | ||
24 | struct budget_info { | 24 | struct budget_info { |
25 | char *name; | 25 | char *name; |
diff --git a/drivers/media/dvb/ttpci/fdump.c b/drivers/media/dvb/ttpci/fdump.c index 0b478db3e74..c90001d35e7 100644 --- a/drivers/media/dvb/ttpci/fdump.c +++ b/drivers/media/dvb/ttpci/fdump.c | |||
@@ -36,7 +36,7 @@ int main(int argc, char **argv) | |||
36 | } | 36 | } |
37 | 37 | ||
38 | fprintf(fd_out, "\n};\n\n"); | 38 | fprintf(fd_out, "\n};\n\n"); |
39 | 39 | ||
40 | fclose(fd_in); | 40 | fclose(fd_in); |
41 | fclose(fd_out); | 41 | fclose(fd_out); |
42 | 42 | ||
diff --git a/drivers/media/dvb/ttpci/ttpci-eeprom.c b/drivers/media/dvb/ttpci/ttpci-eeprom.c index e9a8457b072..18aa22b5478 100644 --- a/drivers/media/dvb/ttpci/ttpci-eeprom.c +++ b/drivers/media/dvb/ttpci/ttpci-eeprom.c | |||
@@ -13,7 +13,7 @@ | |||
13 | Holger Waechtler Convergence | 13 | Holger Waechtler Convergence |
14 | 14 | ||
15 | Copyright (C) 2002-2003 Ralph Metzler <rjkm@metzlerbros.de> | 15 | Copyright (C) 2002-2003 Ralph Metzler <rjkm@metzlerbros.de> |
16 | Metzler Brothers Systementwicklung GbR | 16 | Metzler Brothers Systementwicklung GbR |
17 | 17 | ||
18 | This program is free software; you can redistribute it and/or modify | 18 | This program is free software; you can redistribute it and/or modify |
19 | it under the terms of the GNU General Public License as published by | 19 | it under the terms of the GNU General Public License as published by |
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/string.h> | 37 | #include <linux/string.h> |
38 | #include <linux/i2c.h> | 38 | #include <linux/i2c.h> |
39 | 39 | ||
40 | #include "ttpci-eeprom.h" | ||
40 | 41 | ||
41 | #if 1 | 42 | #if 1 |
42 | #define dprintk(x...) do { printk(x); } while (0) | 43 | #define dprintk(x...) do { printk(x); } while (0) |
@@ -47,41 +48,41 @@ | |||
47 | 48 | ||
48 | static int check_mac_tt(u8 *buf) | 49 | static int check_mac_tt(u8 *buf) |
49 | { | 50 | { |
50 | int i; | 51 | int i; |
51 | u16 tmp = 0xffff; | 52 | u16 tmp = 0xffff; |
52 | 53 | ||
53 | for (i = 0; i < 8; i++) { | 54 | for (i = 0; i < 8; i++) { |
54 | tmp = (tmp << 8) | ((tmp >> 8) ^ buf[i]); | 55 | tmp = (tmp << 8) | ((tmp >> 8) ^ buf[i]); |
55 | tmp ^= (tmp >> 4) & 0x0f; | 56 | tmp ^= (tmp >> 4) & 0x0f; |
56 | tmp ^= (tmp << 12) ^ ((tmp & 0xff) << 5); | 57 | tmp ^= (tmp << 12) ^ ((tmp & 0xff) << 5); |
57 | } | 58 | } |
58 | tmp ^= 0xffff; | 59 | tmp ^= 0xffff; |
59 | return (((tmp >> 8) ^ buf[8]) | ((tmp & 0xff) ^ buf[9])); | 60 | return (((tmp >> 8) ^ buf[8]) | ((tmp & 0xff) ^ buf[9])); |
60 | } | 61 | } |
61 | 62 | ||
62 | static int getmac_tt(u8 * decodedMAC, u8 * encodedMAC) | 63 | static int getmac_tt(u8 * decodedMAC, u8 * encodedMAC) |
63 | { | 64 | { |
64 | u8 xor[20] = { 0x72, 0x23, 0x68, 0x19, 0x5c, 0xa8, 0x71, 0x2c, | 65 | u8 xor[20] = { 0x72, 0x23, 0x68, 0x19, 0x5c, 0xa8, 0x71, 0x2c, |
65 | 0x54, 0xd3, 0x7b, 0xf1, 0x9E, 0x23, 0x16, 0xf6, | 66 | 0x54, 0xd3, 0x7b, 0xf1, 0x9E, 0x23, 0x16, 0xf6, |
66 | 0x1d, 0x36, 0x64, 0x78}; | 67 | 0x1d, 0x36, 0x64, 0x78}; |
67 | u8 data[20]; | 68 | u8 data[20]; |
68 | int i; | 69 | int i; |
69 | 70 | ||
70 | /* In case there is a sig check failure have the orig contents available */ | 71 | /* In case there is a sig check failure have the orig contents available */ |
71 | memcpy(data, encodedMAC, 20); | 72 | memcpy(data, encodedMAC, 20); |
72 | 73 | ||
73 | for (i = 0; i < 20; i++) | 74 | for (i = 0; i < 20; i++) |
74 | data[i] ^= xor[i]; | 75 | data[i] ^= xor[i]; |
75 | for (i = 0; i < 10; i++) | 76 | for (i = 0; i < 10; i++) |
76 | data[i] = ((data[2 * i + 1] << 8) | data[2 * i]) | 77 | data[i] = ((data[2 * i + 1] << 8) | data[2 * i]) |
77 | >> ((data[2 * i + 1] >> 6) & 3); | 78 | >> ((data[2 * i + 1] >> 6) & 3); |
78 | 79 | ||
79 | if (check_mac_tt(data)) | 80 | if (check_mac_tt(data)) |
80 | return -ENODEV; | 81 | return -ENODEV; |
81 | 82 | ||
82 | decodedMAC[0] = data[2]; decodedMAC[1] = data[1]; decodedMAC[2] = data[0]; | 83 | decodedMAC[0] = data[2]; decodedMAC[1] = data[1]; decodedMAC[2] = data[0]; |
83 | decodedMAC[3] = data[6]; decodedMAC[4] = data[5]; decodedMAC[5] = data[4]; | 84 | decodedMAC[3] = data[6]; decodedMAC[4] = data[5]; decodedMAC[5] = data[4]; |
84 | return 0; | 85 | return 0; |
85 | } | 86 | } |
86 | 87 | ||
87 | static int ttpci_eeprom_read_encodedMAC(struct i2c_adapter *adapter, u8 * encodedMAC) | 88 | static int ttpci_eeprom_read_encodedMAC(struct i2c_adapter *adapter, u8 * encodedMAC) |
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c index fd53d601050..104df610dbe 100644 --- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c +++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | |||
@@ -225,8 +225,8 @@ static int ttusb_i2c_msg(struct ttusb *ttusb, | |||
225 | 225 | ||
226 | err = ttusb_result(ttusb, b, 0x20); | 226 | err = ttusb_result(ttusb, b, 0x20); |
227 | 227 | ||
228 | /* check if the i2c transaction was successful */ | 228 | /* check if the i2c transaction was successful */ |
229 | if ((snd_len != b[5]) || (rcv_len != b[6])) return -EREMOTEIO; | 229 | if ((snd_len != b[5]) || (rcv_len != b[6])) return -EREMOTEIO; |
230 | 230 | ||
231 | if (rcv_len > 0) { | 231 | if (rcv_len > 0) { |
232 | 232 | ||
@@ -489,27 +489,27 @@ static int ttusb_send_diseqc(struct dvb_frontend* fe, | |||
489 | 489 | ||
490 | static int lnbp21_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage) | 490 | static int lnbp21_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage) |
491 | { | 491 | { |
492 | struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv; | 492 | struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv; |
493 | int ret; | 493 | int ret; |
494 | u8 data[1]; | 494 | u8 data[1]; |
495 | struct i2c_msg msg = { .addr = 0x08, .flags = 0, .buf = data, .len = sizeof(data) }; | 495 | struct i2c_msg msg = { .addr = 0x08, .flags = 0, .buf = data, .len = sizeof(data) }; |
496 | 496 | ||
497 | switch(voltage) { | 497 | switch(voltage) { |
498 | case SEC_VOLTAGE_OFF: | 498 | case SEC_VOLTAGE_OFF: |
499 | data[0] = 0x00; | 499 | data[0] = 0x00; |
500 | break; | 500 | break; |
501 | case SEC_VOLTAGE_13: | 501 | case SEC_VOLTAGE_13: |
502 | data[0] = 0x44; | 502 | data[0] = 0x44; |
503 | break; | 503 | break; |
504 | case SEC_VOLTAGE_18: | 504 | case SEC_VOLTAGE_18: |
505 | data[0] = 0x4c; | 505 | data[0] = 0x4c; |
506 | break; | 506 | break; |
507 | default: | 507 | default: |
508 | return -EINVAL; | 508 | return -EINVAL; |
509 | }; | 509 | }; |
510 | 510 | ||
511 | ret = i2c_transfer(&ttusb->i2c_adap, &msg, 1); | 511 | ret = i2c_transfer(&ttusb->i2c_adap, &msg, 1); |
512 | return (ret != 1) ? -EIO : 0; | 512 | return (ret != 1) ? -EIO : 0; |
513 | } | 513 | } |
514 | 514 | ||
515 | static int ttusb_update_lnb(struct ttusb *ttusb) | 515 | static int ttusb_update_lnb(struct ttusb *ttusb) |
@@ -1184,45 +1184,45 @@ static struct tda1004x_config philips_tdm1316l_config = { | |||
1184 | }; | 1184 | }; |
1185 | 1185 | ||
1186 | static u8 alps_bsbe1_inittab[] = { | 1186 | static u8 alps_bsbe1_inittab[] = { |
1187 | 0x01, 0x15, | 1187 | 0x01, 0x15, |
1188 | 0x02, 0x30, | 1188 | 0x02, 0x30, |
1189 | 0x03, 0x00, | 1189 | 0x03, 0x00, |
1190 | 0x04, 0x7d, /* F22FR = 0x7d, F22 = f_VCO / 128 / 0x7d = 22 kHz */ | 1190 | 0x04, 0x7d, /* F22FR = 0x7d, F22 = f_VCO / 128 / 0x7d = 22 kHz */ |
1191 | 0x05, 0x35, /* I2CT = 0, SCLT = 1, SDAT = 1 */ | 1191 | 0x05, 0x35, /* I2CT = 0, SCLT = 1, SDAT = 1 */ |
1192 | 0x06, 0x40, /* DAC not used, set to high impendance mode */ | 1192 | 0x06, 0x40, /* DAC not used, set to high impendance mode */ |
1193 | 0x07, 0x00, /* DAC LSB */ | 1193 | 0x07, 0x00, /* DAC LSB */ |
1194 | 0x08, 0x40, /* DiSEqC off, LNB power on OP2/LOCK pin on */ | 1194 | 0x08, 0x40, /* DiSEqC off, LNB power on OP2/LOCK pin on */ |
1195 | 0x09, 0x00, /* FIFO */ | 1195 | 0x09, 0x00, /* FIFO */ |
1196 | 0x0c, 0x51, /* OP1 ctl = Normal, OP1 val = 1 (LNB Power ON) */ | 1196 | 0x0c, 0x51, /* OP1 ctl = Normal, OP1 val = 1 (LNB Power ON) */ |
1197 | 0x0d, 0x82, /* DC offset compensation = ON, beta_agc1 = 2 */ | 1197 | 0x0d, 0x82, /* DC offset compensation = ON, beta_agc1 = 2 */ |
1198 | 0x0e, 0x23, /* alpha_tmg = 2, beta_tmg = 3 */ | 1198 | 0x0e, 0x23, /* alpha_tmg = 2, beta_tmg = 3 */ |
1199 | 0x10, 0x3f, // AGC2 0x3d | 1199 | 0x10, 0x3f, // AGC2 0x3d |
1200 | 0x11, 0x84, | 1200 | 0x11, 0x84, |
1201 | 0x12, 0xb9, | 1201 | 0x12, 0xb9, |
1202 | 0x15, 0xc9, // lock detector threshold | 1202 | 0x15, 0xc9, // lock detector threshold |
1203 | 0x16, 0x00, | 1203 | 0x16, 0x00, |
1204 | 0x17, 0x00, | 1204 | 0x17, 0x00, |
1205 | 0x18, 0x00, | 1205 | 0x18, 0x00, |
1206 | 0x19, 0x00, | 1206 | 0x19, 0x00, |
1207 | 0x1a, 0x00, | 1207 | 0x1a, 0x00, |
1208 | 0x1f, 0x50, | 1208 | 0x1f, 0x50, |
1209 | 0x20, 0x00, | 1209 | 0x20, 0x00, |
1210 | 0x21, 0x00, | 1210 | 0x21, 0x00, |
1211 | 0x22, 0x00, | 1211 | 0x22, 0x00, |
1212 | 0x23, 0x00, | 1212 | 0x23, 0x00, |
1213 | 0x28, 0x00, // out imp: normal out type: parallel FEC mode:0 | 1213 | 0x28, 0x00, // out imp: normal out type: parallel FEC mode:0 |
1214 | 0x29, 0x1e, // 1/2 threshold | 1214 | 0x29, 0x1e, // 1/2 threshold |
1215 | 0x2a, 0x14, // 2/3 threshold | 1215 | 0x2a, 0x14, // 2/3 threshold |
1216 | 0x2b, 0x0f, // 3/4 threshold | 1216 | 0x2b, 0x0f, // 3/4 threshold |
1217 | 0x2c, 0x09, // 5/6 threshold | 1217 | 0x2c, 0x09, // 5/6 threshold |
1218 | 0x2d, 0x05, // 7/8 threshold | 1218 | 0x2d, 0x05, // 7/8 threshold |
1219 | 0x2e, 0x01, | 1219 | 0x2e, 0x01, |
1220 | 0x31, 0x1f, // test all FECs | 1220 | 0x31, 0x1f, // test all FECs |
1221 | 0x32, 0x19, // viterbi and synchro search | 1221 | 0x32, 0x19, // viterbi and synchro search |
1222 | 0x33, 0xfc, // rs control | 1222 | 0x33, 0xfc, // rs control |
1223 | 0x34, 0x93, // error control | 1223 | 0x34, 0x93, // error control |
1224 | 0x0f, 0x92, | 1224 | 0x0f, 0x92, |
1225 | 0xff, 0xff | 1225 | 0xff, 0xff |
1226 | }; | 1226 | }; |
1227 | 1227 | ||
1228 | static u8 alps_bsru6_inittab[] = { | 1228 | static u8 alps_bsru6_inittab[] = { |
@@ -1350,7 +1350,7 @@ static int ttusb_novas_grundig_29504_491_pll_set(struct dvb_frontend *fe, struct | |||
1350 | u32 div; | 1350 | u32 div; |
1351 | struct i2c_msg msg = {.addr = 0x61,.flags = 0,.buf = buf,.len = sizeof(buf) }; | 1351 | struct i2c_msg msg = {.addr = 0x61,.flags = 0,.buf = buf,.len = sizeof(buf) }; |
1352 | 1352 | ||
1353 | div = params->frequency / 125; | 1353 | div = params->frequency / 125; |
1354 | 1354 | ||
1355 | buf[0] = (div >> 8) & 0x7f; | 1355 | buf[0] = (div >> 8) & 0x7f; |
1356 | buf[1] = div & 0xff; | 1356 | buf[1] = div & 0xff; |
@@ -1487,7 +1487,7 @@ static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *i | |||
1487 | 1487 | ||
1488 | udev = interface_to_usbdev(intf); | 1488 | udev = interface_to_usbdev(intf); |
1489 | 1489 | ||
1490 | if (intf->altsetting->desc.bInterfaceNumber != 1) return -ENODEV; | 1490 | if (intf->altsetting->desc.bInterfaceNumber != 1) return -ENODEV; |
1491 | 1491 | ||
1492 | if (!(ttusb = kmalloc(sizeof(struct ttusb), GFP_KERNEL))) | 1492 | if (!(ttusb = kmalloc(sizeof(struct ttusb), GFP_KERNEL))) |
1493 | return -ENOMEM; | 1493 | return -ENOMEM; |
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h b/drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h index 95ee7995455..8c3cd545e8f 100644 --- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h +++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h | |||
@@ -2,1643 +2,1643 @@ | |||
2 | #include <asm/types.h> | 2 | #include <asm/types.h> |
3 | 3 | ||
4 | static u8 dsp_bootcode [] = { | 4 | static u8 dsp_bootcode [] = { |
5 | 0x08, 0xaa, 0x00, 0x18, 0x00, 0x03, 0x08, 0x00, | 5 | 0x08, 0xaa, 0x00, 0x18, 0x00, 0x03, 0x08, 0x00, |
6 | 0x00, 0x10, 0x00, 0x00, 0x01, 0x80, 0x18, 0x5f, | 6 | 0x00, 0x10, 0x00, 0x00, 0x01, 0x80, 0x18, 0x5f, |
7 | 0x00, 0x00, 0x01, 0x80, 0x77, 0x18, 0x2a, 0xeb, | 7 | 0x00, 0x00, 0x01, 0x80, 0x77, 0x18, 0x2a, 0xeb, |
8 | 0x6b, 0xf8, 0x00, 0x18, 0x03, 0xff, 0x68, 0xf8, | 8 | 0x6b, 0xf8, 0x00, 0x18, 0x03, 0xff, 0x68, 0xf8, |
9 | 0x00, 0x18, 0xff, 0xfe, 0xf7, 0xb8, 0xf7, 0xbe, | 9 | 0x00, 0x18, 0xff, 0xfe, 0xf7, 0xb8, 0xf7, 0xbe, |
10 | 0xf6, 0xb9, 0xf4, 0xa0, 0xf6, 0xb7, 0xf6, 0xb5, | 10 | 0xf6, 0xb9, 0xf4, 0xa0, 0xf6, 0xb7, 0xf6, 0xb5, |
11 | 0xf6, 0xb6, 0xf0, 0x20, 0x19, 0xdf, 0xf1, 0x00, | 11 | 0xf6, 0xb6, 0xf0, 0x20, 0x19, 0xdf, 0xf1, 0x00, |
12 | 0x00, 0x01, 0xf8, 0x4d, 0x01, 0xab, 0xf6, 0xb8, | 12 | 0x00, 0x01, 0xf8, 0x4d, 0x01, 0xab, 0xf6, 0xb8, |
13 | 0xf0, 0x20, 0x19, 0xdf, 0xf0, 0x73, 0x01, 0xa5, | 13 | 0xf0, 0x20, 0x19, 0xdf, 0xf0, 0x73, 0x01, 0xa5, |
14 | 0x7e, 0xf8, 0x00, 0x12, 0xf0, 0x00, 0x00, 0x01, | 14 | 0x7e, 0xf8, 0x00, 0x12, 0xf0, 0x00, 0x00, 0x01, |
15 | 0x47, 0xf8, 0x00, 0x11, 0x7e, 0x92, 0x00, 0xf8, | 15 | 0x47, 0xf8, 0x00, 0x11, 0x7e, 0x92, 0x00, 0xf8, |
16 | 0x00, 0x11, 0xf0, 0x00, 0x00, 0x01, 0x7e, 0xf8, | 16 | 0x00, 0x11, 0xf0, 0x00, 0x00, 0x01, 0x7e, 0xf8, |
17 | 0x00, 0x11, 0xf0, 0x00, 0x00, 0x01, 0x6c, 0x89, | 17 | 0x00, 0x11, 0xf0, 0x00, 0x00, 0x01, 0x6c, 0x89, |
18 | 0x01, 0x9a, 0xf7, 0xb8, 0xee, 0xfc, 0xf0, 0x20, | 18 | 0x01, 0x9a, 0xf7, 0xb8, 0xee, 0xfc, 0xf0, 0x20, |
19 | 0xff, 0xff, 0xf1, 0x00, 0x00, 0x01, 0xf8, 0x4d, | 19 | 0xff, 0xff, 0xf1, 0x00, 0x00, 0x01, 0xf8, 0x4d, |
20 | 0x01, 0xbf, 0xf2, 0x73, 0x01, 0xb9, 0x4e, 0x02, | 20 | 0x01, 0xbf, 0xf2, 0x73, 0x01, 0xb9, 0x4e, 0x02, |
21 | 0xf4, 0x95, 0xf5, 0xe3, 0x56, 0x02, 0x7e, 0x00, | 21 | 0xf4, 0x95, 0xf5, 0xe3, 0x56, 0x02, 0x7e, 0x00, |
22 | 0x11, 0x00, 0xfa, 0x4c, 0x01, 0xb7, 0x6b, 0x03, | 22 | 0x11, 0x00, 0xfa, 0x4c, 0x01, 0xb7, 0x6b, 0x03, |
23 | 0x00, 0x01, 0xf6, 0xb8, 0xee, 0x04, 0xf0, 0x74, | 23 | 0x00, 0x01, 0xf6, 0xb8, 0xee, 0x04, 0xf0, 0x74, |
24 | 0x0d, 0xa7, 0xf0, 0x74, 0x01, 0xc5, 0x4a, 0x11, | 24 | 0x0d, 0xa7, 0xf0, 0x74, 0x01, 0xc5, 0x4a, 0x11, |
25 | 0x4a, 0x16, 0x72, 0x11, 0x2a, 0xe6, 0x10, 0xf8, | 25 | 0x4a, 0x16, 0x72, 0x11, 0x2a, 0xe6, 0x10, 0xf8, |
26 | 0x00, 0x11, 0xfa, 0x45, 0x01, 0xdb, 0xf4, 0x95, | 26 | 0x00, 0x11, 0xfa, 0x45, 0x01, 0xdb, 0xf4, 0x95, |
27 | 0xee, 0xff, 0x48, 0x11, 0xf0, 0x00, 0x2a, 0xc6, | 27 | 0xee, 0xff, 0x48, 0x11, 0xf0, 0x00, 0x2a, 0xc6, |
28 | 0x88, 0x16, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0xee, | 28 | 0x88, 0x16, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0xee, |
29 | 0xff, 0xff, 0xf4, 0xe3, 0x6c, 0xe9, 0xff, 0xff, | 29 | 0xff, 0xff, 0xf4, 0xe3, 0x6c, 0xe9, 0xff, 0xff, |
30 | 0x01, 0xd5, 0x10, 0xf8, 0x2a, 0xe7, 0xf8, 0x45, | 30 | 0x01, 0xd5, 0x10, 0xf8, 0x2a, 0xe7, 0xf8, 0x45, |
31 | 0x01, 0xe2, 0x10, 0xf8, 0x2a, 0xe7, 0xf4, 0xe3, | 31 | 0x01, 0xe2, 0x10, 0xf8, 0x2a, 0xe7, 0xf4, 0xe3, |
32 | 0xf0, 0x74, 0x01, 0xff, 0xee, 0x01, 0x8a, 0x16, | 32 | 0xf0, 0x74, 0x01, 0xff, 0xee, 0x01, 0x8a, 0x16, |
33 | 0x8a, 0x11, 0xfc, 0x00, 0xf7, 0xb8, 0xe9, 0x20, | 33 | 0x8a, 0x11, 0xfc, 0x00, 0xf7, 0xb8, 0xe9, 0x20, |
34 | 0x4a, 0x11, 0x09, 0xf8, 0x2a, 0xe6, 0xf8, 0x4e, | 34 | 0x4a, 0x11, 0x09, 0xf8, 0x2a, 0xe6, 0xf8, 0x4e, |
35 | 0x01, 0xf3, 0xf2, 0x73, 0x01, 0xfd, 0xf4, 0x95, | 35 | 0x01, 0xf3, 0xf2, 0x73, 0x01, 0xfd, 0xf4, 0x95, |
36 | 0xe8, 0x01, 0x72, 0x11, 0x2a, 0xe6, 0x49, 0x11, | 36 | 0xe8, 0x01, 0x72, 0x11, 0x2a, 0xe6, 0x49, 0x11, |
37 | 0x80, 0xe1, 0x2a, 0xc6, 0xf3, 0x00, 0x00, 0x01, | 37 | 0x80, 0xe1, 0x2a, 0xc6, 0xf3, 0x00, 0x00, 0x01, |
38 | 0xe8, 0x00, 0x81, 0xf8, 0x2a, 0xe6, 0x8a, 0x11, | 38 | 0xe8, 0x00, 0x81, 0xf8, 0x2a, 0xe6, 0x8a, 0x11, |
39 | 0xfc, 0x00, 0xf4, 0x95, 0xf0, 0x73, 0x02, 0x00, | 39 | 0xfc, 0x00, 0xf4, 0x95, 0xf0, 0x73, 0x02, 0x00, |
40 | 0x10, 0xf8, 0x2a, 0x0f, 0xfc, 0x00, 0x4a, 0x11, | 40 | 0x10, 0xf8, 0x2a, 0x0f, 0xfc, 0x00, 0x4a, 0x11, |
41 | 0xf0, 0x74, 0x02, 0x02, 0x80, 0xf8, 0x2a, 0x10, | 41 | 0xf0, 0x74, 0x02, 0x02, 0x80, 0xf8, 0x2a, 0x10, |
42 | 0x73, 0x08, 0x00, 0x09, 0x40, 0xf8, 0x2a, 0x15, | 42 | 0x73, 0x08, 0x00, 0x09, 0x40, 0xf8, 0x2a, 0x15, |
43 | 0x82, 0xf8, 0x00, 0x11, 0xf4, 0x95, 0x77, 0x10, | 43 | 0x82, 0xf8, 0x00, 0x11, 0xf4, 0x95, 0x77, 0x10, |
44 | 0x03, 0xe8, 0xf5, 0xa9, 0xf8, 0x30, 0x02, 0x21, | 44 | 0x03, 0xe8, 0xf5, 0xa9, 0xf8, 0x30, 0x02, 0x21, |
45 | 0x71, 0xf8, 0x2a, 0x10, 0x2a, 0x15, 0x56, 0xf8, | 45 | 0x71, 0xf8, 0x2a, 0x10, 0x2a, 0x15, 0x56, 0xf8, |
46 | 0x2a, 0x0c, 0xf0, 0xe3, 0x4e, 0xf8, 0x2a, 0x16, | 46 | 0x2a, 0x0c, 0xf0, 0xe3, 0x4e, 0xf8, 0x2a, 0x16, |
47 | 0xe8, 0x00, 0x4e, 0xf8, 0x2a, 0x0c, 0x8a, 0x11, | 47 | 0xe8, 0x00, 0x4e, 0xf8, 0x2a, 0x0c, 0x8a, 0x11, |
48 | 0xfc, 0x00, 0x4a, 0x06, 0x4a, 0x07, 0x4a, 0x1d, | 48 | 0xfc, 0x00, 0x4a, 0x06, 0x4a, 0x07, 0x4a, 0x1d, |
49 | 0x68, 0xf8, 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, | 49 | 0x68, 0xf8, 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, |
50 | 0x00, 0x07, 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, | 50 | 0x00, 0x07, 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, |
51 | 0xff, 0xfc, 0x6b, 0xf8, 0x2a, 0x0f, 0x00, 0x01, | 51 | 0xff, 0xfc, 0x6b, 0xf8, 0x2a, 0x0f, 0x00, 0x01, |
52 | 0x8a, 0x1d, 0x8a, 0x07, 0x8a, 0x06, 0xf4, 0xeb, | 52 | 0x8a, 0x1d, 0x8a, 0x07, 0x8a, 0x06, 0xf4, 0xeb, |
53 | 0xee, 0xfd, 0x76, 0xf8, 0x2a, 0x0f, 0x00, 0x00, | 53 | 0xee, 0xfd, 0x76, 0xf8, 0x2a, 0x0f, 0x00, 0x00, |
54 | 0x76, 0x00, 0x00, 0x00, 0xfb, 0x80, 0x19, 0x4c, | 54 | 0x76, 0x00, 0x00, 0x00, 0xfb, 0x80, 0x19, 0x4c, |
55 | 0xf4, 0x95, 0xe8, 0x00, 0x80, 0xf8, 0x2a, 0x11, | 55 | 0xf4, 0x95, 0xe8, 0x00, 0x80, 0xf8, 0x2a, 0x11, |
56 | 0xf9, 0x80, 0x19, 0x07, 0x80, 0xf8, 0x2a, 0x0e, | 56 | 0xf9, 0x80, 0x19, 0x07, 0x80, 0xf8, 0x2a, 0x0e, |
57 | 0xf9, 0x80, 0x16, 0x66, 0x76, 0x00, 0x2a, 0x12, | 57 | 0xf9, 0x80, 0x16, 0x66, 0x76, 0x00, 0x2a, 0x12, |
58 | 0x10, 0xf8, 0x2a, 0x11, 0xf9, 0x80, 0x18, 0xe3, | 58 | 0x10, 0xf8, 0x2a, 0x11, 0xf9, 0x80, 0x18, 0xe3, |
59 | 0x10, 0xf8, 0x2a, 0x0e, 0xf9, 0x80, 0x16, 0x66, | 59 | 0x10, 0xf8, 0x2a, 0x0e, 0xf9, 0x80, 0x16, 0x66, |
60 | 0x10, 0xf8, 0x2a, 0x0e, 0xf9, 0x80, 0x16, 0x87, | 60 | 0x10, 0xf8, 0x2a, 0x0e, 0xf9, 0x80, 0x16, 0x87, |
61 | 0xee, 0x03, 0xfc, 0x00, 0x4a, 0x11, 0xf6, 0xb8, | 61 | 0xee, 0x03, 0xfc, 0x00, 0x4a, 0x11, 0xf6, 0xb8, |
62 | 0xf4, 0x95, 0xf0, 0x20, 0x80, 0x00, 0x11, 0xf8, | 62 | 0xf4, 0x95, 0xf0, 0x20, 0x80, 0x00, 0x11, 0xf8, |
63 | 0x2a, 0x5a, 0xf8, 0x4d, 0x02, 0x93, 0x11, 0xf8, | 63 | 0x2a, 0x5a, 0xf8, 0x4d, 0x02, 0x93, 0x11, 0xf8, |
64 | 0x2a, 0x9f, 0xf8, 0x4c, 0x02, 0x7c, 0x77, 0x12, | 64 | 0x2a, 0x9f, 0xf8, 0x4c, 0x02, 0x7c, 0x77, 0x12, |
65 | 0x2a, 0x39, 0x49, 0x12, 0x01, 0xf8, 0x2a, 0x9f, | 65 | 0x2a, 0x39, 0x49, 0x12, 0x01, 0xf8, 0x2a, 0x9f, |
66 | 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x71, 0x81, | 66 | 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x71, 0x81, |
67 | 0x00, 0x11, 0x6c, 0xe1, 0xff, 0xab, 0x02, 0x93, | 67 | 0x00, 0x11, 0x6c, 0xe1, 0xff, 0xab, 0x02, 0x93, |
68 | 0x6b, 0xf8, 0x2a, 0x9f, 0x00, 0x01, 0xe9, 0x05, | 68 | 0x6b, 0xf8, 0x2a, 0x9f, 0x00, 0x01, 0xe9, 0x05, |
69 | 0x01, 0xe2, 0x00, 0x03, 0x81, 0xf8, 0x2a, 0xa0, | 69 | 0x01, 0xe2, 0x00, 0x03, 0x81, 0xf8, 0x2a, 0xa0, |
70 | 0xf0, 0x73, 0x02, 0x95, 0x72, 0x11, 0x2a, 0x9f, | 70 | 0xf0, 0x73, 0x02, 0x95, 0x72, 0x11, 0x2a, 0x9f, |
71 | 0xf4, 0x95, 0x10, 0xe1, 0x2a, 0x39, 0x6b, 0xf8, | 71 | 0xf4, 0x95, 0x10, 0xe1, 0x2a, 0x39, 0x6b, 0xf8, |
72 | 0x2a, 0x9f, 0x00, 0x01, 0x11, 0xf8, 0x2a, 0x9f, | 72 | 0x2a, 0x9f, 0x00, 0x01, 0x11, 0xf8, 0x2a, 0x9f, |
73 | 0x09, 0xf8, 0x2a, 0xa0, 0xf8, 0x4c, 0x02, 0x93, | 73 | 0x09, 0xf8, 0x2a, 0xa0, 0xf8, 0x4c, 0x02, 0x93, |
74 | 0x76, 0xf8, 0x2a, 0x5a, 0x00, 0x00, 0x76, 0xf8, | 74 | 0x76, 0xf8, 0x2a, 0x5a, 0x00, 0x00, 0x76, 0xf8, |
75 | 0x2a, 0x9f, 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xa0, | 75 | 0x2a, 0x9f, 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xa0, |
76 | 0x00, 0x00, 0x88, 0x11, 0xf4, 0x95, 0x48, 0x11, | 76 | 0x00, 0x00, 0x88, 0x11, 0xf4, 0x95, 0x48, 0x11, |
77 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, | 77 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, |
78 | 0x10, 0xf8, 0x2a, 0x5a, 0xf8, 0x44, 0x02, 0xb2, | 78 | 0x10, 0xf8, 0x2a, 0x5a, 0xf8, 0x44, 0x02, 0xb2, |
79 | 0x76, 0xf8, 0x2a, 0x5a, 0x00, 0x01, 0xf0, 0x74, | 79 | 0x76, 0xf8, 0x2a, 0x5a, 0x00, 0x01, 0xf0, 0x74, |
80 | 0x02, 0x58, 0x88, 0x11, 0xf4, 0x95, 0x77, 0x10, | 80 | 0x02, 0x58, 0x88, 0x11, 0xf4, 0x95, 0x77, 0x10, |
81 | 0x80, 0x00, 0xf4, 0xa9, 0xf8, 0x30, 0x02, 0xb2, | 81 | 0x80, 0x00, 0xf4, 0xa9, 0xf8, 0x30, 0x02, 0xb2, |
82 | 0x48, 0x11, 0xf0, 0x30, 0x00, 0xff, 0x80, 0x00, | 82 | 0x48, 0x11, 0xf0, 0x30, 0x00, 0xff, 0x80, 0x00, |
83 | 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, 0x18, 0xd6, | 83 | 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, 0x18, 0xd6, |
84 | 0xee, 0x02, 0x8a, 0x11, 0xfc, 0x00, 0xf4, 0x95, | 84 | 0xee, 0x02, 0x8a, 0x11, 0xfc, 0x00, 0xf4, 0x95, |
85 | 0x4a, 0x08, 0x4a, 0x09, 0x4a, 0x0a, 0x4a, 0x0b, | 85 | 0x4a, 0x08, 0x4a, 0x09, 0x4a, 0x0a, 0x4a, 0x0b, |
86 | 0x4a, 0x0c, 0x4a, 0x0d, 0x4a, 0x10, 0x4a, 0x11, | 86 | 0x4a, 0x0c, 0x4a, 0x0d, 0x4a, 0x10, 0x4a, 0x11, |
87 | 0x4a, 0x12, 0x4a, 0x13, 0x4a, 0x14, 0x4a, 0x15, | 87 | 0x4a, 0x12, 0x4a, 0x13, 0x4a, 0x14, 0x4a, 0x15, |
88 | 0x4a, 0x16, 0x4a, 0x17, 0x4a, 0x17, 0x4a, 0x19, | 88 | 0x4a, 0x16, 0x4a, 0x17, 0x4a, 0x17, 0x4a, 0x19, |
89 | 0x4a, 0x0e, 0x4a, 0x06, 0x4a, 0x07, 0x4a, 0x1a, | 89 | 0x4a, 0x0e, 0x4a, 0x06, 0x4a, 0x07, 0x4a, 0x1a, |
90 | 0x4a, 0x1d, 0x4a, 0x1b, 0x4a, 0x1c, 0x68, 0xf8, | 90 | 0x4a, 0x1d, 0x4a, 0x1b, 0x4a, 0x1c, 0x68, 0xf8, |
91 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, | 91 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, |
92 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, | 92 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, |
93 | 0x48, 0x18, 0x68, 0xf8, 0x00, 0x18, 0xff, 0xfe, | 93 | 0x48, 0x18, 0x68, 0xf8, 0x00, 0x18, 0xff, 0xfe, |
94 | 0xf4, 0x95, 0xf4, 0x95, 0x4a, 0x08, 0xee, 0xfd, | 94 | 0xf4, 0x95, 0xf4, 0x95, 0x4a, 0x08, 0xee, 0xfd, |
95 | 0xf0, 0x74, 0x02, 0x58, 0x88, 0x11, 0xf4, 0x95, | 95 | 0xf0, 0x74, 0x02, 0x58, 0x88, 0x11, 0xf4, 0x95, |
96 | 0x77, 0x10, 0x80, 0x00, 0xf4, 0xa9, 0xf8, 0x30, | 96 | 0x77, 0x10, 0x80, 0x00, 0xf4, 0xa9, 0xf8, 0x30, |
97 | 0x02, 0xef, 0x48, 0x11, 0xf0, 0x30, 0x00, 0xff, | 97 | 0x02, 0xef, 0x48, 0x11, 0xf0, 0x30, 0x00, 0xff, |
98 | 0x80, 0x00, 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, | 98 | 0x80, 0x00, 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, |
99 | 0x18, 0xd6, 0xee, 0x03, 0x8a, 0x18, 0xf4, 0x95, | 99 | 0x18, 0xd6, 0xee, 0x03, 0x8a, 0x18, 0xf4, 0x95, |
100 | 0x8a, 0x1c, 0x8a, 0x1b, 0x8a, 0x1d, 0x8a, 0x1a, | 100 | 0x8a, 0x1c, 0x8a, 0x1b, 0x8a, 0x1d, 0x8a, 0x1a, |
101 | 0x8a, 0x07, 0x8a, 0x06, 0x8a, 0x0e, 0x8a, 0x19, | 101 | 0x8a, 0x07, 0x8a, 0x06, 0x8a, 0x0e, 0x8a, 0x19, |
102 | 0x8a, 0x17, 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x15, | 102 | 0x8a, 0x17, 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x15, |
103 | 0x8a, 0x14, 0x8a, 0x13, 0x8a, 0x12, 0x8a, 0x11, | 103 | 0x8a, 0x14, 0x8a, 0x13, 0x8a, 0x12, 0x8a, 0x11, |
104 | 0x8a, 0x10, 0x8a, 0x0d, 0x8a, 0x0c, 0x8a, 0x0b, | 104 | 0x8a, 0x10, 0x8a, 0x0d, 0x8a, 0x0c, 0x8a, 0x0b, |
105 | 0x8a, 0x0a, 0x8a, 0x09, 0x8a, 0x08, 0xf4, 0xeb, | 105 | 0x8a, 0x0a, 0x8a, 0x09, 0x8a, 0x08, 0xf4, 0xeb, |
106 | 0x4a, 0x11, 0x77, 0x11, 0x2a, 0x39, 0x76, 0x81, | 106 | 0x4a, 0x11, 0x77, 0x11, 0x2a, 0x39, 0x76, 0x81, |
107 | 0x00, 0x55, 0x77, 0x12, 0x2a, 0x18, 0x10, 0xe2, | 107 | 0x00, 0x55, 0x77, 0x12, 0x2a, 0x18, 0x10, 0xe2, |
108 | 0x00, 0x01, 0x80, 0xe1, 0x00, 0x01, 0x10, 0xe2, | 108 | 0x00, 0x01, 0x80, 0xe1, 0x00, 0x01, 0x10, 0xe2, |
109 | 0x00, 0x02, 0x80, 0xe1, 0x00, 0x02, 0x76, 0xe1, | 109 | 0x00, 0x02, 0x80, 0xe1, 0x00, 0x02, 0x76, 0xe1, |
110 | 0x00, 0x03, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x04, | 110 | 0x00, 0x03, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x04, |
111 | 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, 0x8a, 0x11, | 111 | 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, 0x8a, 0x11, |
112 | 0xfc, 0x00, 0x4a, 0x11, 0x88, 0x11, 0xf4, 0x95, | 112 | 0xfc, 0x00, 0x4a, 0x11, 0x88, 0x11, 0xf4, 0x95, |
113 | 0xf4, 0x95, 0x10, 0x81, 0x6f, 0xf8, 0x2a, 0x9e, | 113 | 0xf4, 0x95, 0x10, 0x81, 0x6f, 0xf8, 0x2a, 0x9e, |
114 | 0x0c, 0x88, 0xe8, 0xff, 0x18, 0xe1, 0x00, 0x01, | 114 | 0x0c, 0x88, 0xe8, 0xff, 0x18, 0xe1, 0x00, 0x01, |
115 | 0x1a, 0xf8, 0x2a, 0x9e, 0xf0, 0x30, 0x1f, 0xff, | 115 | 0x1a, 0xf8, 0x2a, 0x9e, 0xf0, 0x30, 0x1f, 0xff, |
116 | 0x80, 0xf8, 0x2a, 0x9e, 0x8a, 0x11, 0xfc, 0x00, | 116 | 0x80, 0xf8, 0x2a, 0x9e, 0x8a, 0x11, 0xfc, 0x00, |
117 | 0x4a, 0x11, 0x77, 0x11, 0x2a, 0x39, 0x76, 0x81, | 117 | 0x4a, 0x11, 0x77, 0x11, 0x2a, 0x39, 0x76, 0x81, |
118 | 0x00, 0x55, 0x77, 0x12, 0x2a, 0x18, 0x11, 0xe2, | 118 | 0x00, 0x55, 0x77, 0x12, 0x2a, 0x18, 0x11, 0xe2, |
119 | 0x00, 0x01, 0x81, 0xe1, 0x00, 0x01, 0x11, 0xe2, | 119 | 0x00, 0x01, 0x81, 0xe1, 0x00, 0x01, 0x11, 0xe2, |
120 | 0x00, 0x02, 0x81, 0xe1, 0x00, 0x02, 0x76, 0xe1, | 120 | 0x00, 0x02, 0x81, 0xe1, 0x00, 0x02, 0x76, 0xe1, |
121 | 0x00, 0x03, 0x00, 0x02, 0x48, 0x08, 0x6f, 0xe1, | 121 | 0x00, 0x03, 0x00, 0x02, 0x48, 0x08, 0x6f, 0xe1, |
122 | 0x00, 0x04, 0x0c, 0x98, 0xf0, 0x30, 0x00, 0xff, | 122 | 0x00, 0x04, 0x0c, 0x98, 0xf0, 0x30, 0x00, 0xff, |
123 | 0x80, 0xe1, 0x00, 0x05, 0x76, 0xe1, 0x00, 0x06, | 123 | 0x80, 0xe1, 0x00, 0x05, 0x76, 0xe1, 0x00, 0x06, |
124 | 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, 0x8a, 0x11, | 124 | 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, 0x8a, 0x11, |
125 | 0xfc, 0x00, 0x4a, 0x11, 0x77, 0x11, 0x2a, 0x39, | 125 | 0xfc, 0x00, 0x4a, 0x11, 0x77, 0x11, 0x2a, 0x39, |
126 | 0x76, 0x81, 0x00, 0x55, 0x77, 0x12, 0x2a, 0x18, | 126 | 0x76, 0x81, 0x00, 0x55, 0x77, 0x12, 0x2a, 0x18, |
127 | 0x10, 0xe2, 0x00, 0x01, 0x80, 0xe1, 0x00, 0x01, | 127 | 0x10, 0xe2, 0x00, 0x01, 0x80, 0xe1, 0x00, 0x01, |
128 | 0x10, 0xe2, 0x00, 0x02, 0x80, 0xe1, 0x00, 0x02, | 128 | 0x10, 0xe2, 0x00, 0x02, 0x80, 0xe1, 0x00, 0x02, |
129 | 0x76, 0xe1, 0x00, 0x03, 0x00, 0x04, 0x48, 0x11, | 129 | 0x76, 0xe1, 0x00, 0x03, 0x00, 0x04, 0x48, 0x11, |
130 | 0xf0, 0x00, 0x00, 0x04, 0x88, 0x12, 0xf4, 0x95, | 130 | 0xf0, 0x00, 0x00, 0x04, 0x88, 0x12, 0xf4, 0x95, |
131 | 0x77, 0x13, 0x2a, 0x76, 0xe9, 0x00, 0xe5, 0x98, | 131 | 0x77, 0x13, 0x2a, 0x76, 0xe9, 0x00, 0xe5, 0x98, |
132 | 0xf3, 0x00, 0x00, 0x01, 0xf6, 0xb8, 0x48, 0x0b, | 132 | 0xf3, 0x00, 0x00, 0x01, 0xf6, 0xb8, 0x48, 0x0b, |
133 | 0x08, 0xf8, 0x2a, 0x3c, 0xf8, 0x43, 0x03, 0x71, | 133 | 0x08, 0xf8, 0x2a, 0x3c, 0xf8, 0x43, 0x03, 0x71, |
134 | 0x76, 0x82, 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, | 134 | 0x76, 0x82, 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, |
135 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xf0, | 135 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xf0, |
136 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x71, 0x81, | 136 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x71, 0x81, |
137 | 0x00, 0x14, 0x71, 0xe1, 0x00, 0x01, 0x00, 0x15, | 137 | 0x00, 0x14, 0x71, 0xe1, 0x00, 0x01, 0x00, 0x15, |
138 | 0x49, 0x11, 0xf3, 0x00, 0x00, 0x02, 0x89, 0x11, | 138 | 0x49, 0x11, 0xf3, 0x00, 0x00, 0x02, 0x89, 0x11, |
139 | 0xe7, 0x82, 0x6d, 0xea, 0x00, 0x04, 0xe7, 0x83, | 139 | 0xe7, 0x82, 0x6d, 0xea, 0x00, 0x04, 0xe7, 0x83, |
140 | 0x6d, 0xeb, 0x00, 0x0a, 0x77, 0x1a, 0x00, 0x05, | 140 | 0x6d, 0xeb, 0x00, 0x0a, 0x77, 0x1a, 0x00, 0x05, |
141 | 0xf0, 0x72, 0x03, 0xaa, 0x11, 0x81, 0xf2, 0xe8, | 141 | 0xf0, 0x72, 0x03, 0xaa, 0x11, 0x81, 0xf2, 0xe8, |
142 | 0x80, 0x82, 0xe9, 0xff, 0x19, 0xe1, 0x00, 0x01, | 142 | 0x80, 0x82, 0xe9, 0xff, 0x19, 0xe1, 0x00, 0x01, |
143 | 0xf1, 0xa0, 0x81, 0x92, 0x11, 0xe1, 0x00, 0x0c, | 143 | 0xf1, 0xa0, 0x81, 0x92, 0x11, 0xe1, 0x00, 0x0c, |
144 | 0xf2, 0xe8, 0x80, 0x83, 0xe9, 0xff, 0x19, 0xe1, | 144 | 0xf2, 0xe8, 0x80, 0x83, 0xe9, 0xff, 0x19, 0xe1, |
145 | 0x00, 0x0d, 0xf1, 0xa0, 0x81, 0x93, 0x6d, 0xe9, | 145 | 0x00, 0x0d, 0xf1, 0xa0, 0x81, 0x93, 0x6d, 0xe9, |
146 | 0x00, 0x02, 0x48, 0x18, 0x49, 0x18, 0x70, 0x00, | 146 | 0x00, 0x02, 0x48, 0x18, 0x49, 0x18, 0x70, 0x00, |
147 | 0x00, 0x15, 0xf0, 0x00, 0x00, 0x04, 0xf3, 0x00, | 147 | 0x00, 0x15, 0xf0, 0x00, 0x00, 0x04, 0xf3, 0x00, |
148 | 0x00, 0x0a, 0x80, 0x01, 0x81, 0x02, 0xf2, 0x74, | 148 | 0x00, 0x0a, 0x80, 0x01, 0x81, 0x02, 0xf2, 0x74, |
149 | 0x0e, 0x54, 0xf4, 0x95, 0x48, 0x14, 0xee, 0x10, | 149 | 0x0e, 0x54, 0xf4, 0x95, 0x48, 0x14, 0xee, 0x10, |
150 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xf0, 0x74, | 150 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xf0, 0x74, |
151 | 0x0c, 0x5e, 0x80, 0xf8, 0x2a, 0x5c, 0x77, 0x12, | 151 | 0x0c, 0x5e, 0x80, 0xf8, 0x2a, 0x5c, 0x77, 0x12, |
152 | 0x2a, 0x39, 0x76, 0x82, 0x00, 0x55, 0x77, 0x11, | 152 | 0x2a, 0x39, 0x76, 0x82, 0x00, 0x55, 0x77, 0x11, |
153 | 0x2a, 0x18, 0x10, 0xe1, 0x00, 0x01, 0x80, 0xe2, | 153 | 0x2a, 0x18, 0x10, 0xe1, 0x00, 0x01, 0x80, 0xe2, |
154 | 0x00, 0x01, 0x10, 0xe1, 0x00, 0x02, 0x80, 0xe2, | 154 | 0x00, 0x01, 0x10, 0xe1, 0x00, 0x02, 0x80, 0xe2, |
155 | 0x00, 0x02, 0x76, 0xe2, 0x00, 0x03, 0x00, 0x1c, | 155 | 0x00, 0x02, 0x76, 0xe2, 0x00, 0x03, 0x00, 0x1c, |
156 | 0xf6, 0xb8, 0x56, 0xf8, 0x2a, 0x16, 0xf0, 0xf0, | 156 | 0xf6, 0xb8, 0x56, 0xf8, 0x2a, 0x16, 0xf0, 0xf0, |
157 | 0xf0, 0xf8, 0x80, 0xe2, 0x00, 0x07, 0x56, 0xf8, | 157 | 0xf0, 0xf8, 0x80, 0xe2, 0x00, 0x07, 0x56, 0xf8, |
158 | 0x2a, 0x16, 0xf1, 0xf0, 0xe8, 0xff, 0xf2, 0x80, | 158 | 0x2a, 0x16, 0xf1, 0xf0, 0xe8, 0xff, 0xf2, 0x80, |
159 | 0x80, 0xe2, 0x00, 0x06, 0x56, 0xf8, 0x2a, 0x16, | 159 | 0x80, 0xe2, 0x00, 0x06, 0x56, 0xf8, 0x2a, 0x16, |
160 | 0xf1, 0xf8, 0xe8, 0xff, 0xf2, 0x80, 0x80, 0xe2, | 160 | 0xf1, 0xf8, 0xe8, 0xff, 0xf2, 0x80, 0x80, 0xe2, |
161 | 0x00, 0x05, 0x57, 0xf8, 0x2a, 0x16, 0xe8, 0xff, | 161 | 0x00, 0x05, 0x57, 0xf8, 0x2a, 0x16, 0xe8, 0xff, |
162 | 0xf2, 0x80, 0x80, 0xe2, 0x00, 0x04, 0x56, 0xf8, | 162 | 0xf2, 0x80, 0x80, 0xe2, 0x00, 0x04, 0x56, 0xf8, |
163 | 0x27, 0x6c, 0xf0, 0xf0, 0xf0, 0xf8, 0x80, 0xe2, | 163 | 0x27, 0x6c, 0xf0, 0xf0, 0xf0, 0xf8, 0x80, 0xe2, |
164 | 0x00, 0x0b, 0x56, 0xf8, 0x27, 0x6c, 0xf1, 0xf0, | 164 | 0x00, 0x0b, 0x56, 0xf8, 0x27, 0x6c, 0xf1, 0xf0, |
165 | 0xe8, 0xff, 0xf2, 0x80, 0x80, 0xe2, 0x00, 0x0a, | 165 | 0xe8, 0xff, 0xf2, 0x80, 0x80, 0xe2, 0x00, 0x0a, |
166 | 0x56, 0xf8, 0x27, 0x6c, 0xf1, 0xf8, 0xe8, 0xff, | 166 | 0x56, 0xf8, 0x27, 0x6c, 0xf1, 0xf8, 0xe8, 0xff, |
167 | 0xf2, 0x80, 0x80, 0xe2, 0x00, 0x09, 0xe8, 0xff, | 167 | 0xf2, 0x80, 0x80, 0xe2, 0x00, 0x09, 0xe8, 0xff, |
168 | 0x57, 0xf8, 0x27, 0x6c, 0xf2, 0x80, 0x80, 0xe2, | 168 | 0x57, 0xf8, 0x27, 0x6c, 0xf2, 0x80, 0x80, 0xe2, |
169 | 0x00, 0x08, 0x56, 0xf8, 0x27, 0x6a, 0xf0, 0xf0, | 169 | 0x00, 0x08, 0x56, 0xf8, 0x27, 0x6a, 0xf0, 0xf0, |
170 | 0xf0, 0xf8, 0x80, 0xe2, 0x00, 0x0f, 0x56, 0xf8, | 170 | 0xf0, 0xf8, 0x80, 0xe2, 0x00, 0x0f, 0x56, 0xf8, |
171 | 0x27, 0x6a, 0xf1, 0xf0, 0xe8, 0xff, 0xf2, 0x80, | 171 | 0x27, 0x6a, 0xf1, 0xf0, 0xe8, 0xff, 0xf2, 0x80, |
172 | 0x80, 0xe2, 0x00, 0x0e, 0x56, 0xf8, 0x27, 0x6a, | 172 | 0x80, 0xe2, 0x00, 0x0e, 0x56, 0xf8, 0x27, 0x6a, |
173 | 0xf1, 0xf8, 0xe8, 0xff, 0xf2, 0x80, 0x80, 0xe2, | 173 | 0xf1, 0xf8, 0xe8, 0xff, 0xf2, 0x80, 0x80, 0xe2, |
174 | 0x00, 0x0d, 0x57, 0xf8, 0x27, 0x6a, 0xe8, 0xff, | 174 | 0x00, 0x0d, 0x57, 0xf8, 0x27, 0x6a, 0xe8, 0xff, |
175 | 0xf2, 0x80, 0x80, 0xe2, 0x00, 0x0c, 0x76, 0xe2, | 175 | 0xf2, 0x80, 0x80, 0xe2, 0x00, 0x0c, 0x76, 0xe2, |
176 | 0x00, 0x13, 0x00, 0x00, 0x76, 0xe2, 0x00, 0x12, | 176 | 0x00, 0x13, 0x00, 0x00, 0x76, 0xe2, 0x00, 0x12, |
177 | 0x00, 0x00, 0x6f, 0xf8, 0x2a, 0x5c, 0x0c, 0x58, | 177 | 0x00, 0x00, 0x6f, 0xf8, 0x2a, 0x5c, 0x0c, 0x58, |
178 | 0x80, 0xe2, 0x00, 0x11, 0xe8, 0xff, 0x18, 0xf8, | 178 | 0x80, 0xe2, 0x00, 0x11, 0xe8, 0xff, 0x18, 0xf8, |
179 | 0x2a, 0x5c, 0x80, 0xe2, 0x00, 0x10, 0x76, 0xe2, | 179 | 0x2a, 0x5c, 0x80, 0xe2, 0x00, 0x10, 0x76, 0xe2, |
180 | 0x00, 0x17, 0x00, 0x00, 0x76, 0xe2, 0x00, 0x16, | 180 | 0x00, 0x17, 0x00, 0x00, 0x76, 0xe2, 0x00, 0x16, |
181 | 0x00, 0x00, 0x6f, 0xf8, 0x2a, 0x9e, 0x0c, 0x58, | 181 | 0x00, 0x00, 0x6f, 0xf8, 0x2a, 0x9e, 0x0c, 0x58, |
182 | 0x80, 0xe2, 0x00, 0x15, 0xe8, 0xff, 0x18, 0xf8, | 182 | 0x80, 0xe2, 0x00, 0x15, 0xe8, 0xff, 0x18, 0xf8, |
183 | 0x2a, 0x9e, 0x80, 0xe2, 0x00, 0x14, 0x76, 0xe2, | 183 | 0x2a, 0x9e, 0x80, 0xe2, 0x00, 0x14, 0x76, 0xe2, |
184 | 0x00, 0x1b, 0x00, 0x00, 0x76, 0xe2, 0x00, 0x1a, | 184 | 0x00, 0x1b, 0x00, 0x00, 0x76, 0xe2, 0x00, 0x1a, |
185 | 0x00, 0x00, 0x76, 0xe2, 0x00, 0x19, 0x00, 0x00, | 185 | 0x00, 0x00, 0x76, 0xe2, 0x00, 0x19, 0x00, 0x00, |
186 | 0x70, 0xe2, 0x00, 0x18, 0x27, 0x6e, 0x76, 0xe2, | 186 | 0x70, 0xe2, 0x00, 0x18, 0x27, 0x6e, 0x76, 0xe2, |
187 | 0x00, 0x1f, 0x00, 0x00, 0x76, 0xe2, 0x00, 0x1e, | 187 | 0x00, 0x1f, 0x00, 0x00, 0x76, 0xe2, 0x00, 0x1e, |
188 | 0x00, 0x00, 0x76, 0xe2, 0x00, 0x1d, 0x00, 0x00, | 188 | 0x00, 0x00, 0x76, 0xe2, 0x00, 0x1d, 0x00, 0x00, |
189 | 0x76, 0xe2, 0x00, 0x1c, 0x00, 0x00, 0x76, 0xe2, | 189 | 0x76, 0xe2, 0x00, 0x1c, 0x00, 0x00, 0x76, 0xe2, |
190 | 0x00, 0x20, 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, | 190 | 0x00, 0x20, 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, |
191 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, | 191 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, |
192 | 0x10, 0xf8, 0x2a, 0x38, 0xf8, 0x45, 0x04, 0xed, | 192 | 0x10, 0xf8, 0x2a, 0x38, 0xf8, 0x45, 0x04, 0xed, |
193 | 0x77, 0x12, 0x2a, 0x18, 0x10, 0xe2, 0x00, 0x02, | 193 | 0x77, 0x12, 0x2a, 0x18, 0x10, 0xe2, 0x00, 0x02, |
194 | 0x88, 0x11, 0xf4, 0x95, 0x77, 0x10, 0x00, 0x08, | 194 | 0x88, 0x11, 0xf4, 0x95, 0x77, 0x10, 0x00, 0x08, |
195 | 0x6d, 0xe9, 0xff, 0xdf, 0xf6, 0xa9, 0xf8, 0x20, | 195 | 0x6d, 0xe9, 0xff, 0xdf, 0xf6, 0xa9, 0xf8, 0x20, |
196 | 0x04, 0x75, 0xf0, 0x73, 0x04, 0x7d, 0xf0, 0x10, | 196 | 0x04, 0x75, 0xf0, 0x73, 0x04, 0x7d, 0xf0, 0x10, |
197 | 0x00, 0x21, 0xf0, 0x00, 0x1a, 0x83, 0x48, 0x08, | 197 | 0x00, 0x21, 0xf0, 0x00, 0x1a, 0x83, 0x48, 0x08, |
198 | 0x7e, 0xf8, 0x00, 0x08, 0xf4, 0xe2, 0xf0, 0x74, | 198 | 0x7e, 0xf8, 0x00, 0x08, 0xf4, 0xe2, 0xf0, 0x74, |
199 | 0x03, 0x0a, 0xf0, 0x73, 0x04, 0xea, 0x48, 0x12, | 199 | 0x03, 0x0a, 0xf0, 0x73, 0x04, 0xea, 0x48, 0x12, |
200 | 0xf2, 0x74, 0x03, 0x23, 0xf0, 0x00, 0x00, 0x04, | 200 | 0xf2, 0x74, 0x03, 0x23, 0xf0, 0x00, 0x00, 0x04, |
201 | 0xf2, 0x74, 0x03, 0x36, 0xf4, 0x95, 0xe8, 0x00, | 201 | 0xf2, 0x74, 0x03, 0x36, 0xf4, 0x95, 0xe8, 0x00, |
202 | 0xf0, 0x73, 0x04, 0xea, 0x77, 0x11, 0x2a, 0x18, | 202 | 0xf0, 0x73, 0x04, 0xea, 0x77, 0x11, 0x2a, 0x18, |
203 | 0xe8, 0xff, 0x6f, 0xe1, 0x00, 0x04, 0x0d, 0x48, | 203 | 0xe8, 0xff, 0x6f, 0xe1, 0x00, 0x04, 0x0d, 0x48, |
204 | 0x18, 0xe1, 0x00, 0x05, 0xf2, 0x74, 0x09, 0x69, | 204 | 0x18, 0xe1, 0x00, 0x05, 0xf2, 0x74, 0x09, 0x69, |
205 | 0xf4, 0x95, 0xf2, 0xa0, 0xf0, 0x74, 0x03, 0x36, | 205 | 0xf4, 0x95, 0xf2, 0xa0, 0xf0, 0x74, 0x03, 0x36, |
206 | 0xf0, 0x73, 0x04, 0xea, 0x77, 0x11, 0x2a, 0x18, | 206 | 0xf0, 0x73, 0x04, 0xea, 0x77, 0x11, 0x2a, 0x18, |
207 | 0xe8, 0xff, 0x6f, 0xe1, 0x00, 0x04, 0x0d, 0x48, | 207 | 0xe8, 0xff, 0x6f, 0xe1, 0x00, 0x04, 0x0d, 0x48, |
208 | 0x18, 0xe1, 0x00, 0x05, 0xf2, 0x74, 0x09, 0x41, | 208 | 0x18, 0xe1, 0x00, 0x05, 0xf2, 0x74, 0x09, 0x41, |
209 | 0xf4, 0x95, 0xf2, 0xa0, 0xf0, 0x74, 0x03, 0x36, | 209 | 0xf4, 0x95, 0xf2, 0xa0, 0xf0, 0x74, 0x03, 0x36, |
210 | 0xf0, 0x73, 0x04, 0xea, 0xf0, 0x74, 0x03, 0x57, | 210 | 0xf0, 0x73, 0x04, 0xea, 0xf0, 0x74, 0x03, 0x57, |
211 | 0xf0, 0x73, 0x04, 0xea, 0x10, 0xf8, 0x2a, 0x1c, | 211 | 0xf0, 0x73, 0x04, 0xea, 0x10, 0xf8, 0x2a, 0x1c, |
212 | 0xf0, 0x74, 0x12, 0xa4, 0xf2, 0x74, 0x03, 0x36, | 212 | 0xf0, 0x74, 0x12, 0xa4, 0xf2, 0x74, 0x03, 0x36, |
213 | 0xf4, 0x95, 0xe8, 0x00, 0xf0, 0x73, 0x04, 0xea, | 213 | 0xf4, 0x95, 0xe8, 0x00, 0xf0, 0x73, 0x04, 0xea, |
214 | 0x48, 0x12, 0xf2, 0x74, 0x03, 0x80, 0xf0, 0x00, | 214 | 0x48, 0x12, 0xf2, 0x74, 0x03, 0x80, 0xf0, 0x00, |
215 | 0x00, 0x04, 0xf2, 0x74, 0x03, 0x36, 0xf4, 0x95, | 215 | 0x00, 0x04, 0xf2, 0x74, 0x03, 0x36, 0xf4, 0x95, |
216 | 0xe8, 0x00, 0xf0, 0x73, 0x04, 0xea, 0x10, 0xf8, | 216 | 0xe8, 0x00, 0xf0, 0x73, 0x04, 0xea, 0x10, 0xf8, |
217 | 0x2a, 0x1c, 0xf0, 0x74, 0x12, 0xc5, 0xf2, 0x74, | 217 | 0x2a, 0x1c, 0xf0, 0x74, 0x12, 0xc5, 0xf2, 0x74, |
218 | 0x03, 0x36, 0xf4, 0x95, 0xe8, 0x00, 0xf0, 0x73, | 218 | 0x03, 0x36, 0xf4, 0x95, 0xe8, 0x00, 0xf0, 0x73, |
219 | 0x04, 0xea, 0x77, 0x11, 0x2a, 0x18, 0xe8, 0xff, | 219 | 0x04, 0xea, 0x77, 0x11, 0x2a, 0x18, 0xe8, 0xff, |
220 | 0x6f, 0xe1, 0x00, 0x06, 0x0d, 0x48, 0x18, 0xe1, | 220 | 0x6f, 0xe1, 0x00, 0x06, 0x0d, 0x48, 0x18, 0xe1, |
221 | 0x00, 0x07, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 221 | 0x00, 0x07, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
222 | 0xf2, 0xa0, 0x70, 0x00, 0x00, 0x12, 0x80, 0x01, | 222 | 0xf2, 0xa0, 0x70, 0x00, 0x00, 0x12, 0x80, 0x01, |
223 | 0x10, 0xe1, 0x00, 0x04, 0xf0, 0x74, 0x0e, 0x7a, | 223 | 0x10, 0xe1, 0x00, 0x04, 0xf0, 0x74, 0x0e, 0x7a, |
224 | 0xf2, 0x74, 0x03, 0x36, 0xf4, 0x95, 0xe8, 0x00, | 224 | 0xf2, 0x74, 0x03, 0x36, 0xf4, 0x95, 0xe8, 0x00, |
225 | 0xf0, 0x73, 0x04, 0xea, 0xf0, 0x74, 0x03, 0xbc, | 225 | 0xf0, 0x73, 0x04, 0xea, 0xf0, 0x74, 0x03, 0xbc, |
226 | 0x76, 0xf8, 0x2a, 0x38, 0x00, 0x00, 0xee, 0x02, | 226 | 0x76, 0xf8, 0x2a, 0x38, 0x00, 0x00, 0xee, 0x02, |
227 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x77, 0x11, | 227 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x77, 0x11, |
228 | 0x2a, 0x39, 0x76, 0x81, 0x00, 0x55, 0x77, 0x12, | 228 | 0x2a, 0x39, 0x76, 0x81, 0x00, 0x55, 0x77, 0x12, |
229 | 0x2a, 0x18, 0x10, 0xe2, 0x00, 0x01, 0x80, 0xe1, | 229 | 0x2a, 0x18, 0x10, 0xe2, 0x00, 0x01, 0x80, 0xe1, |
230 | 0x00, 0x01, 0x10, 0xe2, 0x00, 0x02, 0x80, 0xe1, | 230 | 0x00, 0x01, 0x10, 0xe2, 0x00, 0x02, 0x80, 0xe1, |
231 | 0x00, 0x02, 0x76, 0xe1, 0x00, 0x03, 0x00, 0x09, | 231 | 0x00, 0x02, 0x76, 0xe1, 0x00, 0x03, 0x00, 0x09, |
232 | 0x48, 0x11, 0xf0, 0x00, 0x00, 0x04, 0x88, 0x12, | 232 | 0x48, 0x11, 0xf0, 0x00, 0x00, 0x04, 0x88, 0x12, |
233 | 0xf4, 0x95, 0x77, 0x13, 0x2a, 0x86, 0xe9, 0x00, | 233 | 0xf4, 0x95, 0x77, 0x13, 0x2a, 0x86, 0xe9, 0x00, |
234 | 0xe5, 0x98, 0xf3, 0x00, 0x00, 0x01, 0xf6, 0xb8, | 234 | 0xe5, 0x98, 0xf3, 0x00, 0x00, 0x01, 0xf6, 0xb8, |
235 | 0x48, 0x0b, 0x08, 0xf8, 0x2a, 0x3c, 0xf8, 0x43, | 235 | 0x48, 0x0b, 0x08, 0xf8, 0x2a, 0x3c, 0xf8, 0x43, |
236 | 0x05, 0x0a, 0x76, 0x82, 0x00, 0xaa, 0xf0, 0x74, | 236 | 0x05, 0x0a, 0x76, 0x82, 0x00, 0xaa, 0xf0, 0x74, |
237 | 0x02, 0x98, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 237 | 0x02, 0x98, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
238 | 0x77, 0x11, 0x2a, 0x39, 0x76, 0x81, 0x00, 0x55, | 238 | 0x77, 0x11, 0x2a, 0x39, 0x76, 0x81, 0x00, 0x55, |
239 | 0x77, 0x13, 0x2a, 0x18, 0x10, 0xe3, 0x00, 0x01, | 239 | 0x77, 0x13, 0x2a, 0x18, 0x10, 0xe3, 0x00, 0x01, |
240 | 0x80, 0xe1, 0x00, 0x01, 0x10, 0xe3, 0x00, 0x02, | 240 | 0x80, 0xe1, 0x00, 0x01, 0x10, 0xe3, 0x00, 0x02, |
241 | 0x80, 0xe1, 0x00, 0x02, 0x13, 0xe3, 0x00, 0x03, | 241 | 0x80, 0xe1, 0x00, 0x02, 0x13, 0xe3, 0x00, 0x03, |
242 | 0x81, 0xe1, 0x00, 0x03, 0x48, 0x11, 0x77, 0x11, | 242 | 0x81, 0xe1, 0x00, 0x03, 0x48, 0x11, 0x77, 0x11, |
243 | 0x00, 0x00, 0xf8, 0x4d, 0x05, 0x44, 0xf0, 0x00, | 243 | 0x00, 0x00, 0xf8, 0x4d, 0x05, 0x44, 0xf0, 0x00, |
244 | 0x00, 0x04, 0x88, 0x12, 0x48, 0x13, 0xf0, 0x00, | 244 | 0x00, 0x04, 0x88, 0x12, 0x48, 0x13, 0xf0, 0x00, |
245 | 0x00, 0x04, 0x88, 0x13, 0xf4, 0x95, 0xf4, 0x95, | 245 | 0x00, 0x04, 0x88, 0x13, 0xf4, 0x95, 0xf4, 0x95, |
246 | 0xe5, 0x98, 0x6d, 0x91, 0xf6, 0xb8, 0x48, 0x11, | 246 | 0xe5, 0x98, 0x6d, 0x91, 0xf6, 0xb8, 0x48, 0x11, |
247 | 0x08, 0xf8, 0x2a, 0x3c, 0xf8, 0x43, 0x05, 0x3a, | 247 | 0x08, 0xf8, 0x2a, 0x3c, 0xf8, 0x43, 0x05, 0x3a, |
248 | 0xf0, 0x20, 0x2a, 0x39, 0x49, 0x11, 0xf5, 0x00, | 248 | 0xf0, 0x20, 0x2a, 0x39, 0x49, 0x11, 0xf5, 0x00, |
249 | 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x76, 0xe1, | 249 | 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x76, 0xe1, |
250 | 0x00, 0x04, 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, | 250 | 0x00, 0x04, 0x00, 0xaa, 0xf0, 0x74, 0x02, 0x98, |
251 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x77, 0x11, | 251 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x77, 0x11, |
252 | 0x2a, 0x39, 0x76, 0x81, 0x00, 0x55, 0x77, 0x12, | 252 | 0x2a, 0x39, 0x76, 0x81, 0x00, 0x55, 0x77, 0x12, |
253 | 0x2a, 0x18, 0x10, 0xe2, 0x00, 0x01, 0x80, 0xe1, | 253 | 0x2a, 0x18, 0x10, 0xe2, 0x00, 0x01, 0x80, 0xe1, |
254 | 0x00, 0x01, 0x10, 0xe2, 0x00, 0x02, 0x80, 0xe1, | 254 | 0x00, 0x01, 0x10, 0xe2, 0x00, 0x02, 0x80, 0xe1, |
255 | 0x00, 0x02, 0x76, 0xe1, 0x00, 0x03, 0x00, 0x0c, | 255 | 0x00, 0x02, 0x76, 0xe1, 0x00, 0x03, 0x00, 0x0c, |
256 | 0x48, 0x11, 0xf0, 0x00, 0x00, 0x04, 0x88, 0x12, | 256 | 0x48, 0x11, 0xf0, 0x00, 0x00, 0x04, 0x88, 0x12, |
257 | 0xf4, 0x95, 0x77, 0x13, 0x2a, 0x7a, 0xe9, 0x00, | 257 | 0xf4, 0x95, 0x77, 0x13, 0x2a, 0x7a, 0xe9, 0x00, |
258 | 0xe5, 0x98, 0xf3, 0x00, 0x00, 0x01, 0xf6, 0xb8, | 258 | 0xe5, 0x98, 0xf3, 0x00, 0x00, 0x01, 0xf6, 0xb8, |
259 | 0x48, 0x0b, 0x08, 0xf8, 0x2a, 0x3c, 0xf8, 0x43, | 259 | 0x48, 0x0b, 0x08, 0xf8, 0x2a, 0x3c, 0xf8, 0x43, |
260 | 0x05, 0x6a, 0x76, 0x82, 0x00, 0xaa, 0xf0, 0x74, | 260 | 0x05, 0x6a, 0x76, 0x82, 0x00, 0xaa, 0xf0, 0x74, |
261 | 0x02, 0x98, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 261 | 0x02, 0x98, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
262 | 0x77, 0x11, 0x2a, 0x39, 0x76, 0x81, 0x00, 0x55, | 262 | 0x77, 0x11, 0x2a, 0x39, 0x76, 0x81, 0x00, 0x55, |
263 | 0x77, 0x12, 0x2a, 0x18, 0x10, 0xe2, 0x00, 0x01, | 263 | 0x77, 0x12, 0x2a, 0x18, 0x10, 0xe2, 0x00, 0x01, |
264 | 0x80, 0xe1, 0x00, 0x01, 0x10, 0xe2, 0x00, 0x02, | 264 | 0x80, 0xe1, 0x00, 0x01, 0x10, 0xe2, 0x00, 0x02, |
265 | 0x80, 0xe1, 0x00, 0x02, 0x76, 0xe1, 0x00, 0x03, | 265 | 0x80, 0xe1, 0x00, 0x02, 0x76, 0xe1, 0x00, 0x03, |
266 | 0x00, 0x19, 0x48, 0x11, 0xf0, 0x00, 0x00, 0x04, | 266 | 0x00, 0x19, 0x48, 0x11, 0xf0, 0x00, 0x00, 0x04, |
267 | 0x88, 0x12, 0xf4, 0x95, 0x77, 0x13, 0x2a, 0x5d, | 267 | 0x88, 0x12, 0xf4, 0x95, 0x77, 0x13, 0x2a, 0x5d, |
268 | 0xe9, 0x00, 0xe5, 0x98, 0xf3, 0x00, 0x00, 0x01, | 268 | 0xe9, 0x00, 0xe5, 0x98, 0xf3, 0x00, 0x00, 0x01, |
269 | 0xf6, 0xb8, 0x48, 0x0b, 0x08, 0xf8, 0x2a, 0x3c, | 269 | 0xf6, 0xb8, 0x48, 0x0b, 0x08, 0xf8, 0x2a, 0x3c, |
270 | 0xf8, 0x43, 0x05, 0x93, 0x76, 0x82, 0x00, 0xaa, | 270 | 0xf8, 0x43, 0x05, 0x93, 0x76, 0x82, 0x00, 0xaa, |
271 | 0xf0, 0x74, 0x02, 0x98, 0x8a, 0x11, 0xfc, 0x00, | 271 | 0xf0, 0x74, 0x02, 0x98, 0x8a, 0x11, 0xfc, 0x00, |
272 | 0x4a, 0x11, 0x88, 0x11, 0x10, 0xf8, 0x2a, 0x38, | 272 | 0x4a, 0x11, 0x88, 0x11, 0x10, 0xf8, 0x2a, 0x38, |
273 | 0xf8, 0x44, 0x05, 0xe3, 0x10, 0xf8, 0x2a, 0xa1, | 273 | 0xf8, 0x44, 0x05, 0xe3, 0x10, 0xf8, 0x2a, 0xa1, |
274 | 0xf8, 0x44, 0x05, 0xba, 0x6c, 0xe1, 0xff, 0x56, | 274 | 0xf8, 0x44, 0x05, 0xba, 0x6c, 0xe1, 0xff, 0x56, |
275 | 0x05, 0xe3, 0x72, 0x12, 0x2a, 0xa1, 0xf4, 0x95, | 275 | 0x05, 0xe3, 0x72, 0x12, 0x2a, 0xa1, 0xf4, 0x95, |
276 | 0x70, 0xe2, 0x2a, 0x18, 0x00, 0x11, 0x6b, 0xf8, | 276 | 0x70, 0xe2, 0x2a, 0x18, 0x00, 0x11, 0x6b, 0xf8, |
277 | 0x2a, 0xa1, 0x00, 0x01, 0xf0, 0x73, 0x05, 0xe3, | 277 | 0x2a, 0xa1, 0x00, 0x01, 0xf0, 0x73, 0x05, 0xe3, |
278 | 0x72, 0x12, 0x2a, 0xa1, 0xf4, 0x95, 0x70, 0xe2, | 278 | 0x72, 0x12, 0x2a, 0xa1, 0xf4, 0x95, 0x70, 0xe2, |
279 | 0x2a, 0x18, 0x00, 0x11, 0x10, 0xf8, 0x2a, 0xa1, | 279 | 0x2a, 0x18, 0x00, 0x11, 0x10, 0xf8, 0x2a, 0xa1, |
280 | 0xf0, 0x00, 0x00, 0x01, 0x88, 0x12, 0xf4, 0x95, | 280 | 0xf0, 0x00, 0x00, 0x01, 0x88, 0x12, 0xf4, 0x95, |
281 | 0xf4, 0x95, 0x6e, 0xe2, 0xff, 0xfc, 0x05, 0xd1, | 281 | 0xf4, 0x95, 0x6e, 0xe2, 0xff, 0xfc, 0x05, 0xd1, |
282 | 0x73, 0x12, 0x2a, 0xa1, 0x48, 0x11, 0xf0, 0x00, | 282 | 0x73, 0x12, 0x2a, 0xa1, 0x48, 0x11, 0xf0, 0x00, |
283 | 0x00, 0x05, 0x80, 0xf8, 0x2a, 0xa2, 0x10, 0xf8, | 283 | 0x00, 0x05, 0x80, 0xf8, 0x2a, 0xa2, 0x10, 0xf8, |
284 | 0x2a, 0xa1, 0x08, 0xf8, 0x2a, 0xa2, 0xf8, 0x44, | 284 | 0x2a, 0xa1, 0x08, 0xf8, 0x2a, 0xa2, 0xf8, 0x44, |
285 | 0x05, 0xe3, 0x6c, 0xe1, 0xff, 0xab, 0x05, 0xdd, | 285 | 0x05, 0xe3, 0x6c, 0xe1, 0xff, 0xab, 0x05, 0xdd, |
286 | 0x76, 0xf8, 0x2a, 0x38, 0x00, 0x01, 0x76, 0xf8, | 286 | 0x76, 0xf8, 0x2a, 0x38, 0x00, 0x01, 0x76, 0xf8, |
287 | 0x2a, 0xa1, 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xa2, | 287 | 0x2a, 0xa1, 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xa2, |
288 | 0x00, 0x00, 0x8a, 0x11, 0xfc, 0x00, 0xf4, 0x95, | 288 | 0x00, 0x00, 0x8a, 0x11, 0xfc, 0x00, 0xf4, 0x95, |
289 | 0x4a, 0x08, 0x4a, 0x09, 0x4a, 0x0a, 0x4a, 0x0b, | 289 | 0x4a, 0x08, 0x4a, 0x09, 0x4a, 0x0a, 0x4a, 0x0b, |
290 | 0x4a, 0x0c, 0x4a, 0x0d, 0x4a, 0x10, 0x4a, 0x11, | 290 | 0x4a, 0x0c, 0x4a, 0x0d, 0x4a, 0x10, 0x4a, 0x11, |
291 | 0x4a, 0x12, 0x4a, 0x13, 0x4a, 0x14, 0x4a, 0x15, | 291 | 0x4a, 0x12, 0x4a, 0x13, 0x4a, 0x14, 0x4a, 0x15, |
292 | 0x4a, 0x16, 0x4a, 0x17, 0x4a, 0x17, 0x4a, 0x19, | 292 | 0x4a, 0x16, 0x4a, 0x17, 0x4a, 0x17, 0x4a, 0x19, |
293 | 0x4a, 0x0e, 0x4a, 0x06, 0x4a, 0x07, 0x4a, 0x1a, | 293 | 0x4a, 0x0e, 0x4a, 0x06, 0x4a, 0x07, 0x4a, 0x1a, |
294 | 0x4a, 0x1d, 0x4a, 0x1b, 0x4a, 0x1c, 0x68, 0xf8, | 294 | 0x4a, 0x1d, 0x4a, 0x1b, 0x4a, 0x1c, 0x68, 0xf8, |
295 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, | 295 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, |
296 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, | 296 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, |
297 | 0x48, 0x18, 0x68, 0xf8, 0x00, 0x18, 0xff, 0xfe, | 297 | 0x48, 0x18, 0x68, 0xf8, 0x00, 0x18, 0xff, 0xfe, |
298 | 0xf4, 0x95, 0xf4, 0x95, 0x4a, 0x08, 0xee, 0xff, | 298 | 0xf4, 0x95, 0xf4, 0x95, 0x4a, 0x08, 0xee, 0xff, |
299 | 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, 0x18, 0x04, | 299 | 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, 0x18, 0x04, |
300 | 0xf0, 0x74, 0x05, 0xa2, 0xee, 0x01, 0x8a, 0x18, | 300 | 0xf0, 0x74, 0x05, 0xa2, 0xee, 0x01, 0x8a, 0x18, |
301 | 0xf4, 0x95, 0x8a, 0x1c, 0x8a, 0x1b, 0x8a, 0x1d, | 301 | 0xf4, 0x95, 0x8a, 0x1c, 0x8a, 0x1b, 0x8a, 0x1d, |
302 | 0x8a, 0x1a, 0x8a, 0x07, 0x8a, 0x06, 0x8a, 0x0e, | 302 | 0x8a, 0x1a, 0x8a, 0x07, 0x8a, 0x06, 0x8a, 0x0e, |
303 | 0x8a, 0x19, 0x8a, 0x17, 0x8a, 0x17, 0x8a, 0x16, | 303 | 0x8a, 0x19, 0x8a, 0x17, 0x8a, 0x17, 0x8a, 0x16, |
304 | 0x8a, 0x15, 0x8a, 0x14, 0x8a, 0x13, 0x8a, 0x12, | 304 | 0x8a, 0x15, 0x8a, 0x14, 0x8a, 0x13, 0x8a, 0x12, |
305 | 0x8a, 0x11, 0x8a, 0x10, 0x8a, 0x0d, 0x8a, 0x0c, | 305 | 0x8a, 0x11, 0x8a, 0x10, 0x8a, 0x0d, 0x8a, 0x0c, |
306 | 0x8a, 0x0b, 0x8a, 0x0a, 0x8a, 0x09, 0x8a, 0x08, | 306 | 0x8a, 0x0b, 0x8a, 0x0a, 0x8a, 0x09, 0x8a, 0x08, |
307 | 0xf4, 0xeb, 0xee, 0xfd, 0x76, 0xf8, 0x2a, 0x38, | 307 | 0xf4, 0xeb, 0xee, 0xfd, 0x76, 0xf8, 0x2a, 0x38, |
308 | 0x00, 0x00, 0x76, 0xf8, 0x2a, 0x5a, 0x00, 0x00, | 308 | 0x00, 0x00, 0x76, 0xf8, 0x2a, 0x5a, 0x00, 0x00, |
309 | 0xe8, 0x01, 0x4e, 0x00, 0xfb, 0x80, 0x17, 0xd6, | 309 | 0xe8, 0x01, 0x4e, 0x00, 0xfb, 0x80, 0x17, 0xd6, |
310 | 0xf4, 0x95, 0xe8, 0x01, 0x80, 0xf8, 0x2a, 0x5b, | 310 | 0xf4, 0x95, 0xe8, 0x01, 0x80, 0xf8, 0x2a, 0x5b, |
311 | 0x76, 0x00, 0x2a, 0x8f, 0xf9, 0x80, 0x16, 0xaa, | 311 | 0x76, 0x00, 0x2a, 0x8f, 0xf9, 0x80, 0x16, 0xaa, |
312 | 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, 0x17, 0x5c, | 312 | 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, 0x17, 0x5c, |
313 | 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, 0x17, 0x6f, | 313 | 0x10, 0xf8, 0x2a, 0x5b, 0xf9, 0x80, 0x17, 0x6f, |
314 | 0xfb, 0x80, 0x16, 0x66, 0xf4, 0x95, 0xe8, 0x1a, | 314 | 0xfb, 0x80, 0x16, 0x66, 0xf4, 0x95, 0xe8, 0x1a, |
315 | 0xfb, 0x80, 0x16, 0x87, 0xf4, 0x95, 0xe8, 0x1a, | 315 | 0xfb, 0x80, 0x16, 0x87, 0xf4, 0x95, 0xe8, 0x1a, |
316 | 0xfb, 0x80, 0x16, 0x66, 0xf4, 0x95, 0xe8, 0x1b, | 316 | 0xfb, 0x80, 0x16, 0x66, 0xf4, 0x95, 0xe8, 0x1b, |
317 | 0xfb, 0x80, 0x16, 0x87, 0xf4, 0x95, 0xe8, 0x1b, | 317 | 0xfb, 0x80, 0x16, 0x87, 0xf4, 0x95, 0xe8, 0x1b, |
318 | 0xee, 0x03, 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, | 318 | 0xee, 0x03, 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, |
319 | 0x13, 0x02, 0x88, 0x11, 0xe8, 0x00, 0xf8, 0x4d, | 319 | 0x13, 0x02, 0x88, 0x11, 0xe8, 0x00, 0xf8, 0x4d, |
320 | 0x06, 0x6a, 0xf3, 0x10, 0x00, 0x01, 0x89, 0x1a, | 320 | 0x06, 0x6a, 0xf3, 0x10, 0x00, 0x01, 0x89, 0x1a, |
321 | 0xf4, 0x95, 0xf0, 0x72, 0x06, 0x69, 0x1c, 0x91, | 321 | 0xf4, 0x95, 0xf0, 0x72, 0x06, 0x69, 0x1c, 0x91, |
322 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x88, 0x11, | 322 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x88, 0x11, |
323 | 0x12, 0x03, 0x11, 0x02, 0xf8, 0x45, 0x06, 0x79, | 323 | 0x12, 0x03, 0x11, 0x02, 0xf8, 0x45, 0x06, 0x79, |
324 | 0xf0, 0x10, 0x00, 0x01, 0x88, 0x1a, 0xf4, 0x95, | 324 | 0xf0, 0x10, 0x00, 0x01, 0x88, 0x1a, 0xf4, 0x95, |
325 | 0xf0, 0x72, 0x06, 0x78, 0x81, 0x91, 0x8a, 0x11, | 325 | 0xf0, 0x72, 0x06, 0x78, 0x81, 0x91, 0x8a, 0x11, |
326 | 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, | 326 | 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, |
327 | 0x00, 0x11, 0x11, 0x03, 0x61, 0xf8, 0x00, 0x11, | 327 | 0x00, 0x11, 0x11, 0x03, 0x61, 0xf8, 0x00, 0x11, |
328 | 0x00, 0x01, 0xf8, 0x30, 0x06, 0x91, 0xf6, 0xb8, | 328 | 0x00, 0x01, 0xf8, 0x30, 0x06, 0x91, 0xf6, 0xb8, |
329 | 0x6f, 0xf8, 0x00, 0x11, 0x0c, 0x1f, 0x88, 0x11, | 329 | 0x6f, 0xf8, 0x00, 0x11, 0x0c, 0x1f, 0x88, 0x11, |
330 | 0xf3, 0xe8, 0xe8, 0xff, 0x18, 0x81, 0xf1, 0xa0, | 330 | 0xf3, 0xe8, 0xe8, 0xff, 0x18, 0x81, 0xf1, 0xa0, |
331 | 0x81, 0x81, 0xf0, 0x73, 0x06, 0x9d, 0xf6, 0xb8, | 331 | 0x81, 0x81, 0xf0, 0x73, 0x06, 0x9d, 0xf6, 0xb8, |
332 | 0x6f, 0xf8, 0x00, 0x11, 0x0c, 0x1f, 0x88, 0x11, | 332 | 0x6f, 0xf8, 0x00, 0x11, 0x0c, 0x1f, 0x88, 0x11, |
333 | 0xf3, 0x30, 0x00, 0xff, 0xf0, 0x20, 0xff, 0x00, | 333 | 0xf3, 0x30, 0x00, 0xff, 0xf0, 0x20, 0xff, 0x00, |
334 | 0x18, 0x81, 0xf1, 0xa0, 0x81, 0x81, 0x8a, 0x11, | 334 | 0x18, 0x81, 0xf1, 0xa0, 0x81, 0x81, 0x8a, 0x11, |
335 | 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, 0x11, 0x02, | 335 | 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, 0x11, 0x02, |
336 | 0x61, 0xf8, 0x00, 0x0b, 0x00, 0x01, 0xf8, 0x20, | 336 | 0x61, 0xf8, 0x00, 0x0b, 0x00, 0x01, 0xf8, 0x20, |
337 | 0x06, 0xb1, 0x49, 0x0b, 0xf6, 0x1f, 0x88, 0x11, | 337 | 0x06, 0xb1, 0x49, 0x0b, 0xf6, 0x1f, 0x88, 0x11, |
338 | 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, 0xf2, 0x73, | 338 | 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, 0xf2, 0x73, |
339 | 0x06, 0xb8, 0xf0, 0x30, 0x00, 0xff, 0x49, 0x0b, | 339 | 0x06, 0xb8, 0xf0, 0x30, 0x00, 0xff, 0x49, 0x0b, |
340 | 0xf6, 0x1f, 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, | 340 | 0xf6, 0x1f, 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, |
341 | 0x12, 0x81, 0xf4, 0x78, 0x8a, 0x11, 0xfc, 0x00, | 341 | 0x12, 0x81, 0xf4, 0x78, 0x8a, 0x11, 0xfc, 0x00, |
342 | 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, 0x00, 0x12, | 342 | 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, 0x00, 0x12, |
343 | 0x13, 0x03, 0x88, 0x11, 0xe8, 0x00, 0xf8, 0x4d, | 343 | 0x13, 0x03, 0x88, 0x11, 0xe8, 0x00, 0xf8, 0x4d, |
344 | 0x06, 0xcc, 0xf3, 0x10, 0x00, 0x01, 0x89, 0x1a, | 344 | 0x06, 0xcc, 0xf3, 0x10, 0x00, 0x01, 0x89, 0x1a, |
345 | 0xf4, 0x95, 0xf0, 0x72, 0x06, 0xcb, 0x11, 0x92, | 345 | 0xf4, 0x95, 0xf0, 0x72, 0x06, 0xcb, 0x11, 0x92, |
346 | 0xf2, 0xc0, 0x81, 0x91, 0x8a, 0x11, 0xfc, 0x00, | 346 | 0xf2, 0xc0, 0x81, 0x91, 0x8a, 0x11, 0xfc, 0x00, |
347 | 0x88, 0x12, 0x12, 0x02, 0x71, 0x01, 0x00, 0x13, | 347 | 0x88, 0x12, 0x12, 0x02, 0x71, 0x01, 0x00, 0x13, |
348 | 0xf8, 0x45, 0x06, 0xdb, 0xf0, 0x10, 0x00, 0x01, | 348 | 0xf8, 0x45, 0x06, 0xdb, 0xf0, 0x10, 0x00, 0x01, |
349 | 0x88, 0x1a, 0xf4, 0x95, 0xf0, 0x72, 0x06, 0xda, | 349 | 0x88, 0x1a, 0xf4, 0x95, 0xf0, 0x72, 0x06, 0xda, |
350 | 0xe5, 0x98, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, | 350 | 0xe5, 0x98, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, |
351 | 0x88, 0x11, 0x11, 0x04, 0x10, 0x06, 0x71, 0x05, | 351 | 0x88, 0x11, 0x11, 0x04, 0x10, 0x06, 0x71, 0x05, |
352 | 0x00, 0x12, 0x61, 0xf8, 0x00, 0x12, 0x00, 0x01, | 352 | 0x00, 0x12, 0x61, 0xf8, 0x00, 0x12, 0x00, 0x01, |
353 | 0xf8, 0x20, 0x06, 0xea, 0xf0, 0x00, 0x00, 0x01, | 353 | 0xf8, 0x20, 0x06, 0xea, 0xf0, 0x00, 0x00, 0x01, |
354 | 0xf6, 0xb8, 0xf0, 0x00, 0x00, 0x01, 0x6f, 0xf8, | 354 | 0xf6, 0xb8, 0xf0, 0x00, 0x00, 0x01, 0x6f, 0xf8, |
355 | 0x00, 0x12, 0x0f, 0x1f, 0x48, 0x08, 0x81, 0x00, | 355 | 0x00, 0x12, 0x0f, 0x1f, 0x48, 0x08, 0x81, 0x00, |
356 | 0xf4, 0x7f, 0x80, 0x01, 0xf2, 0x74, 0x06, 0xba, | 356 | 0xf4, 0x7f, 0x80, 0x01, 0xf2, 0x74, 0x06, 0xba, |
357 | 0xf4, 0x95, 0x48, 0x11, 0xee, 0x02, 0x8a, 0x11, | 357 | 0xf4, 0x95, 0x48, 0x11, 0xee, 0x02, 0x8a, 0x11, |
358 | 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, 0x88, 0x12, | 358 | 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, 0x88, 0x12, |
359 | 0x11, 0x04, 0x10, 0x06, 0x71, 0x05, 0x00, 0x13, | 359 | 0x11, 0x04, 0x10, 0x06, 0x71, 0x05, 0x00, 0x13, |
360 | 0x61, 0xf8, 0x00, 0x13, 0x00, 0x01, 0xf8, 0x20, | 360 | 0x61, 0xf8, 0x00, 0x13, 0x00, 0x01, 0xf8, 0x20, |
361 | 0x07, 0x09, 0xf0, 0x00, 0x00, 0x01, 0xf0, 0x00, | 361 | 0x07, 0x09, 0xf0, 0x00, 0x00, 0x01, 0xf0, 0x00, |
362 | 0x00, 0x01, 0x88, 0x11, 0xf6, 0xb8, 0x6f, 0xf8, | 362 | 0x00, 0x01, 0x88, 0x11, 0xf6, 0xb8, 0x6f, 0xf8, |
363 | 0x00, 0x13, 0x0f, 0x1f, 0x81, 0x00, 0x48, 0x11, | 363 | 0x00, 0x13, 0x0f, 0x1f, 0x81, 0x00, 0x48, 0x11, |
364 | 0xf4, 0x7f, 0x80, 0x01, 0xf2, 0x74, 0x06, 0xce, | 364 | 0xf4, 0x7f, 0x80, 0x01, 0xf2, 0x74, 0x06, 0xce, |
365 | 0xf4, 0x95, 0x48, 0x12, 0x48, 0x11, 0xf0, 0x30, | 365 | 0xf4, 0x95, 0x48, 0x12, 0x48, 0x11, 0xf0, 0x30, |
366 | 0xff, 0xfe, 0xee, 0x02, 0x8a, 0x11, 0xfc, 0x00, | 366 | 0xff, 0xfe, 0xee, 0x02, 0x8a, 0x11, 0xfc, 0x00, |
367 | 0x4a, 0x11, 0x4a, 0x16, 0x4a, 0x17, 0xee, 0xfc, | 367 | 0x4a, 0x11, 0x4a, 0x16, 0x4a, 0x17, 0xee, 0xfc, |
368 | 0xf4, 0x95, 0x80, 0x02, 0x71, 0x08, 0x00, 0x16, | 368 | 0xf4, 0x95, 0x80, 0x02, 0x71, 0x08, 0x00, 0x16, |
369 | 0x10, 0x09, 0x71, 0x0b, 0x00, 0x17, 0x80, 0x03, | 369 | 0x10, 0x09, 0x71, 0x0b, 0x00, 0x17, 0x80, 0x03, |
370 | 0x71, 0x0a, 0x00, 0x11, 0x48, 0x17, 0xf8, 0x45, | 370 | 0x71, 0x0a, 0x00, 0x11, 0x48, 0x17, 0xf8, 0x45, |
371 | 0x07, 0x3f, 0x70, 0x00, 0x00, 0x11, 0x10, 0x03, | 371 | 0x07, 0x3f, 0x70, 0x00, 0x00, 0x11, 0x10, 0x03, |
372 | 0xf0, 0x74, 0x06, 0x9f, 0x80, 0x01, 0x70, 0x00, | 372 | 0xf0, 0x74, 0x06, 0x9f, 0x80, 0x01, 0x70, 0x00, |
373 | 0x00, 0x16, 0x10, 0x02, 0xf0, 0x74, 0x06, 0x7b, | 373 | 0x00, 0x16, 0x10, 0x02, 0xf0, 0x74, 0x06, 0x7b, |
374 | 0x6d, 0x91, 0x6d, 0x96, 0x6c, 0xef, 0xff, 0xff, | 374 | 0x6d, 0x91, 0x6d, 0x96, 0x6c, 0xef, 0xff, 0xff, |
375 | 0x07, 0x2f, 0xee, 0x04, 0x8a, 0x17, 0x8a, 0x16, | 375 | 0x07, 0x2f, 0xee, 0x04, 0x8a, 0x17, 0x8a, 0x16, |
376 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, | 376 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, |
377 | 0x10, 0xf8, 0x2a, 0xe8, 0x08, 0xf8, 0x2a, 0xe9, | 377 | 0x10, 0xf8, 0x2a, 0xe8, 0x08, 0xf8, 0x2a, 0xe9, |
378 | 0xf8, 0x45, 0x07, 0x64, 0x76, 0x00, 0x00, 0x01, | 378 | 0xf8, 0x45, 0x07, 0x64, 0x76, 0x00, 0x00, 0x01, |
379 | 0x62, 0xf8, 0x2a, 0xe9, 0x00, 0x5e, 0xf2, 0x74, | 379 | 0x62, 0xf8, 0x2a, 0xe9, 0x00, 0x5e, 0xf2, 0x74, |
380 | 0x12, 0x0b, 0xf0, 0x00, 0x30, 0x40, 0x72, 0x11, | 380 | 0x12, 0x0b, 0xf0, 0x00, 0x30, 0x40, 0x72, 0x11, |
381 | 0x2a, 0xe9, 0x77, 0x10, 0x00, 0x0f, 0xf5, 0xa9, | 381 | 0x2a, 0xe9, 0x77, 0x10, 0x00, 0x0f, 0xf5, 0xa9, |
382 | 0xf8, 0x20, 0x07, 0x61, 0x6b, 0xf8, 0x2a, 0xe9, | 382 | 0xf8, 0x20, 0x07, 0x61, 0x6b, 0xf8, 0x2a, 0xe9, |
383 | 0x00, 0x01, 0xf0, 0x73, 0x07, 0x64, 0x76, 0xf8, | 383 | 0x00, 0x01, 0xf0, 0x73, 0x07, 0x64, 0x76, 0xf8, |
384 | 0x2a, 0xe9, 0x00, 0x00, 0xee, 0x02, 0x8a, 0x11, | 384 | 0x2a, 0xe9, 0x00, 0x00, 0xee, 0x02, 0x8a, 0x11, |
385 | 0xfc, 0x00, 0x4a, 0x11, 0x88, 0x11, 0xe8, 0x00, | 385 | 0xfc, 0x00, 0x4a, 0x11, 0x88, 0x11, 0xe8, 0x00, |
386 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x08, 0xe8, 0x00, | 386 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x08, 0xe8, 0x00, |
387 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x09, 0xf6, 0xb8, | 387 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x09, 0xf6, 0xb8, |
388 | 0xf4, 0x95, 0xf0, 0x20, 0xfc, 0x3f, 0x75, 0xf8, | 388 | 0xf4, 0x95, 0xf0, 0x20, 0xfc, 0x3f, 0x75, 0xf8, |
389 | 0x00, 0x08, 0x00, 0x0d, 0xf0, 0x20, 0x0c, 0x30, | 389 | 0x00, 0x08, 0x00, 0x0d, 0xf0, 0x20, 0x0c, 0x30, |
390 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x0c, 0x76, 0xf8, | 390 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x0c, 0x76, 0xf8, |
391 | 0x2a, 0xe8, 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xe9, | 391 | 0x2a, 0xe8, 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xe9, |
392 | 0x00, 0x00, 0x6c, 0x81, 0x07, 0x92, 0x76, 0xf8, | 392 | 0x00, 0x00, 0x6c, 0x81, 0x07, 0x92, 0x76, 0xf8, |
393 | 0x2a, 0xea, 0x00, 0x00, 0xfb, 0x80, 0x16, 0x76, | 393 | 0x2a, 0xea, 0x00, 0x00, 0xfb, 0x80, 0x16, 0x76, |
394 | 0xf4, 0x95, 0xe8, 0x10, 0xe8, 0x00, 0x75, 0xf8, | 394 | 0xf4, 0x95, 0xe8, 0x10, 0xe8, 0x00, 0x75, 0xf8, |
395 | 0x00, 0x08, 0x00, 0x00, 0xf0, 0x73, 0x07, 0xa8, | 395 | 0x00, 0x08, 0x00, 0x00, 0xf0, 0x73, 0x07, 0xa8, |
396 | 0x76, 0xf8, 0x2a, 0xea, 0x00, 0x01, 0xfb, 0x80, | 396 | 0x76, 0xf8, 0x2a, 0xea, 0x00, 0x01, 0xfb, 0x80, |
397 | 0x16, 0x66, 0xf4, 0x95, 0xe8, 0x10, 0xfb, 0x80, | 397 | 0x16, 0x66, 0xf4, 0x95, 0xe8, 0x10, 0xfb, 0x80, |
398 | 0x16, 0x87, 0xf4, 0x95, 0xe8, 0x10, 0xe8, 0x00, | 398 | 0x16, 0x87, 0xf4, 0x95, 0xe8, 0x10, 0xe8, 0x00, |
399 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x00, 0xf6, 0xb8, | 399 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x00, 0xf6, 0xb8, |
400 | 0xf4, 0x95, 0xf0, 0x20, 0xff, 0xff, 0x75, 0xf8, | 400 | 0xf4, 0x95, 0xf0, 0x20, 0xff, 0xff, 0x75, 0xf8, |
401 | 0x00, 0x08, 0x00, 0x00, 0x8a, 0x11, 0xfc, 0x00, | 401 | 0x00, 0x08, 0x00, 0x00, 0x8a, 0x11, 0xfc, 0x00, |
402 | 0xf4, 0x95, 0x4a, 0x08, 0x4a, 0x09, 0x4a, 0x0a, | 402 | 0xf4, 0x95, 0x4a, 0x08, 0x4a, 0x09, 0x4a, 0x0a, |
403 | 0x4a, 0x06, 0x4a, 0x07, 0x4a, 0x1d, 0x68, 0xf8, | 403 | 0x4a, 0x06, 0x4a, 0x07, 0x4a, 0x1d, 0x68, 0xf8, |
404 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, | 404 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, |
405 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, | 405 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, |
406 | 0x10, 0xf8, 0x2a, 0xea, 0xf8, 0x45, 0x07, 0xe1, | 406 | 0x10, 0xf8, 0x2a, 0xea, 0xf8, 0x45, 0x07, 0xe1, |
407 | 0x10, 0xf8, 0x2a, 0xe8, 0xf0, 0x00, 0x00, 0x01, | 407 | 0x10, 0xf8, 0x2a, 0xe8, 0xf0, 0x00, 0x00, 0x01, |
408 | 0xf0, 0x30, 0x00, 0x0f, 0x80, 0xf8, 0x2a, 0xe8, | 408 | 0xf0, 0x30, 0x00, 0x0f, 0x80, 0xf8, 0x2a, 0xe8, |
409 | 0x10, 0xf8, 0x2a, 0xe8, 0xf8, 0x44, 0x07, 0xd6, | 409 | 0x10, 0xf8, 0x2a, 0xe8, 0xf8, 0x44, 0x07, 0xd6, |
410 | 0xf6, 0xb8, 0xf4, 0x95, 0xf0, 0x20, 0xfc, 0x3f, | 410 | 0xf6, 0xb8, 0xf4, 0x95, 0xf0, 0x20, 0xfc, 0x3f, |
411 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x0d, 0xf0, 0x20, | 411 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x0d, 0xf0, 0x20, |
412 | 0x0c, 0x30, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x0c, | 412 | 0x0c, 0x30, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x0c, |
413 | 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x00, | 413 | 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x00, |
414 | 0xf6, 0xb8, 0xf4, 0x95, 0xf0, 0x20, 0xff, 0xff, | 414 | 0xf6, 0xb8, 0xf4, 0x95, 0xf0, 0x20, 0xff, 0xff, |
415 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x00, 0x8a, 0x1d, | 415 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x00, 0x8a, 0x1d, |
416 | 0x8a, 0x07, 0x8a, 0x06, 0x8a, 0x0a, 0x8a, 0x09, | 416 | 0x8a, 0x07, 0x8a, 0x06, 0x8a, 0x0a, 0x8a, 0x09, |
417 | 0x8a, 0x08, 0xf4, 0xeb, 0xee, 0xff, 0xf2, 0x74, | 417 | 0x8a, 0x08, 0xf4, 0xeb, 0xee, 0xff, 0xf2, 0x74, |
418 | 0x07, 0x67, 0xf4, 0x95, 0xe8, 0x01, 0xee, 0x01, | 418 | 0x07, 0x67, 0xf4, 0x95, 0xe8, 0x01, 0xee, 0x01, |
419 | 0xfc, 0x00, 0x4a, 0x07, 0x4a, 0x1d, 0x68, 0xf8, | 419 | 0xfc, 0x00, 0x4a, 0x07, 0x4a, 0x1d, 0x68, 0xf8, |
420 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, | 420 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, |
421 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, | 421 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, |
422 | 0x8a, 0x1d, 0x8a, 0x07, 0xf4, 0xeb, 0x4a, 0x11, | 422 | 0x8a, 0x1d, 0x8a, 0x07, 0xf4, 0xeb, 0x4a, 0x11, |
423 | 0x77, 0x11, 0x00, 0x28, 0x76, 0x81, 0x24, 0x00, | 423 | 0x77, 0x11, 0x00, 0x28, 0x76, 0x81, 0x24, 0x00, |
424 | 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, | 424 | 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, |
425 | 0xf2, 0x74, 0x07, 0x67, 0xf4, 0x95, 0xe8, 0x00, | 425 | 0xf2, 0x74, 0x07, 0x67, 0xf4, 0x95, 0xe8, 0x00, |
426 | 0x77, 0x11, 0x00, 0x1d, 0x68, 0x81, 0x00, 0x7f, | 426 | 0x77, 0x11, 0x00, 0x1d, 0x68, 0x81, 0x00, 0x7f, |
427 | 0xf6, 0xb8, 0xf4, 0x95, 0xf0, 0x20, 0xff, 0x80, | 427 | 0xf6, 0xb8, 0xf4, 0x95, 0xf0, 0x20, 0xff, 0x80, |
428 | 0x77, 0x11, 0x00, 0x1d, 0xf0, 0x30, 0x01, 0x00, | 428 | 0x77, 0x11, 0x00, 0x1d, 0xf0, 0x30, 0x01, 0x00, |
429 | 0x1a, 0x81, 0x80, 0x81, 0xf0, 0x74, 0x0a, 0x33, | 429 | 0x1a, 0x81, 0x80, 0x81, 0xf0, 0x74, 0x0a, 0x33, |
430 | 0xf0, 0x74, 0x11, 0xac, 0xf9, 0x80, 0x13, 0x25, | 430 | 0xf0, 0x74, 0x11, 0xac, 0xf9, 0x80, 0x13, 0x25, |
431 | 0xf9, 0x80, 0x16, 0x53, 0xf9, 0x80, 0x17, 0x82, | 431 | 0xf9, 0x80, 0x16, 0x53, 0xf9, 0x80, 0x17, 0x82, |
432 | 0xf0, 0x74, 0x06, 0x2f, 0xf9, 0x80, 0x14, 0xb2, | 432 | 0xf0, 0x74, 0x06, 0x2f, 0xf9, 0x80, 0x14, 0xb2, |
433 | 0xf9, 0x80, 0x19, 0x10, 0xf0, 0x74, 0x0d, 0xe3, | 433 | 0xf9, 0x80, 0x19, 0x10, 0xf0, 0x74, 0x0d, 0xe3, |
434 | 0xf0, 0x74, 0x07, 0xe8, 0xf0, 0x74, 0x02, 0x36, | 434 | 0xf0, 0x74, 0x07, 0xe8, 0xf0, 0x74, 0x02, 0x36, |
435 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x60, 0xf8, | 435 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x60, 0xf8, |
436 | 0x27, 0x7b, 0xff, 0xff, 0xf8, 0x30, 0x08, 0x39, | 436 | 0x27, 0x7b, 0xff, 0xff, 0xf8, 0x30, 0x08, 0x39, |
437 | 0x71, 0xf8, 0x27, 0x7b, 0x27, 0x79, 0x60, 0xf8, | 437 | 0x71, 0xf8, 0x27, 0x7b, 0x27, 0x79, 0x60, 0xf8, |
438 | 0x27, 0x79, 0xff, 0xff, 0xf8, 0x30, 0x08, 0xb2, | 438 | 0x27, 0x79, 0xff, 0xff, 0xf8, 0x30, 0x08, 0xb2, |
439 | 0x10, 0xf8, 0x29, 0x86, 0x08, 0xf8, 0x27, 0x79, | 439 | 0x10, 0xf8, 0x29, 0x86, 0x08, 0xf8, 0x27, 0x79, |
440 | 0xf0, 0x30, 0x7f, 0xff, 0x88, 0x11, 0xf4, 0x95, | 440 | 0xf0, 0x30, 0x7f, 0xff, 0x88, 0x11, 0xf4, 0x95, |
441 | 0x77, 0x10, 0x40, 0x00, 0xf6, 0xa9, 0xf8, 0x30, | 441 | 0x77, 0x10, 0x40, 0x00, 0xf6, 0xa9, 0xf8, 0x30, |
442 | 0x08, 0x58, 0x10, 0xf8, 0x27, 0x79, 0x08, 0xf8, | 442 | 0x08, 0x58, 0x10, 0xf8, 0x27, 0x79, 0x08, 0xf8, |
443 | 0x27, 0x7a, 0xf0, 0x30, 0x7f, 0xff, 0x88, 0x11, | 443 | 0x27, 0x7a, 0xf0, 0x30, 0x7f, 0xff, 0x88, 0x11, |
444 | 0xf4, 0x95, 0x77, 0x10, 0x40, 0x00, 0xf6, 0xa9, | 444 | 0xf4, 0x95, 0x77, 0x10, 0x40, 0x00, 0xf6, 0xa9, |
445 | 0xf8, 0x20, 0x08, 0x63, 0x76, 0xf8, 0x27, 0x79, | 445 | 0xf8, 0x20, 0x08, 0x63, 0x76, 0xf8, 0x27, 0x79, |
446 | 0xff, 0xff, 0x76, 0xf8, 0x27, 0x7b, 0xff, 0xff, | 446 | 0xff, 0xff, 0x76, 0xf8, 0x27, 0x7b, 0xff, 0xff, |
447 | 0xf7, 0xb8, 0xf2, 0x73, 0x08, 0xd9, 0xf0, 0x20, | 447 | 0xf7, 0xb8, 0xf2, 0x73, 0x08, 0xd9, 0xf0, 0x20, |
448 | 0xff, 0xff, 0xf6, 0xb8, 0x56, 0xf8, 0x27, 0x74, | 448 | 0xff, 0xff, 0xf6, 0xb8, 0x56, 0xf8, 0x27, 0x74, |
449 | 0xf0, 0xf9, 0x88, 0x11, 0x56, 0xf8, 0x27, 0x72, | 449 | 0xf0, 0xf9, 0x88, 0x11, 0x56, 0xf8, 0x27, 0x72, |
450 | 0xf0, 0xf9, 0x88, 0x12, 0xf4, 0x95, 0xf4, 0x95, | 450 | 0xf0, 0xf9, 0x88, 0x12, 0xf4, 0x95, 0xf4, 0x95, |
451 | 0xe7, 0x20, 0xf4, 0xa9, 0xf8, 0x30, 0x08, 0x8f, | 451 | 0xe7, 0x20, 0xf4, 0xa9, 0xf8, 0x30, 0x08, 0x8f, |
452 | 0xf1, 0x20, 0x27, 0x7c, 0x48, 0x11, 0xf6, 0x00, | 452 | 0xf1, 0x20, 0x27, 0x7c, 0x48, 0x11, 0xf6, 0x00, |
453 | 0x88, 0x13, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x83, | 453 | 0x88, 0x13, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x83, |
454 | 0x08, 0xf8, 0x27, 0x79, 0xf0, 0x30, 0x7f, 0xff, | 454 | 0x08, 0xf8, 0x27, 0x79, 0xf0, 0x30, 0x7f, 0xff, |
455 | 0x88, 0x13, 0xf4, 0x95, 0x77, 0x10, 0x40, 0x00, | 455 | 0x88, 0x13, 0xf4, 0x95, 0x77, 0x10, 0x40, 0x00, |
456 | 0xf5, 0xab, 0xf8, 0x30, 0x08, 0x8f, 0x6d, 0x91, | 456 | 0xf5, 0xab, 0xf8, 0x30, 0x08, 0x8f, 0x6d, 0x91, |
457 | 0x48, 0x11, 0xf0, 0x30, 0x01, 0xff, 0x88, 0x11, | 457 | 0x48, 0x11, 0xf0, 0x30, 0x01, 0xff, 0x88, 0x11, |
458 | 0xf4, 0x95, 0xe7, 0x20, 0xf7, 0xa9, 0xf8, 0x30, | 458 | 0xf4, 0x95, 0xe7, 0x20, 0xf7, 0xa9, 0xf8, 0x30, |
459 | 0x08, 0x74, 0x6d, 0x89, 0x48, 0x11, 0xf0, 0x30, | 459 | 0x08, 0x74, 0x6d, 0x89, 0x48, 0x11, 0xf0, 0x30, |
460 | 0x01, 0xff, 0xf0, 0xe7, 0xf4, 0x95, 0x48, 0x08, | 460 | 0x01, 0xff, 0xf0, 0xe7, 0xf4, 0x95, 0x48, 0x08, |
461 | 0x4e, 0xf8, 0x27, 0x74, 0x48, 0x08, 0xf1, 0xf9, | 461 | 0x4e, 0xf8, 0x27, 0x74, 0x48, 0x08, 0xf1, 0xf9, |
462 | 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x71, 0xe1, | 462 | 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x71, 0xe1, |
463 | 0x27, 0x7c, 0x27, 0x7a, 0x60, 0xf8, 0x27, 0x7b, | 463 | 0x27, 0x7c, 0x27, 0x7a, 0x60, 0xf8, 0x27, 0x7b, |
464 | 0xff, 0xff, 0xf8, 0x30, 0x08, 0xab, 0x48, 0x08, | 464 | 0xff, 0xff, 0xf8, 0x30, 0x08, 0xab, 0x48, 0x08, |
465 | 0x4e, 0xf8, 0x27, 0x72, 0x76, 0xf8, 0x27, 0x7b, | 465 | 0x4e, 0xf8, 0x27, 0x72, 0x76, 0xf8, 0x27, 0x7b, |
466 | 0xff, 0xff, 0x76, 0xf8, 0x27, 0x79, 0xff, 0xff, | 466 | 0xff, 0xff, 0x76, 0xf8, 0x27, 0x79, 0xff, 0xff, |
467 | 0xf2, 0x73, 0x08, 0xd9, 0xf4, 0x95, 0xe8, 0x00, | 467 | 0xf2, 0x73, 0x08, 0xd9, 0xf4, 0x95, 0xe8, 0x00, |
468 | 0x44, 0xf8, 0x27, 0x73, 0x40, 0xf8, 0x27, 0x75, | 468 | 0x44, 0xf8, 0x27, 0x73, 0x40, 0xf8, 0x27, 0x75, |
469 | 0x82, 0xf8, 0x00, 0x11, 0xf4, 0x95, 0x77, 0x10, | 469 | 0x82, 0xf8, 0x00, 0x11, 0xf4, 0x95, 0x77, 0x10, |
470 | 0x80, 0x00, 0xf6, 0xa9, 0xf8, 0x20, 0x08, 0xd8, | 470 | 0x80, 0x00, 0xf6, 0xa9, 0xf8, 0x20, 0x08, 0xd8, |
471 | 0xf6, 0xb8, 0x10, 0xf8, 0x27, 0x73, 0xf0, 0x00, | 471 | 0xf6, 0xb8, 0x10, 0xf8, 0x27, 0x73, 0xf0, 0x00, |
472 | 0x80, 0x00, 0x48, 0x08, 0x4e, 0xf8, 0x27, 0x74, | 472 | 0x80, 0x00, 0x48, 0x08, 0x4e, 0xf8, 0x27, 0x74, |
473 | 0x48, 0x08, 0xf0, 0xf9, 0x88, 0x11, 0xf4, 0x95, | 473 | 0x48, 0x08, 0xf0, 0xf9, 0x88, 0x11, 0xf4, 0x95, |
474 | 0xf4, 0x95, 0x71, 0xe1, 0x27, 0x7c, 0x27, 0x7a, | 474 | 0xf4, 0x95, 0x71, 0xe1, 0x27, 0x7c, 0x27, 0x7a, |
475 | 0xf7, 0xb8, 0x57, 0xf8, 0x27, 0x74, 0xf0, 0x62, | 475 | 0xf7, 0xb8, 0x57, 0xf8, 0x27, 0x74, 0xf0, 0x62, |
476 | 0xff, 0xff, 0xf0, 0x40, 0xff, 0x80, 0xf2, 0x80, | 476 | 0xff, 0xff, 0xf0, 0x40, 0xff, 0x80, 0xf2, 0x80, |
477 | 0x4e, 0xf8, 0x27, 0x74, 0xe8, 0x00, 0x8a, 0x11, | 477 | 0x4e, 0xf8, 0x27, 0x74, 0xe8, 0x00, 0x8a, 0x11, |
478 | 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, 0xee, 0xfb, | 478 | 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, 0xee, 0xfb, |
479 | 0x11, 0xf8, 0x27, 0x71, 0x09, 0xf8, 0x27, 0x73, | 479 | 0x11, 0xf8, 0x27, 0x71, 0x09, 0xf8, 0x27, 0x73, |
480 | 0x89, 0x11, 0x88, 0x10, 0xf4, 0x95, 0xf4, 0x95, | 480 | 0x89, 0x11, 0x88, 0x10, 0xf4, 0x95, 0xf4, 0x95, |
481 | 0xf6, 0xa9, 0xf8, 0x20, 0x08, 0xed, 0xf2, 0x73, | 481 | 0xf6, 0xa9, 0xf8, 0x20, 0x08, 0xed, 0xf2, 0x73, |
482 | 0x09, 0x0e, 0xf4, 0x95, 0xe8, 0x00, 0xf6, 0x20, | 482 | 0x09, 0x0e, 0xf4, 0x95, 0xe8, 0x00, 0xf6, 0x20, |
483 | 0x76, 0x00, 0x00, 0x41, 0xf0, 0x74, 0x12, 0xee, | 483 | 0x76, 0x00, 0x00, 0x41, 0xf0, 0x74, 0x12, 0xee, |
484 | 0x88, 0x16, 0xf4, 0x95, 0xf7, 0xb8, 0x6d, 0x96, | 484 | 0x88, 0x16, 0xf4, 0x95, 0xf7, 0xb8, 0x6d, 0x96, |
485 | 0x10, 0xf8, 0x00, 0x16, 0xf8, 0x47, 0x09, 0x0a, | 485 | 0x10, 0xf8, 0x00, 0x16, 0xf8, 0x47, 0x09, 0x0a, |
486 | 0xe7, 0x61, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, | 486 | 0xe7, 0x61, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, |
487 | 0x00, 0x80, 0x76, 0x02, 0x00, 0xff, 0x76, 0x03, | 487 | 0x00, 0x80, 0x76, 0x02, 0x00, 0xff, 0x76, 0x03, |
488 | 0x00, 0x00, 0xf2, 0x74, 0x0c, 0xb9, 0xf4, 0x95, | 488 | 0x00, 0x00, 0xf2, 0x74, 0x0c, 0xb9, 0xf4, 0x95, |
489 | 0xe8, 0x00, 0x6c, 0xe9, 0xff, 0xff, 0x08, 0xfb, | 489 | 0xe8, 0x00, 0x6c, 0xe9, 0xff, 0xff, 0x08, 0xfb, |
490 | 0x73, 0x16, 0x00, 0x0e, 0xf0, 0x66, 0x00, 0x41, | 490 | 0x73, 0x16, 0x00, 0x0e, 0xf0, 0x66, 0x00, 0x41, |
491 | 0xee, 0x05, 0x8a, 0x16, 0x8a, 0x11, 0xfc, 0x00, | 491 | 0xee, 0x05, 0x8a, 0x16, 0x8a, 0x11, 0xfc, 0x00, |
492 | 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, 0x00, 0x13, | 492 | 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, 0x00, 0x13, |
493 | 0xf6, 0xb8, 0x77, 0x11, 0x7f, 0xff, 0x57, 0xf8, | 493 | 0xf6, 0xb8, 0x77, 0x11, 0x7f, 0xff, 0x57, 0xf8, |
494 | 0x27, 0x72, 0x48, 0x11, 0xf2, 0x80, 0xf0, 0x00, | 494 | 0x27, 0x72, 0x48, 0x11, 0xf2, 0x80, 0xf0, 0x00, |
495 | 0x80, 0x00, 0x88, 0x11, 0xf6, 0x40, 0xf0, 0xe0, | 495 | 0x80, 0x00, 0x88, 0x11, 0xf6, 0x40, 0xf0, 0xe0, |
496 | 0xf1, 0xf1, 0xe8, 0x01, 0xf2, 0x80, 0x80, 0xf8, | 496 | 0xf1, 0xf1, 0xe8, 0x01, 0xf2, 0x80, 0x80, 0xf8, |
497 | 0x27, 0x78, 0x77, 0x12, 0x80, 0x00, 0x57, 0xf8, | 497 | 0x27, 0x78, 0x77, 0x12, 0x80, 0x00, 0x57, 0xf8, |
498 | 0x27, 0x72, 0x48, 0x12, 0xf2, 0x80, 0x88, 0x12, | 498 | 0x27, 0x72, 0x48, 0x12, 0xf2, 0x80, 0x88, 0x12, |
499 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x82, 0x09, 0x38, | 499 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x82, 0x09, 0x38, |
500 | 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, | 500 | 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, |
501 | 0xf0, 0x73, 0x09, 0x3d, 0xf0, 0x20, 0x80, 0x01, | 501 | 0xf0, 0x73, 0x09, 0x3d, 0xf0, 0x20, 0x80, 0x01, |
502 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, 0x70, 0x81, | 502 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, 0x70, 0x81, |
503 | 0x00, 0x13, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 503 | 0x00, 0x13, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
504 | 0xf0, 0x30, 0x7f, 0xff, 0x11, 0xf8, 0x29, 0x86, | 504 | 0xf0, 0x30, 0x7f, 0xff, 0x11, 0xf8, 0x29, 0x86, |
505 | 0xf5, 0x20, 0xf3, 0x30, 0x7f, 0xff, 0x89, 0x11, | 505 | 0xf5, 0x20, 0xf3, 0x30, 0x7f, 0xff, 0x89, 0x11, |
506 | 0xf4, 0x95, 0x77, 0x10, 0x40, 0x00, 0xf6, 0xa9, | 506 | 0xf4, 0x95, 0x77, 0x10, 0x40, 0x00, 0xf6, 0xa9, |
507 | 0xf8, 0x20, 0x09, 0x54, 0xf2, 0x73, 0x09, 0x67, | 507 | 0xf8, 0x20, 0x09, 0x54, 0xf2, 0x73, 0x09, 0x67, |
508 | 0xf4, 0x95, 0xe8, 0x02, 0x6f, 0xf8, 0x27, 0x7a, | 508 | 0xf4, 0x95, 0xe8, 0x02, 0x6f, 0xf8, 0x27, 0x7a, |
509 | 0x0d, 0x20, 0xf3, 0x30, 0x7f, 0xff, 0x89, 0x11, | 509 | 0x0d, 0x20, 0xf3, 0x30, 0x7f, 0xff, 0x89, 0x11, |
510 | 0xf4, 0x95, 0x77, 0x10, 0x40, 0x00, 0xf6, 0xa9, | 510 | 0xf4, 0x95, 0x77, 0x10, 0x40, 0x00, 0xf6, 0xa9, |
511 | 0xf8, 0x20, 0x09, 0x64, 0xf2, 0x73, 0x09, 0x67, | 511 | 0xf8, 0x20, 0x09, 0x64, 0xf2, 0x73, 0x09, 0x67, |
512 | 0xf4, 0x95, 0xe8, 0x01, 0x80, 0xf8, 0x27, 0x7b, | 512 | 0xf4, 0x95, 0xe8, 0x01, 0x80, 0xf8, 0x27, 0x7b, |
513 | 0xe8, 0x00, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 513 | 0xe8, 0x00, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
514 | 0x11, 0xf8, 0x29, 0x86, 0xf5, 0x20, 0xf3, 0x30, | 514 | 0x11, 0xf8, 0x29, 0x86, 0xf5, 0x20, 0xf3, 0x30, |
515 | 0x7f, 0xff, 0x89, 0x11, 0xf4, 0x95, 0x77, 0x10, | 515 | 0x7f, 0xff, 0x89, 0x11, 0xf4, 0x95, 0x77, 0x10, |
516 | 0x40, 0x00, 0xf6, 0xa9, 0xf8, 0x20, 0x09, 0x7a, | 516 | 0x40, 0x00, 0xf6, 0xa9, 0xf8, 0x20, 0x09, 0x7a, |
517 | 0xf2, 0x73, 0x09, 0x8d, 0xf4, 0x95, 0xe8, 0x02, | 517 | 0xf2, 0x73, 0x09, 0x8d, 0xf4, 0x95, 0xe8, 0x02, |
518 | 0x6f, 0xf8, 0x27, 0x7a, 0x0d, 0x20, 0xf3, 0x30, | 518 | 0x6f, 0xf8, 0x27, 0x7a, 0x0d, 0x20, 0xf3, 0x30, |
519 | 0x7f, 0xff, 0x89, 0x11, 0xf4, 0x95, 0x77, 0x10, | 519 | 0x7f, 0xff, 0x89, 0x11, 0xf4, 0x95, 0x77, 0x10, |
520 | 0x40, 0x00, 0xf6, 0xa9, 0xf8, 0x20, 0x09, 0x8a, | 520 | 0x40, 0x00, 0xf6, 0xa9, 0xf8, 0x20, 0x09, 0x8a, |
521 | 0xf2, 0x73, 0x09, 0x8d, 0xf4, 0x95, 0xe8, 0x01, | 521 | 0xf2, 0x73, 0x09, 0x8d, 0xf4, 0x95, 0xe8, 0x01, |
522 | 0x80, 0xf8, 0x27, 0x79, 0xe8, 0x00, 0x8a, 0x11, | 522 | 0x80, 0xf8, 0x27, 0x79, 0xe8, 0x00, 0x8a, 0x11, |
523 | 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, | 523 | 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, |
524 | 0x00, 0x12, 0x88, 0x11, 0xf6, 0xb8, 0x57, 0xf8, | 524 | 0x00, 0x12, 0x88, 0x11, 0xf6, 0xb8, 0x57, 0xf8, |
525 | 0x27, 0x72, 0xf0, 0x20, 0x7f, 0xff, 0xf2, 0x80, | 525 | 0x27, 0x72, 0xf0, 0x20, 0x7f, 0xff, 0xf2, 0x80, |
526 | 0xf0, 0x00, 0x80, 0x00, 0x80, 0x81, 0x57, 0xf8, | 526 | 0xf0, 0x00, 0x80, 0x00, 0x80, 0x81, 0x57, 0xf8, |
527 | 0x27, 0x72, 0xe8, 0x01, 0xf3, 0xf1, 0xf2, 0x80, | 527 | 0x27, 0x72, 0xe8, 0x01, 0xf3, 0xf1, 0xf2, 0x80, |
528 | 0x80, 0xf8, 0x27, 0x78, 0x77, 0x11, 0x80, 0x00, | 528 | 0x80, 0xf8, 0x27, 0x78, 0x77, 0x11, 0x80, 0x00, |
529 | 0x48, 0x11, 0x57, 0xf8, 0x27, 0x72, 0xf2, 0x80, | 529 | 0x48, 0x11, 0x57, 0xf8, 0x27, 0x72, 0xf2, 0x80, |
530 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x81, | 530 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x81, |
531 | 0x09, 0xb5, 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, | 531 | 0x09, 0xb5, 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, |
532 | 0x00, 0x01, 0xf0, 0x73, 0x09, 0xba, 0xf0, 0x20, | 532 | 0x00, 0x01, 0xf0, 0x73, 0x09, 0xba, 0xf0, 0x20, |
533 | 0x80, 0x01, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, | 533 | 0x80, 0x01, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, |
534 | 0x45, 0xf8, 0x27, 0x71, 0x43, 0xf8, 0x27, 0x73, | 534 | 0x45, 0xf8, 0x27, 0x71, 0x43, 0xf8, 0x27, 0x73, |
535 | 0x83, 0xf8, 0x00, 0x11, 0xf4, 0x95, 0xe7, 0x20, | 535 | 0x83, 0xf8, 0x00, 0x11, 0xf4, 0x95, 0xe7, 0x20, |
536 | 0xf6, 0xa9, 0xf8, 0x30, 0x09, 0xc9, 0xf2, 0x73, | 536 | 0xf6, 0xa9, 0xf8, 0x30, 0x09, 0xc9, 0xf2, 0x73, |
537 | 0x09, 0xe4, 0x77, 0x12, 0x00, 0x00, 0x57, 0xf8, | 537 | 0x09, 0xe4, 0x77, 0x12, 0x00, 0x00, 0x57, 0xf8, |
538 | 0x27, 0x72, 0xf0, 0x20, 0x7f, 0xff, 0xf2, 0x80, | 538 | 0x27, 0x72, 0xf0, 0x20, 0x7f, 0xff, 0xf2, 0x80, |
539 | 0x49, 0x12, 0xf5, 0x00, 0xf3, 0x00, 0x80, 0x00, | 539 | 0x49, 0x12, 0xf5, 0x00, 0xf3, 0x00, 0x80, 0x00, |
540 | 0x61, 0xf8, 0x00, 0x0b, 0x80, 0x00, 0xf8, 0x30, | 540 | 0x61, 0xf8, 0x00, 0x0b, 0x80, 0x00, 0xf8, 0x30, |
541 | 0x09, 0xdc, 0xf1, 0x20, 0x80, 0x00, 0xf5, 0x20, | 541 | 0x09, 0xdc, 0xf1, 0x20, 0x80, 0x00, 0xf5, 0x20, |
542 | 0x89, 0x12, 0xf4, 0x95, 0x48, 0x12, 0x6f, 0xf8, | 542 | 0x89, 0x12, 0xf4, 0x95, 0x48, 0x12, 0x6f, 0xf8, |
543 | 0x27, 0x73, 0x0d, 0x00, 0xf4, 0x95, 0x49, 0x0b, | 543 | 0x27, 0x73, 0x0d, 0x00, 0xf4, 0x95, 0x49, 0x0b, |
544 | 0x4f, 0xf8, 0x27, 0x72, 0x8a, 0x11, 0xfe, 0x00, | 544 | 0x4f, 0xf8, 0x27, 0x72, 0x8a, 0x11, 0xfe, 0x00, |
545 | 0x48, 0x12, 0xf4, 0x95, 0x4a, 0x11, 0x4a, 0x16, | 545 | 0x48, 0x12, 0xf4, 0x95, 0x4a, 0x11, 0x4a, 0x16, |
546 | 0x4a, 0x17, 0xee, 0xfc, 0xf4, 0x95, 0x71, 0x08, | 546 | 0x4a, 0x17, 0xee, 0xfc, 0xf4, 0x95, 0x71, 0x08, |
547 | 0x00, 0x16, 0x88, 0x17, 0xf0, 0x74, 0x08, 0x30, | 547 | 0x00, 0x16, 0x88, 0x17, 0xf0, 0x74, 0x08, 0x30, |
548 | 0x48, 0x18, 0x70, 0x00, 0x00, 0x16, 0xf2, 0x74, | 548 | 0x48, 0x18, 0x70, 0x00, 0x00, 0x16, 0xf2, 0x74, |
549 | 0x09, 0x8f, 0xf0, 0x00, 0x00, 0x02, 0x88, 0x11, | 549 | 0x09, 0x8f, 0xf0, 0x00, 0x00, 0x02, 0x88, 0x11, |
550 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x81, 0x0a, 0x0a, | 550 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x81, 0x0a, 0x0a, |
551 | 0xf2, 0x74, 0x08, 0xdb, 0xf4, 0x95, 0x48, 0x16, | 551 | 0xf2, 0x74, 0x08, 0xdb, 0xf4, 0x95, 0x48, 0x16, |
552 | 0x48, 0x18, 0x70, 0x00, 0x00, 0x16, 0xf2, 0x74, | 552 | 0x48, 0x18, 0x70, 0x00, 0x00, 0x16, 0xf2, 0x74, |
553 | 0x09, 0x8f, 0xf0, 0x00, 0x00, 0x02, 0x88, 0x11, | 553 | 0x09, 0x8f, 0xf0, 0x00, 0x00, 0x02, 0x88, 0x11, |
554 | 0x10, 0x02, 0x70, 0x01, 0x00, 0x11, 0x80, 0x00, | 554 | 0x10, 0x02, 0x70, 0x01, 0x00, 0x11, 0x80, 0x00, |
555 | 0xf2, 0x74, 0x06, 0xce, 0xf4, 0x95, 0x48, 0x17, | 555 | 0xf2, 0x74, 0x06, 0xce, 0xf4, 0x95, 0x48, 0x17, |
556 | 0x49, 0x11, 0x48, 0x17, 0xf6, 0x00, 0x88, 0x17, | 556 | 0x49, 0x11, 0x48, 0x17, 0xf6, 0x00, 0x88, 0x17, |
557 | 0xe7, 0x60, 0xf5, 0xa9, 0xf8, 0x20, 0x0a, 0x2d, | 557 | 0xe7, 0x60, 0xf5, 0xa9, 0xf8, 0x20, 0x0a, 0x2d, |
558 | 0x48, 0x16, 0xf6, 0x20, 0x88, 0x11, 0x48, 0x18, | 558 | 0x48, 0x16, 0xf6, 0x20, 0x88, 0x11, 0x48, 0x18, |
559 | 0x70, 0x00, 0x00, 0x11, 0xf2, 0x74, 0x09, 0x8f, | 559 | 0x70, 0x00, 0x00, 0x11, 0xf2, 0x74, 0x09, 0x8f, |
560 | 0xf0, 0x00, 0x00, 0x02, 0x88, 0x11, 0x70, 0x01, | 560 | 0xf0, 0x00, 0x00, 0x02, 0x88, 0x11, 0x70, 0x01, |
561 | 0x00, 0x11, 0x10, 0x02, 0x80, 0x00, 0xf2, 0x74, | 561 | 0x00, 0x11, 0x10, 0x02, 0x80, 0x00, 0xf2, 0x74, |
562 | 0x06, 0xce, 0xf4, 0x95, 0x48, 0x17, 0xee, 0x04, | 562 | 0x06, 0xce, 0xf4, 0x95, 0x48, 0x17, 0xee, 0x04, |
563 | 0x48, 0x16, 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, | 563 | 0x48, 0x16, 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, |
564 | 0xfc, 0x00, 0xee, 0xfd, 0xe8, 0x00, 0x4e, 0xf8, | 564 | 0xfc, 0x00, 0xee, 0xfd, 0xe8, 0x00, 0x4e, 0xf8, |
565 | 0x27, 0x70, 0xe8, 0x00, 0x4e, 0xf8, 0x27, 0x72, | 565 | 0x27, 0x70, 0xe8, 0x00, 0x4e, 0xf8, 0x27, 0x72, |
566 | 0xe8, 0x00, 0x4e, 0xf8, 0x27, 0x74, 0xe8, 0x00, | 566 | 0xe8, 0x00, 0x4e, 0xf8, 0x27, 0x74, 0xe8, 0x00, |
567 | 0x4e, 0xf8, 0x27, 0x76, 0x76, 0xf8, 0x27, 0x79, | 567 | 0x4e, 0xf8, 0x27, 0x76, 0x76, 0xf8, 0x27, 0x79, |
568 | 0xff, 0xff, 0x76, 0xf8, 0x27, 0x7a, 0x00, 0x00, | 568 | 0xff, 0xff, 0x76, 0xf8, 0x27, 0x7a, 0x00, 0x00, |
569 | 0x76, 0xf8, 0x27, 0x7b, 0xff, 0xff, 0x76, 0xf8, | 569 | 0x76, 0xf8, 0x27, 0x7b, 0xff, 0xff, 0x76, 0xf8, |
570 | 0x27, 0x78, 0x00, 0x00, 0xe8, 0x00, 0x75, 0xf8, | 570 | 0x27, 0x78, 0x00, 0x00, 0xe8, 0x00, 0x75, 0xf8, |
571 | 0x00, 0x08, 0x00, 0x01, 0x76, 0x00, 0x00, 0x00, | 571 | 0x00, 0x08, 0x00, 0x01, 0x76, 0x00, 0x00, 0x00, |
572 | 0x76, 0x01, 0x02, 0x00, 0xf2, 0x74, 0x12, 0xdc, | 572 | 0x76, 0x01, 0x02, 0x00, 0xf2, 0x74, 0x12, 0xdc, |
573 | 0xf0, 0x20, 0x27, 0x7c, 0xee, 0x03, 0xfc, 0x00, | 573 | 0xf0, 0x20, 0x27, 0x7c, 0xee, 0x03, 0xfc, 0x00, |
574 | 0x4a, 0x11, 0xee, 0xfc, 0xf4, 0x95, 0x4e, 0x00, | 574 | 0x4a, 0x11, 0xee, 0xfc, 0xf4, 0x95, 0x4e, 0x00, |
575 | 0x77, 0x12, 0x7f, 0xff, 0xf6, 0xb8, 0x49, 0x12, | 575 | 0x77, 0x12, 0x7f, 0xff, 0xf6, 0xb8, 0x49, 0x12, |
576 | 0xf1, 0x80, 0xf3, 0x00, 0x80, 0x00, 0x89, 0x12, | 576 | 0xf1, 0x80, 0xf3, 0x00, 0x80, 0x00, 0x89, 0x12, |
577 | 0xf0, 0xe0, 0xf1, 0xf1, 0x4f, 0x02, 0xe9, 0x01, | 577 | 0xf0, 0xe0, 0xf1, 0xf1, 0x4f, 0x02, 0xe9, 0x01, |
578 | 0xf4, 0x95, 0x48, 0x0b, 0xf5, 0x40, 0x56, 0x02, | 578 | 0xf4, 0x95, 0x48, 0x0b, 0xf5, 0x40, 0x56, 0x02, |
579 | 0xf1, 0x80, 0x81, 0xf8, 0x27, 0x78, 0x77, 0x11, | 579 | 0xf1, 0x80, 0x81, 0xf8, 0x27, 0x78, 0x77, 0x11, |
580 | 0x80, 0x00, 0x56, 0x00, 0x49, 0x11, 0xf1, 0x80, | 580 | 0x80, 0x00, 0x56, 0x00, 0x49, 0x11, 0xf1, 0x80, |
581 | 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x81, | 581 | 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x81, |
582 | 0x0a, 0x81, 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, | 582 | 0x0a, 0x81, 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, |
583 | 0x00, 0x01, 0xf0, 0x73, 0x0a, 0x86, 0xf0, 0x20, | 583 | 0x00, 0x01, 0xf0, 0x73, 0x0a, 0x86, 0xf0, 0x20, |
584 | 0x80, 0x01, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, | 584 | 0x80, 0x01, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, |
585 | 0x10, 0x82, 0xee, 0x04, 0x8a, 0x11, 0xfc, 0x00, | 585 | 0x10, 0x82, 0xee, 0x04, 0x8a, 0x11, 0xfc, 0x00, |
586 | 0x4a, 0x11, 0xee, 0xfe, 0xf4, 0x95, 0x4e, 0x00, | 586 | 0x4a, 0x11, 0xee, 0xfe, 0xf4, 0x95, 0x4e, 0x00, |
587 | 0x77, 0x11, 0x7f, 0xff, 0xf6, 0xb8, 0x49, 0x11, | 587 | 0x77, 0x11, 0x7f, 0xff, 0xf6, 0xb8, 0x49, 0x11, |
588 | 0xf1, 0x80, 0xf3, 0x00, 0x80, 0x00, 0x89, 0x11, | 588 | 0xf1, 0x80, 0xf3, 0x00, 0x80, 0x00, 0x89, 0x11, |
589 | 0xf0, 0xe0, 0xf1, 0xf1, 0xe8, 0x01, 0xf2, 0x80, | 589 | 0xf0, 0xe0, 0xf1, 0xf1, 0xe8, 0x01, 0xf2, 0x80, |
590 | 0x80, 0xf8, 0x27, 0x78, 0x56, 0x00, 0xf1, 0x20, | 590 | 0x80, 0xf8, 0x27, 0x78, 0x56, 0x00, 0xf1, 0x20, |
591 | 0x80, 0x00, 0xf1, 0x80, 0xf4, 0x95, 0x49, 0x0b, | 591 | 0x80, 0x00, 0xf1, 0x80, 0xf4, 0x95, 0x49, 0x0b, |
592 | 0xf8, 0x4d, 0x0a, 0xab, 0xf0, 0x20, 0x80, 0x01, | 592 | 0xf8, 0x4d, 0x0a, 0xab, 0xf0, 0x20, 0x80, 0x01, |
593 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, 0xf0, 0x73, | 593 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, 0xf0, 0x73, |
594 | 0x0a, 0xaf, 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, | 594 | 0x0a, 0xaf, 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, |
595 | 0x00, 0x01, 0xee, 0x02, 0x48, 0x11, 0x8a, 0x11, | 595 | 0x00, 0x01, 0xee, 0x02, 0x48, 0x11, 0x8a, 0x11, |
596 | 0xfc, 0x00, 0x4a, 0x11, 0x88, 0x12, 0x13, 0x02, | 596 | 0xfc, 0x00, 0x4a, 0x11, 0x88, 0x12, 0x13, 0x02, |
597 | 0x77, 0x11, 0x00, 0x00, 0xf8, 0x4d, 0x0a, 0xcb, | 597 | 0x77, 0x11, 0x00, 0x00, 0xf8, 0x4d, 0x0a, 0xcb, |
598 | 0xf3, 0x10, 0x00, 0x01, 0x89, 0x1a, 0xf4, 0x95, | 598 | 0xf3, 0x10, 0x00, 0x01, 0x89, 0x1a, 0xf4, 0x95, |
599 | 0xf0, 0x72, 0x0a, 0xca, 0x48, 0x11, 0x1c, 0xf8, | 599 | 0xf0, 0x72, 0x0a, 0xca, 0x48, 0x11, 0x1c, 0xf8, |
600 | 0x29, 0x7e, 0x88, 0x11, 0x11, 0xf8, 0x29, 0x7e, | 600 | 0x29, 0x7e, 0x88, 0x11, 0x11, 0xf8, 0x29, 0x7e, |
601 | 0xf2, 0x00, 0x00, 0x01, 0x80, 0xf8, 0x29, 0x7e, | 601 | 0xf2, 0x00, 0x00, 0x01, 0x80, 0xf8, 0x29, 0x7e, |
602 | 0x81, 0x92, 0x48, 0x11, 0x8a, 0x11, 0xfc, 0x00, | 602 | 0x81, 0x92, 0x48, 0x11, 0x8a, 0x11, 0xfc, 0x00, |
603 | 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, 0x00, 0x11, | 603 | 0x4a, 0x11, 0xf4, 0x95, 0x71, 0x02, 0x00, 0x11, |
604 | 0x88, 0x12, 0xf6, 0xb8, 0xf0, 0x20, 0x7f, 0xff, | 604 | 0x88, 0x12, 0xf6, 0xb8, 0xf0, 0x20, 0x7f, 0xff, |
605 | 0x57, 0xf8, 0x27, 0x70, 0xf2, 0x80, 0xf0, 0x00, | 605 | 0x57, 0xf8, 0x27, 0x70, 0xf2, 0x80, 0xf0, 0x00, |
606 | 0x80, 0x00, 0x80, 0x82, 0x57, 0xf8, 0x27, 0x70, | 606 | 0x80, 0x00, 0x80, 0x82, 0x57, 0xf8, 0x27, 0x70, |
607 | 0xe8, 0x01, 0xf3, 0xf1, 0xf2, 0x80, 0x80, 0xf8, | 607 | 0xe8, 0x01, 0xf3, 0xf1, 0xf2, 0x80, 0x80, 0xf8, |
608 | 0x27, 0x78, 0x77, 0x12, 0x80, 0x00, 0x48, 0x12, | 608 | 0x27, 0x78, 0x77, 0x12, 0x80, 0x00, 0x48, 0x12, |
609 | 0x57, 0xf8, 0x27, 0x70, 0xf2, 0x80, 0x88, 0x12, | 609 | 0x57, 0xf8, 0x27, 0x70, 0xf2, 0x80, 0x88, 0x12, |
610 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x82, 0x0a, 0xf4, | 610 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x82, 0x0a, 0xf4, |
611 | 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, | 611 | 0xe8, 0x00, 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, |
612 | 0xf0, 0x73, 0x0a, 0xf9, 0xf0, 0x20, 0x80, 0x01, | 612 | 0xf0, 0x73, 0x0a, 0xf9, 0xf0, 0x20, 0x80, 0x01, |
613 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, 0x45, 0xf8, | 613 | 0x75, 0xf8, 0x00, 0x08, 0x00, 0x01, 0x45, 0xf8, |
614 | 0x27, 0x75, 0xe7, 0x10, 0x43, 0xf8, 0x27, 0x71, | 614 | 0x27, 0x75, 0xe7, 0x10, 0x43, 0xf8, 0x27, 0x71, |
615 | 0x83, 0xf8, 0x00, 0x12, 0x6d, 0xe8, 0x00, 0x04, | 615 | 0x83, 0xf8, 0x00, 0x12, 0x6d, 0xe8, 0x00, 0x04, |
616 | 0x6d, 0x8a, 0xf6, 0xaa, 0xf8, 0x30, 0x0b, 0x0a, | 616 | 0x6d, 0x8a, 0xf6, 0xaa, 0xf8, 0x30, 0x0b, 0x0a, |
617 | 0xf2, 0x73, 0x0b, 0x25, 0x77, 0x11, 0x00, 0x00, | 617 | 0xf2, 0x73, 0x0b, 0x25, 0x77, 0x11, 0x00, 0x00, |
618 | 0x57, 0xf8, 0x27, 0x70, 0xf0, 0x20, 0x7f, 0xff, | 618 | 0x57, 0xf8, 0x27, 0x70, 0xf0, 0x20, 0x7f, 0xff, |
619 | 0xf2, 0x80, 0x49, 0x11, 0xf5, 0x00, 0xf3, 0x00, | 619 | 0xf2, 0x80, 0x49, 0x11, 0xf5, 0x00, 0xf3, 0x00, |
620 | 0x80, 0x00, 0x61, 0xf8, 0x00, 0x0b, 0x80, 0x00, | 620 | 0x80, 0x00, 0x61, 0xf8, 0x00, 0x0b, 0x80, 0x00, |
621 | 0xf8, 0x30, 0x0b, 0x1d, 0xf1, 0x20, 0x80, 0x00, | 621 | 0xf8, 0x30, 0x0b, 0x1d, 0xf1, 0x20, 0x80, 0x00, |
622 | 0xf5, 0x20, 0x89, 0x11, 0xf4, 0x95, 0x48, 0x11, | 622 | 0xf5, 0x20, 0x89, 0x11, 0xf4, 0x95, 0x48, 0x11, |
623 | 0x6f, 0xf8, 0x27, 0x71, 0x0d, 0x00, 0xf4, 0x95, | 623 | 0x6f, 0xf8, 0x27, 0x71, 0x0d, 0x00, 0xf4, 0x95, |
624 | 0x49, 0x0b, 0x4f, 0xf8, 0x27, 0x70, 0x48, 0x11, | 624 | 0x49, 0x0b, 0x4f, 0xf8, 0x27, 0x70, 0x48, 0x11, |
625 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, | 625 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, |
626 | 0x4a, 0x17, 0xee, 0xf0, 0x88, 0x17, 0x10, 0x17, | 626 | 0x4a, 0x17, 0xee, 0xf0, 0x88, 0x17, 0x10, 0x17, |
627 | 0x80, 0x05, 0x10, 0x16, 0x80, 0x06, 0x10, 0x15, | 627 | 0x80, 0x05, 0x10, 0x16, 0x80, 0x06, 0x10, 0x15, |
628 | 0x80, 0x07, 0x71, 0x14, 0x00, 0x11, 0x10, 0x05, | 628 | 0x80, 0x07, 0x71, 0x14, 0x00, 0x11, 0x10, 0x05, |
629 | 0xf0, 0x30, 0x00, 0x01, 0x88, 0x10, 0x10, 0x06, | 629 | 0xf0, 0x30, 0x00, 0x01, 0x88, 0x10, 0x10, 0x06, |
630 | 0xf0, 0x30, 0x00, 0x01, 0x80, 0x08, 0x49, 0x11, | 630 | 0xf0, 0x30, 0x00, 0x01, 0x80, 0x08, 0x49, 0x11, |
631 | 0x10, 0x05, 0xf6, 0x01, 0x80, 0x09, 0x10, 0x06, | 631 | 0x10, 0x05, 0xf6, 0x01, 0x80, 0x09, 0x10, 0x06, |
632 | 0x61, 0xf8, 0x00, 0x08, 0x00, 0x01, 0xf8, 0x20, | 632 | 0x61, 0xf8, 0x00, 0x08, 0x00, 0x01, 0xf8, 0x20, |
633 | 0x0b, 0x4b, 0x10, 0x09, 0xf0, 0x00, 0x00, 0x01, | 633 | 0x0b, 0x4b, 0x10, 0x09, 0xf0, 0x00, 0x00, 0x01, |
634 | 0x80, 0x09, 0x71, 0x08, 0x00, 0x12, 0xf4, 0xaa, | 634 | 0x80, 0x09, 0x71, 0x08, 0x00, 0x12, 0xf4, 0xaa, |
635 | 0xf8, 0x30, 0x0b, 0x54, 0x10, 0x09, 0xf0, 0x00, | 635 | 0xf8, 0x30, 0x0b, 0x54, 0x10, 0x09, 0xf0, 0x00, |
636 | 0x00, 0x01, 0x80, 0x09, 0x12, 0x09, 0x49, 0x11, | 636 | 0x00, 0x01, 0x80, 0x09, 0x12, 0x09, 0x49, 0x11, |
637 | 0xf4, 0x7f, 0x80, 0x09, 0xf6, 0x20, 0x80, 0x0a, | 637 | 0xf4, 0x7f, 0x80, 0x09, 0xf6, 0x20, 0x80, 0x0a, |
638 | 0x56, 0xf8, 0x27, 0x70, 0x4e, 0x0c, 0x10, 0x09, | 638 | 0x56, 0xf8, 0x27, 0x70, 0x4e, 0x0c, 0x10, 0x09, |
639 | 0x80, 0x00, 0x48, 0x18, 0xf2, 0x74, 0x0a, 0xce, | 639 | 0x80, 0x00, 0x48, 0x18, 0xf2, 0x74, 0x0a, 0xce, |
640 | 0xf0, 0x00, 0x00, 0x04, 0x88, 0x16, 0xf4, 0x95, | 640 | 0xf0, 0x00, 0x00, 0x04, 0x88, 0x16, 0xf4, 0x95, |
641 | 0xf4, 0x95, 0x6c, 0x86, 0x0b, 0x6d, 0xf2, 0x73, | 641 | 0xf4, 0x95, 0x6c, 0x86, 0x0b, 0x6d, 0xf2, 0x73, |
642 | 0x0c, 0x59, 0xf4, 0x95, 0xe8, 0x00, 0xf6, 0xb8, | 642 | 0x0c, 0x59, 0xf4, 0x95, 0xe8, 0x00, 0xf6, 0xb8, |
643 | 0xf4, 0x95, 0x56, 0x0c, 0xf0, 0xf9, 0x88, 0x12, | 643 | 0xf4, 0x95, 0x56, 0x0c, 0xf0, 0xf9, 0x88, 0x12, |
644 | 0xf4, 0x95, 0xf4, 0x95, 0x70, 0xe2, 0x27, 0x7c, | 644 | 0xf4, 0x95, 0xf4, 0x95, 0x70, 0xe2, 0x27, 0x7c, |
645 | 0x29, 0x86, 0xe8, 0x00, 0x80, 0x0e, 0x48, 0x11, | 645 | 0x29, 0x86, 0xe8, 0x00, 0x80, 0x0e, 0x48, 0x11, |
646 | 0xf8, 0x45, 0x0b, 0xcc, 0x77, 0x10, 0x00, 0x01, | 646 | 0xf8, 0x45, 0x0b, 0xcc, 0x77, 0x10, 0x00, 0x01, |
647 | 0xf4, 0xa9, 0xf8, 0x30, 0x0b, 0x89, 0x6c, 0xe1, | 647 | 0xf4, 0xa9, 0xf8, 0x30, 0x0b, 0x89, 0x6c, 0xe1, |
648 | 0xff, 0xfd, 0x0b, 0x8b, 0x10, 0xe7, 0x00, 0x02, | 648 | 0xff, 0xfd, 0x0b, 0x8b, 0x10, 0xe7, 0x00, 0x02, |
649 | 0x80, 0x0e, 0xf0, 0x73, 0x0b, 0x8b, 0x10, 0x87, | 649 | 0x80, 0x0e, 0xf0, 0x73, 0x0b, 0x8b, 0x10, 0x87, |
650 | 0x80, 0x0e, 0xe7, 0x10, 0xf5, 0xae, 0xf8, 0x20, | 650 | 0x80, 0x0e, 0xe7, 0x10, 0xf5, 0xae, 0xf8, 0x20, |
651 | 0x0b, 0xb2, 0x70, 0x00, 0x00, 0x17, 0x70, 0x01, | 651 | 0x0b, 0xb2, 0x70, 0x00, 0x00, 0x17, 0x70, 0x01, |
652 | 0x00, 0x16, 0x10, 0x04, 0xf0, 0x74, 0x06, 0xce, | 652 | 0x00, 0x16, 0x10, 0x04, 0xf0, 0x74, 0x06, 0xce, |
653 | 0x48, 0x17, 0x49, 0x16, 0xf6, 0x00, 0x88, 0x17, | 653 | 0x48, 0x17, 0x49, 0x16, 0xf6, 0x00, 0x88, 0x17, |
654 | 0x48, 0x11, 0xf6, 0x20, 0x88, 0x11, 0x10, 0x09, | 654 | 0x48, 0x11, 0xf6, 0x20, 0x88, 0x11, 0x10, 0x09, |
655 | 0xf6, 0x20, 0x80, 0x00, 0x48, 0x18, 0xf2, 0x74, | 655 | 0xf6, 0x20, 0x80, 0x00, 0x48, 0x18, 0xf2, 0x74, |
656 | 0x0a, 0xce, 0xf0, 0x00, 0x00, 0x04, 0x88, 0x16, | 656 | 0x0a, 0xce, 0xf0, 0x00, 0x00, 0x04, 0x88, 0x16, |
657 | 0x10, 0x04, 0x70, 0x00, 0x00, 0x17, 0x70, 0x01, | 657 | 0x10, 0x04, 0x70, 0x00, 0x00, 0x17, 0x70, 0x01, |
658 | 0x00, 0x11, 0xf0, 0x74, 0x06, 0xce, 0x48, 0x11, | 658 | 0x00, 0x11, 0xf0, 0x74, 0x06, 0xce, 0x48, 0x11, |
659 | 0x00, 0x04, 0x80, 0x04, 0xf0, 0x73, 0x0b, 0xbc, | 659 | 0x00, 0x04, 0x80, 0x04, 0xf0, 0x73, 0x0b, 0xbc, |
660 | 0x70, 0x00, 0x00, 0x17, 0x70, 0x01, 0x00, 0x11, | 660 | 0x70, 0x00, 0x00, 0x17, 0x70, 0x01, 0x00, 0x11, |
661 | 0x10, 0x04, 0xf0, 0x74, 0x06, 0xce, 0x48, 0x11, | 661 | 0x10, 0x04, 0xf0, 0x74, 0x06, 0xce, 0x48, 0x11, |
662 | 0x00, 0x04, 0x80, 0x04, 0x49, 0x11, 0x48, 0x16, | 662 | 0x00, 0x04, 0x80, 0x04, 0x49, 0x11, 0x48, 0x16, |
663 | 0xf6, 0x20, 0x88, 0x16, 0xf4, 0x95, 0xf4, 0x95, | 663 | 0xf6, 0x20, 0x88, 0x16, 0xf4, 0x95, 0xf4, 0x95, |
664 | 0x6c, 0x86, 0x0b, 0xcc, 0x10, 0x0a, 0x80, 0x00, | 664 | 0x6c, 0x86, 0x0b, 0xcc, 0x10, 0x0a, 0x80, 0x00, |
665 | 0x48, 0x18, 0xf2, 0x74, 0x0a, 0xce, 0xf0, 0x00, | 665 | 0x48, 0x18, 0xf2, 0x74, 0x0a, 0xce, 0xf0, 0x00, |
666 | 0x00, 0x04, 0x88, 0x16, 0x12, 0x0a, 0xf8, 0x45, | 666 | 0x00, 0x04, 0x88, 0x16, 0x12, 0x0a, 0xf8, 0x45, |
667 | 0x0c, 0x33, 0x71, 0x0a, 0x00, 0x10, 0xf4, 0xae, | 667 | 0x0c, 0x33, 0x71, 0x0a, 0x00, 0x10, 0xf4, 0xae, |
668 | 0xf8, 0x30, 0x0c, 0x1c, 0x48, 0x16, 0xf0, 0xe1, | 668 | 0xf8, 0x30, 0x0c, 0x1c, 0x48, 0x16, 0xf0, 0xe1, |
669 | 0x88, 0x11, 0x12, 0x08, 0xf8, 0x45, 0x0b, 0xdb, | 669 | 0x88, 0x11, 0x12, 0x08, 0xf8, 0x45, 0x0b, 0xdb, |
670 | 0x6d, 0x89, 0x12, 0x07, 0xf8, 0x45, 0x0b, 0xe9, | 670 | 0x6d, 0x89, 0x12, 0x07, 0xf8, 0x45, 0x0b, 0xe9, |
671 | 0x10, 0x07, 0x80, 0x00, 0x70, 0x02, 0x00, 0x11, | 671 | 0x10, 0x07, 0x80, 0x00, 0x70, 0x02, 0x00, 0x11, |
672 | 0x10, 0x06, 0x80, 0x01, 0x10, 0x04, 0xf0, 0x74, | 672 | 0x10, 0x06, 0x80, 0x01, 0x10, 0x04, 0xf0, 0x74, |
673 | 0x06, 0xdc, 0xf0, 0x73, 0x0b, 0xef, 0x48, 0x11, | 673 | 0x06, 0xdc, 0xf0, 0x73, 0x0b, 0xef, 0x48, 0x11, |
674 | 0x6f, 0x00, 0x0c, 0x9f, 0x10, 0x04, 0xf0, 0x74, | 674 | 0x6f, 0x00, 0x0c, 0x9f, 0x10, 0x04, 0xf0, 0x74, |
675 | 0x0a, 0xb3, 0x11, 0x0e, 0xf1, 0xc0, 0x81, 0x0e, | 675 | 0x0a, 0xb3, 0x11, 0x0e, 0xf1, 0xc0, 0x81, 0x0e, |
676 | 0x10, 0x06, 0x49, 0x11, 0xf6, 0x00, 0x80, 0x06, | 676 | 0x10, 0x06, 0x49, 0x11, 0xf6, 0x00, 0x80, 0x06, |
677 | 0x10, 0x05, 0xf6, 0x20, 0x88, 0x11, 0xf0, 0x00, | 677 | 0x10, 0x05, 0xf6, 0x20, 0x88, 0x11, 0xf0, 0x00, |
678 | 0x00, 0x01, 0x48, 0x08, 0x6f, 0x00, 0x0c, 0x9f, | 678 | 0x00, 0x01, 0x48, 0x08, 0x6f, 0x00, 0x0c, 0x9f, |
679 | 0x48, 0x18, 0xf2, 0x74, 0x0a, 0xce, 0xf0, 0x00, | 679 | 0x48, 0x18, 0xf2, 0x74, 0x0a, 0xce, 0xf0, 0x00, |
680 | 0x00, 0x04, 0x12, 0x07, 0xf8, 0x45, 0x0c, 0x11, | 680 | 0x00, 0x04, 0x12, 0x07, 0xf8, 0x45, 0x0c, 0x11, |
681 | 0x10, 0x07, 0x80, 0x00, 0x70, 0x02, 0x00, 0x11, | 681 | 0x10, 0x07, 0x80, 0x00, 0x70, 0x02, 0x00, 0x11, |
682 | 0x10, 0x06, 0x80, 0x01, 0x10, 0x04, 0xf0, 0x74, | 682 | 0x10, 0x06, 0x80, 0x01, 0x10, 0x04, 0xf0, 0x74, |
683 | 0x06, 0xdc, 0xf0, 0x73, 0x0c, 0x17, 0x48, 0x11, | 683 | 0x06, 0xdc, 0xf0, 0x73, 0x0c, 0x17, 0x48, 0x11, |
684 | 0x6f, 0x00, 0x0c, 0x9f, 0x10, 0x04, 0xf0, 0x74, | 684 | 0x6f, 0x00, 0x0c, 0x9f, 0x10, 0x04, 0xf0, 0x74, |
685 | 0x0a, 0xb3, 0x11, 0x0e, 0xf1, 0xc0, 0x81, 0x0e, | 685 | 0x0a, 0xb3, 0x11, 0x0e, 0xf1, 0xc0, 0x81, 0x0e, |
686 | 0xf0, 0x73, 0x0c, 0x33, 0x12, 0x07, 0xf8, 0x45, | 686 | 0xf0, 0x73, 0x0c, 0x33, 0x12, 0x07, 0xf8, 0x45, |
687 | 0x0c, 0x2a, 0x10, 0x07, 0x80, 0x00, 0x10, 0x06, | 687 | 0x0c, 0x2a, 0x10, 0x07, 0x80, 0x00, 0x10, 0x06, |
688 | 0x80, 0x01, 0x10, 0x05, 0x80, 0x02, 0x10, 0x04, | 688 | 0x80, 0x01, 0x10, 0x05, 0x80, 0x02, 0x10, 0x04, |
689 | 0xf0, 0x74, 0x06, 0xdc, 0xf0, 0x73, 0x0c, 0x30, | 689 | 0xf0, 0x74, 0x06, 0xdc, 0xf0, 0x73, 0x0c, 0x30, |
690 | 0x12, 0x05, 0x6f, 0x00, 0x0c, 0x9f, 0x10, 0x04, | 690 | 0x12, 0x05, 0x6f, 0x00, 0x0c, 0x9f, 0x10, 0x04, |
691 | 0xf0, 0x74, 0x0a, 0xb3, 0x11, 0x0e, 0xf1, 0xc0, | 691 | 0xf0, 0x74, 0x0a, 0xb3, 0x11, 0x0e, 0xf1, 0xc0, |
692 | 0x81, 0x0e, 0x76, 0x00, 0x00, 0x01, 0x48, 0x18, | 692 | 0x81, 0x0e, 0x76, 0x00, 0x00, 0x01, 0x48, 0x18, |
693 | 0xf2, 0x74, 0x0a, 0xce, 0xf0, 0x00, 0x00, 0x04, | 693 | 0xf2, 0x74, 0x0a, 0xce, 0xf0, 0x00, 0x00, 0x04, |
694 | 0x71, 0x04, 0x00, 0x11, 0x70, 0x81, 0x29, 0x86, | 694 | 0x71, 0x04, 0x00, 0x11, 0x70, 0x81, 0x29, 0x86, |
695 | 0x10, 0x0e, 0x1c, 0xf8, 0x29, 0x86, 0x80, 0x0e, | 695 | 0x10, 0x0e, 0x1c, 0xf8, 0x29, 0x86, 0x80, 0x0e, |
696 | 0x76, 0x00, 0x00, 0x01, 0x48, 0x18, 0xf2, 0x74, | 696 | 0x76, 0x00, 0x00, 0x01, 0x48, 0x18, 0xf2, 0x74, |
697 | 0x0a, 0xce, 0xf0, 0x00, 0x00, 0x04, 0x10, 0x0e, | 697 | 0x0a, 0xce, 0xf0, 0x00, 0x00, 0x04, 0x10, 0x0e, |
698 | 0x71, 0x04, 0x00, 0x11, 0x80, 0x81, 0x10, 0xf8, | 698 | 0x71, 0x04, 0x00, 0x11, 0x80, 0x81, 0x10, 0xf8, |
699 | 0x29, 0x86, 0xf0, 0x00, 0x00, 0x01, 0xf0, 0x30, | 699 | 0x29, 0x86, 0xf0, 0x00, 0x00, 0x01, 0xf0, 0x30, |
700 | 0x7f, 0xff, 0x80, 0xf8, 0x29, 0x86, 0x10, 0x09, | 700 | 0x7f, 0xff, 0x80, 0xf8, 0x29, 0x86, 0x10, 0x09, |
701 | 0xf0, 0x00, 0x00, 0x02, 0x80, 0x09, 0xee, 0x10, | 701 | 0xf0, 0x00, 0x00, 0x02, 0x80, 0x09, 0xee, 0x10, |
702 | 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, 0xfc, 0x00, | 702 | 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, 0xfc, 0x00, |
703 | 0x10, 0xf8, 0x27, 0x75, 0x08, 0xf8, 0x27, 0x71, | 703 | 0x10, 0xf8, 0x27, 0x75, 0x08, 0xf8, 0x27, 0x71, |
704 | 0xf0, 0x10, 0x00, 0x01, 0x48, 0x08, 0xfc, 0x00, | 704 | 0xf0, 0x10, 0x00, 0x01, 0x48, 0x08, 0xfc, 0x00, |
705 | 0x4a, 0x11, 0x4a, 0x16, 0xee, 0xff, 0xf4, 0x95, | 705 | 0x4a, 0x11, 0x4a, 0x16, 0xee, 0xff, 0xf4, 0x95, |
706 | 0x71, 0x04, 0x00, 0x16, 0xf0, 0x00, 0x00, 0x01, | 706 | 0x71, 0x04, 0x00, 0x16, 0xf0, 0x00, 0x00, 0x01, |
707 | 0x48, 0x08, 0x4e, 0xf8, 0x29, 0x7c, 0x6d, 0xee, | 707 | 0x48, 0x08, 0x4e, 0xf8, 0x29, 0x7c, 0x6d, 0xee, |
708 | 0xff, 0xfd, 0x48, 0x16, 0xf8, 0x45, 0x0c, 0x99, | 708 | 0xff, 0xfd, 0x48, 0x16, 0xf8, 0x45, 0x0c, 0x99, |
709 | 0x56, 0xf8, 0x29, 0x7c, 0xf0, 0x74, 0x0a, 0x5a, | 709 | 0x56, 0xf8, 0x29, 0x7c, 0xf0, 0x74, 0x0a, 0x5a, |
710 | 0x88, 0x11, 0x10, 0xf8, 0x29, 0x7d, 0xf0, 0x00, | 710 | 0x88, 0x11, 0x10, 0xf8, 0x29, 0x7d, 0xf0, 0x00, |
711 | 0x00, 0x01, 0x48, 0x08, 0x4e, 0xf8, 0x29, 0x7c, | 711 | 0x00, 0x01, 0x48, 0x08, 0x4e, 0xf8, 0x29, 0x7c, |
712 | 0x10, 0xf8, 0x29, 0x82, 0xf0, 0x00, 0x00, 0x01, | 712 | 0x10, 0xf8, 0x29, 0x82, 0xf0, 0x00, 0x00, 0x01, |
713 | 0x88, 0x10, 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0xa9, | 713 | 0x88, 0x10, 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0xa9, |
714 | 0xfa, 0x30, 0x0c, 0x96, 0x80, 0xf8, 0x29, 0x82, | 714 | 0xfa, 0x30, 0x0c, 0x96, 0x80, 0xf8, 0x29, 0x82, |
715 | 0x56, 0xf8, 0x29, 0x80, 0xf0, 0x00, 0x00, 0x01, | 715 | 0x56, 0xf8, 0x29, 0x80, 0xf0, 0x00, 0x00, 0x01, |
716 | 0x4e, 0xf8, 0x29, 0x80, 0x73, 0x11, 0x29, 0x82, | 716 | 0x4e, 0xf8, 0x29, 0x80, 0x73, 0x11, 0x29, 0x82, |
717 | 0x6c, 0xee, 0xff, 0xff, 0x0c, 0x76, 0xee, 0x01, | 717 | 0x6c, 0xee, 0xff, 0xff, 0x0c, 0x76, 0xee, 0x01, |
718 | 0x8a, 0x16, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 718 | 0x8a, 0x16, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
719 | 0x76, 0xf8, 0x29, 0x84, 0x00, 0x00, 0x76, 0xf8, | 719 | 0x76, 0xf8, 0x29, 0x84, 0x00, 0x00, 0x76, 0xf8, |
720 | 0x29, 0x85, 0x00, 0x01, 0xe8, 0x00, 0x4e, 0xf8, | 720 | 0x29, 0x85, 0x00, 0x01, 0xe8, 0x00, 0x4e, 0xf8, |
721 | 0x2a, 0x0c, 0x76, 0xf8, 0x29, 0x86, 0x00, 0x00, | 721 | 0x2a, 0x0c, 0x76, 0xf8, 0x29, 0x86, 0x00, 0x00, |
722 | 0x76, 0xf8, 0x29, 0x87, 0x00, 0x00, 0x77, 0x11, | 722 | 0x76, 0xf8, 0x29, 0x87, 0x00, 0x00, 0x77, 0x11, |
723 | 0x29, 0x88, 0x76, 0x81, 0xaa, 0xaa, 0x76, 0xe1, | 723 | 0x29, 0x88, 0x76, 0x81, 0xaa, 0xaa, 0x76, 0xe1, |
724 | 0x00, 0x01, 0xaa, 0xaa, 0x76, 0xe1, 0x00, 0x02, | 724 | 0x00, 0x01, 0xaa, 0xaa, 0x76, 0xe1, 0x00, 0x02, |
725 | 0x00, 0x00, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 725 | 0x00, 0x00, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
726 | 0xee, 0xfc, 0xf4, 0x95, 0x71, 0x06, 0x00, 0x14, | 726 | 0xee, 0xfc, 0xf4, 0x95, 0x71, 0x06, 0x00, 0x14, |
727 | 0x71, 0x07, 0x00, 0x13, 0x71, 0x08, 0x00, 0x12, | 727 | 0x71, 0x07, 0x00, 0x13, 0x71, 0x08, 0x00, 0x12, |
728 | 0x71, 0x09, 0x00, 0x15, 0x77, 0x10, 0x00, 0xff, | 728 | 0x71, 0x09, 0x00, 0x15, 0x77, 0x10, 0x00, 0xff, |
729 | 0xf4, 0xaa, 0xf8, 0x30, 0x0d, 0x44, 0x49, 0x13, | 729 | 0xf4, 0xaa, 0xf8, 0x30, 0x0d, 0x44, 0x49, 0x13, |
730 | 0x53, 0xf8, 0x2a, 0x0c, 0x4f, 0xf8, 0x2a, 0x0c, | 730 | 0x53, 0xf8, 0x2a, 0x0c, 0x4f, 0xf8, 0x2a, 0x0c, |
731 | 0x73, 0x12, 0x00, 0x0e, 0xf1, 0x66, 0x00, 0x0d, | 731 | 0x73, 0x12, 0x00, 0x0e, 0xf1, 0x66, 0x00, 0x0d, |
732 | 0x89, 0x11, 0xf4, 0x95, 0x77, 0x10, 0x00, 0x01, | 732 | 0x89, 0x11, 0xf4, 0x95, 0x77, 0x10, 0x00, 0x01, |
733 | 0x71, 0xe1, 0x24, 0x00, 0x00, 0x11, 0xf4, 0xa9, | 733 | 0x71, 0xe1, 0x24, 0x00, 0x00, 0x11, 0xf4, 0xa9, |
734 | 0xf8, 0x30, 0x0d, 0x17, 0x77, 0x10, 0x00, 0x02, | 734 | 0xf8, 0x30, 0x0d, 0x17, 0x77, 0x10, 0x00, 0x02, |
735 | 0xf4, 0xa9, 0xf8, 0x30, 0x0c, 0xec, 0x77, 0x11, | 735 | 0xf4, 0xa9, 0xf8, 0x30, 0x0c, 0xec, 0x77, 0x11, |
736 | 0x29, 0x8a, 0x76, 0x81, 0x00, 0x00, 0xe8, 0x00, | 736 | 0x29, 0x8a, 0x76, 0x81, 0x00, 0x00, 0xe8, 0x00, |
737 | 0x77, 0x14, 0x00, 0x00, 0x77, 0x13, 0x00, 0x00, | 737 | 0x77, 0x14, 0x00, 0x00, 0x77, 0x13, 0x00, 0x00, |
738 | 0xf0, 0x73, 0x0d, 0x48, 0x6c, 0x83, 0x0c, 0xfa, | 738 | 0xf0, 0x73, 0x0d, 0x48, 0x6c, 0x83, 0x0c, 0xfa, |
739 | 0x77, 0x11, 0x29, 0x8a, 0x48, 0x12, 0xf0, 0xe8, | 739 | 0x77, 0x11, 0x29, 0x8a, 0x48, 0x12, 0xf0, 0xe8, |
740 | 0xf0, 0x40, 0x80, 0x00, 0x80, 0x81, 0xe8, 0x00, | 740 | 0xf0, 0x40, 0x80, 0x00, 0x80, 0x81, 0xe8, 0x00, |
741 | 0x77, 0x14, 0x00, 0x00, 0xf0, 0x73, 0x0d, 0x48, | 741 | 0x77, 0x14, 0x00, 0x00, 0xf0, 0x73, 0x0d, 0x48, |
742 | 0x49, 0x13, 0xf3, 0x40, 0x80, 0x00, 0x81, 0xf8, | 742 | 0x49, 0x13, 0xf3, 0x40, 0x80, 0x00, 0x81, 0xf8, |
743 | 0x29, 0x8a, 0x61, 0xf8, 0x00, 0x15, 0x00, 0x01, | 743 | 0x29, 0x8a, 0x61, 0xf8, 0x00, 0x15, 0x00, 0x01, |
744 | 0xf8, 0x20, 0x0d, 0x07, 0x69, 0xf8, 0x29, 0x8a, | 744 | 0xf8, 0x20, 0x0d, 0x07, 0x69, 0xf8, 0x29, 0x8a, |
745 | 0x40, 0x00, 0x61, 0xf8, 0x00, 0x14, 0x00, 0x01, | 745 | 0x40, 0x00, 0x61, 0xf8, 0x00, 0x14, 0x00, 0x01, |
746 | 0xf8, 0x20, 0x0d, 0x0f, 0x69, 0xf8, 0x29, 0x8a, | 746 | 0xf8, 0x20, 0x0d, 0x0f, 0x69, 0xf8, 0x29, 0x8a, |
747 | 0x20, 0x00, 0x77, 0x11, 0x29, 0x8a, 0x49, 0x12, | 747 | 0x20, 0x00, 0x77, 0x11, 0x29, 0x8a, 0x49, 0x12, |
748 | 0xf3, 0xe8, 0x1b, 0x81, 0x81, 0x81, 0xf0, 0x73, | 748 | 0xf3, 0xe8, 0x1b, 0x81, 0x81, 0x81, 0xf0, 0x73, |
749 | 0x0d, 0x48, 0x11, 0xf8, 0x29, 0x84, 0xf8, 0x4c, | 749 | 0x0d, 0x48, 0x11, 0xf8, 0x29, 0x84, 0xf8, 0x4c, |
750 | 0x0d, 0x37, 0x77, 0x11, 0x29, 0x88, 0x76, 0x81, | 750 | 0x0d, 0x37, 0x77, 0x11, 0x29, 0x88, 0x76, 0x81, |
751 | 0xaa, 0xaa, 0x11, 0xf8, 0x29, 0x85, 0xf3, 0x10, | 751 | 0xaa, 0xaa, 0x11, 0xf8, 0x29, 0x85, 0xf3, 0x10, |
752 | 0x00, 0x01, 0xf3, 0x40, 0xaa, 0x00, 0x81, 0xe1, | 752 | 0x00, 0x01, 0xf3, 0x40, 0xaa, 0x00, 0x81, 0xe1, |
753 | 0x00, 0x01, 0x76, 0x00, 0x00, 0x02, 0x80, 0x01, | 753 | 0x00, 0x01, 0x76, 0x00, 0x00, 0x02, 0x80, 0x01, |
754 | 0x70, 0x02, 0x00, 0x14, 0x70, 0x03, 0x00, 0x13, | 754 | 0x70, 0x02, 0x00, 0x14, 0x70, 0x03, 0x00, 0x13, |
755 | 0xf2, 0x74, 0x0b, 0x28, 0xf4, 0x95, 0x48, 0x11, | 755 | 0xf2, 0x74, 0x0b, 0x28, 0xf4, 0x95, 0x48, 0x11, |
756 | 0x71, 0xf8, 0x29, 0x85, 0x29, 0x84, 0xf0, 0x73, | 756 | 0x71, 0xf8, 0x29, 0x85, 0x29, 0x84, 0xf0, 0x73, |
757 | 0x0d, 0x73, 0x76, 0x00, 0x00, 0x00, 0x80, 0x01, | 757 | 0x0d, 0x73, 0x76, 0x00, 0x00, 0x00, 0x80, 0x01, |
758 | 0x76, 0x02, 0x00, 0x00, 0x70, 0x03, 0x00, 0x13, | 758 | 0x76, 0x02, 0x00, 0x00, 0x70, 0x03, 0x00, 0x13, |
759 | 0xf2, 0x74, 0x0b, 0x28, 0xf4, 0x95, 0xe8, 0x00, | 759 | 0xf2, 0x74, 0x0b, 0x28, 0xf4, 0x95, 0xe8, 0x00, |
760 | 0xf0, 0x73, 0x0d, 0x73, 0x77, 0x11, 0x29, 0x8a, | 760 | 0xf0, 0x73, 0x0d, 0x73, 0x77, 0x11, 0x29, 0x8a, |
761 | 0x70, 0x81, 0x00, 0x13, 0x11, 0xf8, 0x29, 0x84, | 761 | 0x70, 0x81, 0x00, 0x13, 0x11, 0xf8, 0x29, 0x84, |
762 | 0xf8, 0x4c, 0x0d, 0x68, 0x77, 0x11, 0x29, 0x88, | 762 | 0xf8, 0x4c, 0x0d, 0x68, 0x77, 0x11, 0x29, 0x88, |
763 | 0x76, 0x81, 0xaa, 0xaa, 0x11, 0xf8, 0x29, 0x85, | 763 | 0x76, 0x81, 0xaa, 0xaa, 0x11, 0xf8, 0x29, 0x85, |
764 | 0xf3, 0x10, 0x00, 0x01, 0xf3, 0x40, 0xaa, 0x00, | 764 | 0xf3, 0x10, 0x00, 0x01, 0xf3, 0x40, 0xaa, 0x00, |
765 | 0x81, 0xe1, 0x00, 0x01, 0x76, 0x00, 0x00, 0x03, | 765 | 0x81, 0xe1, 0x00, 0x01, 0x76, 0x00, 0x00, 0x03, |
766 | 0x80, 0x01, 0x70, 0x02, 0x00, 0x14, 0x70, 0x03, | 766 | 0x80, 0x01, 0x70, 0x02, 0x00, 0x14, 0x70, 0x03, |
767 | 0x00, 0x13, 0xf2, 0x74, 0x0b, 0x28, 0xf4, 0x95, | 767 | 0x00, 0x13, 0xf2, 0x74, 0x0b, 0x28, 0xf4, 0x95, |
768 | 0x48, 0x11, 0x71, 0xf8, 0x29, 0x85, 0x29, 0x84, | 768 | 0x48, 0x11, 0x71, 0xf8, 0x29, 0x85, 0x29, 0x84, |
769 | 0xf0, 0x73, 0x0d, 0x73, 0x76, 0x00, 0x00, 0x01, | 769 | 0xf0, 0x73, 0x0d, 0x73, 0x76, 0x00, 0x00, 0x01, |
770 | 0x80, 0x01, 0x70, 0x02, 0x00, 0x14, 0x70, 0x03, | 770 | 0x80, 0x01, 0x70, 0x02, 0x00, 0x14, 0x70, 0x03, |
771 | 0x00, 0x13, 0xf2, 0x74, 0x0b, 0x28, 0xf4, 0x95, | 771 | 0x00, 0x13, 0xf2, 0x74, 0x0b, 0x28, 0xf4, 0x95, |
772 | 0x48, 0x11, 0x6b, 0xf8, 0x29, 0x84, 0xff, 0xff, | 772 | 0x48, 0x11, 0x6b, 0xf8, 0x29, 0x84, 0xff, 0xff, |
773 | 0xee, 0x04, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 773 | 0xee, 0x04, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
774 | 0xf5, 0x40, 0xf4, 0x95, 0x48, 0x0b, 0xf4, 0x78, | 774 | 0xf5, 0x40, 0xf4, 0x95, 0x48, 0x0b, 0xf4, 0x78, |
775 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0xe1, | 775 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0xe1, |
776 | 0xff, 0xb9, 0x0d, 0x88, 0xf2, 0x73, 0x0d, 0xa5, | 776 | 0xff, 0xb9, 0x0d, 0x88, 0xf2, 0x73, 0x0d, 0xa5, |
777 | 0xf4, 0x95, 0xe8, 0x60, 0xf2, 0x00, 0x00, 0x06, | 777 | 0xf4, 0x95, 0xe8, 0x60, 0xf2, 0x00, 0x00, 0x06, |
778 | 0x61, 0xf8, 0x00, 0x11, 0x00, 0x20, 0xf8, 0x30, | 778 | 0x61, 0xf8, 0x00, 0x11, 0x00, 0x20, 0xf8, 0x30, |
779 | 0x0d, 0x98, 0x61, 0xf8, 0x00, 0x0b, 0x00, 0x01, | 779 | 0x0d, 0x98, 0x61, 0xf8, 0x00, 0x0b, 0x00, 0x01, |
780 | 0xf8, 0x20, 0x0d, 0xa3, 0xf2, 0x00, 0x00, 0x07, | 780 | 0xf8, 0x20, 0x0d, 0xa3, 0xf2, 0x00, 0x00, 0x07, |
781 | 0xf0, 0x73, 0x0d, 0xa3, 0x61, 0xf8, 0x00, 0x0b, | 781 | 0xf0, 0x73, 0x0d, 0xa3, 0x61, 0xf8, 0x00, 0x0b, |
782 | 0x00, 0x01, 0xf8, 0x20, 0x0d, 0xa1, 0xf2, 0x73, | 782 | 0x00, 0x01, 0xf8, 0x20, 0x0d, 0xa1, 0xf2, 0x73, |
783 | 0x0d, 0xa3, 0xf0, 0x00, 0x00, 0x01, 0xf0, 0x00, | 783 | 0x0d, 0xa3, 0xf0, 0x00, 0x00, 0x01, 0xf0, 0x00, |
784 | 0x00, 0x02, 0x48, 0x08, 0xf4, 0x7f, 0x8a, 0x11, | 784 | 0x00, 0x02, 0x48, 0x08, 0xf4, 0x7f, 0x8a, 0x11, |
785 | 0xfc, 0x00, 0xee, 0xff, 0xf0, 0x74, 0x07, 0xfd, | 785 | 0xfc, 0x00, 0xee, 0xff, 0xf0, 0x74, 0x07, 0xfd, |
786 | 0xf0, 0x74, 0x07, 0x44, 0xf0, 0x74, 0x0d, 0xb4, | 786 | 0xf0, 0x74, 0x07, 0x44, 0xf0, 0x74, 0x0d, 0xb4, |
787 | 0xf0, 0x74, 0x02, 0x05, 0xf0, 0x74, 0x04, 0x60, | 787 | 0xf0, 0x74, 0x02, 0x05, 0xf0, 0x74, 0x04, 0x60, |
788 | 0xf0, 0x73, 0x0d, 0xaa, 0xee, 0xfd, 0x10, 0xf8, | 788 | 0xf0, 0x73, 0x0d, 0xaa, 0xee, 0xfd, 0x10, 0xf8, |
789 | 0x2a, 0xa3, 0xf8, 0x44, 0x0d, 0xcb, 0x10, 0xf8, | 789 | 0x2a, 0xa3, 0xf8, 0x44, 0x0d, 0xcb, 0x10, 0xf8, |
790 | 0x2a, 0xa4, 0xf8, 0x45, 0x0d, 0xd7, 0x76, 0x00, | 790 | 0x2a, 0xa4, 0xf8, 0x45, 0x0d, 0xd7, 0x76, 0x00, |
791 | 0x02, 0x00, 0xf2, 0x74, 0x09, 0xe8, 0xf0, 0x20, | 791 | 0x02, 0x00, 0xf2, 0x74, 0x09, 0xe8, 0xf0, 0x20, |
792 | 0x22, 0x00, 0x76, 0xf8, 0x2a, 0xa4, 0x00, 0x00, | 792 | 0x22, 0x00, 0x76, 0xf8, 0x2a, 0xa4, 0x00, 0x00, |
793 | 0x76, 0xf8, 0x2a, 0xa7, 0x00, 0x00, 0xf0, 0x73, | 793 | 0x76, 0xf8, 0x2a, 0xa7, 0x00, 0x00, 0xf0, 0x73, |
794 | 0x0d, 0xd7, 0x76, 0x00, 0x02, 0x00, 0xf2, 0x74, | 794 | 0x0d, 0xd7, 0x76, 0x00, 0x02, 0x00, 0xf2, 0x74, |
795 | 0x09, 0xe8, 0xf0, 0x20, 0x20, 0x00, 0x76, 0xf8, | 795 | 0x09, 0xe8, 0xf0, 0x20, 0x20, 0x00, 0x76, 0xf8, |
796 | 0x2a, 0xa3, 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xa7, | 796 | 0x2a, 0xa3, 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xa7, |
797 | 0x00, 0x01, 0xf0, 0x74, 0x0c, 0x5e, 0xf0, 0xe0, | 797 | 0x00, 0x01, 0xf0, 0x74, 0x0c, 0x5e, 0xf0, 0xe0, |
798 | 0xf0, 0x10, 0x3a, 0x98, 0xf8, 0x47, 0x0d, 0xe1, | 798 | 0xf0, 0x10, 0x3a, 0x98, 0xf8, 0x47, 0x0d, 0xe1, |
799 | 0x76, 0xf8, 0x27, 0x6e, 0x00, 0x00, 0xee, 0x03, | 799 | 0x76, 0xf8, 0x27, 0x6e, 0x00, 0x00, 0xee, 0x03, |
800 | 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, 0x77, 0x11, | 800 | 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, 0x77, 0x11, |
801 | 0x20, 0x00, 0x76, 0x00, 0xaa, 0xaa, 0x76, 0x01, | 801 | 0x20, 0x00, 0x76, 0x00, 0xaa, 0xaa, 0x76, 0x01, |
802 | 0x02, 0x00, 0xf2, 0x74, 0x06, 0x6c, 0xf4, 0x95, | 802 | 0x02, 0x00, 0xf2, 0x74, 0x06, 0x6c, 0xf4, 0x95, |
803 | 0x48, 0x11, 0x76, 0x00, 0x55, 0x55, 0x76, 0x01, | 803 | 0x48, 0x11, 0x76, 0x00, 0x55, 0x55, 0x76, 0x01, |
804 | 0x02, 0x00, 0x48, 0x11, 0xf2, 0x74, 0x06, 0x6c, | 804 | 0x02, 0x00, 0x48, 0x11, 0xf2, 0x74, 0x06, 0x6c, |
805 | 0xf0, 0x00, 0x02, 0x00, 0x76, 0xf8, 0x2a, 0xa3, | 805 | 0xf0, 0x00, 0x02, 0x00, 0x76, 0xf8, 0x2a, 0xa3, |
806 | 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xa4, 0x00, 0x00, | 806 | 0x00, 0x00, 0x76, 0xf8, 0x2a, 0xa4, 0x00, 0x00, |
807 | 0xe8, 0x00, 0x4e, 0x00, 0xfb, 0x80, 0x15, 0x3e, | 807 | 0xe8, 0x00, 0x4e, 0x00, 0xfb, 0x80, 0x15, 0x3e, |
808 | 0xf4, 0x95, 0xe8, 0x04, 0x80, 0xf8, 0x2a, 0xa5, | 808 | 0xf4, 0x95, 0xe8, 0x04, 0x80, 0xf8, 0x2a, 0xa5, |
809 | 0x76, 0x00, 0x2a, 0xa8, 0xf9, 0x80, 0x14, 0x87, | 809 | 0x76, 0x00, 0x2a, 0xa8, 0xf9, 0x80, 0x14, 0x87, |
810 | 0x76, 0x00, 0x2a, 0xad, 0xfb, 0x80, 0x13, 0x62, | 810 | 0x76, 0x00, 0x2a, 0xad, 0xfb, 0x80, 0x13, 0x62, |
811 | 0xf4, 0x95, 0xe8, 0x02, 0x10, 0xf8, 0x2a, 0xa5, | 811 | 0xf4, 0x95, 0xe8, 0x02, 0x10, 0xf8, 0x2a, 0xa5, |
812 | 0xf9, 0x80, 0x14, 0x63, 0xfb, 0x80, 0x16, 0x66, | 812 | 0xf9, 0x80, 0x14, 0x63, 0xfb, 0x80, 0x16, 0x66, |
813 | 0xf4, 0x95, 0xe8, 0x1c, 0xfb, 0x80, 0x16, 0x87, | 813 | 0xf4, 0x95, 0xe8, 0x1c, 0xfb, 0x80, 0x16, 0x87, |
814 | 0xf4, 0x95, 0xe8, 0x1c, 0xe8, 0x01, 0x4e, 0x00, | 814 | 0xf4, 0x95, 0xe8, 0x1c, 0xe8, 0x01, 0x4e, 0x00, |
815 | 0xfb, 0x80, 0x17, 0xd6, 0xf4, 0x95, 0xe8, 0x00, | 815 | 0xfb, 0x80, 0x17, 0xd6, 0xf4, 0x95, 0xe8, 0x00, |
816 | 0x80, 0xf8, 0x2a, 0xa6, 0x76, 0x00, 0x2a, 0xb7, | 816 | 0x80, 0xf8, 0x2a, 0xa6, 0x76, 0x00, 0x2a, 0xb7, |
817 | 0xf9, 0x80, 0x16, 0xaa, 0x10, 0xf8, 0x2a, 0xa6, | 817 | 0xf9, 0x80, 0x16, 0xaa, 0x10, 0xf8, 0x2a, 0xa6, |
818 | 0xf9, 0x80, 0x17, 0x5c, 0x10, 0xf8, 0x2a, 0xa6, | 818 | 0xf9, 0x80, 0x17, 0x5c, 0x10, 0xf8, 0x2a, 0xa6, |
819 | 0xf9, 0x80, 0x17, 0x6f, 0xee, 0x02, 0x8a, 0x11, | 819 | 0xf9, 0x80, 0x17, 0x6f, 0xee, 0x02, 0x8a, 0x11, |
820 | 0xfc, 0x00, 0xf4, 0x95, 0x4a, 0x08, 0x4a, 0x09, | 820 | 0xfc, 0x00, 0xf4, 0x95, 0x4a, 0x08, 0x4a, 0x09, |
821 | 0x4a, 0x0a, 0x4a, 0x07, 0x4a, 0x1d, 0x68, 0xf8, | 821 | 0x4a, 0x0a, 0x4a, 0x07, 0x4a, 0x1d, 0x68, 0xf8, |
822 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, | 822 | 0x00, 0x07, 0x7d, 0x3f, 0x69, 0xf8, 0x00, 0x07, |
823 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, | 823 | 0x40, 0x00, 0x68, 0xf8, 0x00, 0x1d, 0xff, 0xfc, |
824 | 0x10, 0xf8, 0x2a, 0xa7, 0xf8, 0x44, 0x0e, 0x4b, | 824 | 0x10, 0xf8, 0x2a, 0xa7, 0xf8, 0x44, 0x0e, 0x4b, |
825 | 0x76, 0xf8, 0x2a, 0xa3, 0x00, 0x01, 0xf0, 0x73, | 825 | 0x76, 0xf8, 0x2a, 0xa3, 0x00, 0x01, 0xf0, 0x73, |
826 | 0x0e, 0x4e, 0x76, 0xf8, 0x2a, 0xa4, 0x00, 0x01, | 826 | 0x0e, 0x4e, 0x76, 0xf8, 0x2a, 0xa4, 0x00, 0x01, |
827 | 0x8a, 0x1d, 0x8a, 0x07, 0x8a, 0x0a, 0x8a, 0x09, | 827 | 0x8a, 0x1d, 0x8a, 0x07, 0x8a, 0x0a, 0x8a, 0x09, |
828 | 0x8a, 0x08, 0xf4, 0xeb, 0x4a, 0x11, 0x4a, 0x16, | 828 | 0x8a, 0x08, 0xf4, 0xeb, 0x4a, 0x11, 0x4a, 0x16, |
829 | 0x4a, 0x17, 0xee, 0xfe, 0x88, 0x0e, 0x71, 0x08, | 829 | 0x4a, 0x17, 0xee, 0xfe, 0x88, 0x0e, 0x71, 0x08, |
830 | 0x00, 0x16, 0x71, 0x06, 0x00, 0x17, 0x11, 0x07, | 830 | 0x00, 0x16, 0x71, 0x06, 0x00, 0x17, 0x11, 0x07, |
831 | 0xf0, 0x66, 0x00, 0x0d, 0xf0, 0x00, 0x25, 0xa0, | 831 | 0xf0, 0x66, 0x00, 0x0d, 0xf0, 0x00, 0x25, 0xa0, |
832 | 0x88, 0x11, 0x76, 0x01, 0x00, 0x06, 0x81, 0x00, | 832 | 0x88, 0x11, 0x76, 0x01, 0x00, 0x06, 0x81, 0x00, |
833 | 0xf2, 0x74, 0x06, 0xce, 0xf0, 0x00, 0x00, 0x01, | 833 | 0xf2, 0x74, 0x06, 0xce, 0xf0, 0x00, 0x00, 0x01, |
834 | 0x76, 0x01, 0x00, 0x06, 0x70, 0x00, 0x00, 0x16, | 834 | 0x76, 0x01, 0x00, 0x06, 0x70, 0x00, 0x00, 0x16, |
835 | 0x48, 0x11, 0xf2, 0x74, 0x06, 0xce, 0xf0, 0x00, | 835 | 0x48, 0x11, 0xf2, 0x74, 0x06, 0xce, 0xf0, 0x00, |
836 | 0x00, 0x07, 0x70, 0x81, 0x00, 0x17, 0xee, 0x02, | 836 | 0x00, 0x07, 0x70, 0x81, 0x00, 0x17, 0xee, 0x02, |
837 | 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, 0xfc, 0x00, | 837 | 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, 0xfc, 0x00, |
838 | 0x4a, 0x11, 0x88, 0x0e, 0x71, 0x02, 0x00, 0x12, | 838 | 0x4a, 0x11, 0x88, 0x0e, 0x71, 0x02, 0x00, 0x12, |
839 | 0x11, 0x03, 0xf0, 0x66, 0x00, 0x0d, 0xf0, 0x00, | 839 | 0x11, 0x03, 0xf0, 0x66, 0x00, 0x0d, 0xf0, 0x00, |
840 | 0x24, 0x00, 0x88, 0x11, 0xf4, 0x95, 0x70, 0x81, | 840 | 0x24, 0x00, 0x88, 0x11, 0xf4, 0x95, 0x70, 0x81, |
841 | 0x00, 0x12, 0x6e, 0xe2, 0xff, 0xfe, 0x0e, 0x8d, | 841 | 0x00, 0x12, 0x6e, 0xe2, 0xff, 0xfe, 0x0e, 0x8d, |
842 | 0xf4, 0x95, 0xe8, 0x00, 0xe8, 0x01, 0x80, 0xe1, | 842 | 0xf4, 0x95, 0xe8, 0x00, 0xe8, 0x01, 0x80, 0xe1, |
843 | 0x00, 0x02, 0x76, 0xe1, 0x00, 0x03, 0x00, 0xff, | 843 | 0x00, 0x02, 0x76, 0xe1, 0x00, 0x03, 0x00, 0xff, |
844 | 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, 0x76, 0xe1, | 844 | 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, 0x76, 0xe1, |
845 | 0x00, 0x0b, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0c, | 845 | 0x00, 0x0b, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0c, |
846 | 0x00, 0x00, 0x81, 0xe1, 0x00, 0x01, 0x8a, 0x11, | 846 | 0x00, 0x00, 0x81, 0xe1, 0x00, 0x01, 0x8a, 0x11, |
847 | 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfc, 0x88, 0x0e, | 847 | 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfc, 0x88, 0x0e, |
848 | 0xf4, 0x95, 0xf1, 0x66, 0x00, 0x0d, 0xf3, 0x00, | 848 | 0xf4, 0x95, 0xf1, 0x66, 0x00, 0x0d, 0xf3, 0x00, |
849 | 0x24, 0x00, 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, | 849 | 0x24, 0x00, 0x89, 0x11, 0xf4, 0x95, 0xf4, 0x95, |
850 | 0x76, 0xe1, 0x00, 0x0c, 0x00, 0x00, 0x76, 0xe1, | 850 | 0x76, 0xe1, 0x00, 0x0c, 0x00, 0x00, 0x76, 0xe1, |
851 | 0x00, 0x0b, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, | 851 | 0x00, 0x0b, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, |
852 | 0x00, 0x01, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, | 852 | 0x00, 0x01, 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, |
853 | 0x00, 0x00, 0x80, 0x02, 0x76, 0x03, 0x00, 0x00, | 853 | 0x00, 0x00, 0x80, 0x02, 0x76, 0x03, 0x00, 0x00, |
854 | 0xf2, 0x74, 0x0c, 0xb9, 0xf4, 0x95, 0xe8, 0x00, | 854 | 0xf2, 0x74, 0x0c, 0xb9, 0xf4, 0x95, 0xe8, 0x00, |
855 | 0xee, 0x04, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 855 | 0xee, 0x04, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
856 | 0x88, 0x19, 0xf4, 0x95, 0x73, 0x19, 0x00, 0x0e, | 856 | 0x88, 0x19, 0xf4, 0x95, 0x73, 0x19, 0x00, 0x0e, |
857 | 0xf1, 0x66, 0x00, 0x0d, 0xf2, 0x00, 0x24, 0x00, | 857 | 0xf1, 0x66, 0x00, 0x0d, 0xf2, 0x00, 0x24, 0x00, |
858 | 0x77, 0x15, 0x25, 0xa0, 0x77, 0x14, 0x00, 0x00, | 858 | 0x77, 0x15, 0x25, 0xa0, 0x77, 0x14, 0x00, 0x00, |
859 | 0x77, 0x1a, 0x00, 0x1f, 0xf0, 0x72, 0x0f, 0x14, | 859 | 0x77, 0x1a, 0x00, 0x1f, 0xf0, 0x72, 0x0f, 0x14, |
860 | 0xf6, 0xb8, 0x49, 0x19, 0x09, 0x85, 0xf8, 0x4c, | 860 | 0xf6, 0xb8, 0x49, 0x19, 0x09, 0x85, 0xf8, 0x4c, |
861 | 0x0f, 0x13, 0xf1, 0x00, 0x00, 0x05, 0x89, 0x11, | 861 | 0x0f, 0x13, 0xf1, 0x00, 0x00, 0x05, 0x89, 0x11, |
862 | 0x49, 0x15, 0xf3, 0x00, 0x00, 0x01, 0x89, 0x13, | 862 | 0x49, 0x15, 0xf3, 0x00, 0x00, 0x01, 0x89, 0x13, |
863 | 0x49, 0x15, 0xf3, 0x00, 0x00, 0x07, 0x89, 0x12, | 863 | 0x49, 0x15, 0xf3, 0x00, 0x00, 0x07, 0x89, 0x12, |
864 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, | 864 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, |
865 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, | 865 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, |
866 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, | 866 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, |
867 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, | 867 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, |
868 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, | 868 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, |
869 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, | 869 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, |
870 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, | 870 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, |
871 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, | 871 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, |
872 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, | 872 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x10, |
873 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, | 873 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x80, 0x0f, 0x13, |
874 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x11, | 874 | 0x11, 0x93, 0x1d, 0x91, 0x19, 0x92, 0x89, 0x11, |
875 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x81, 0x0f, 0x13, | 875 | 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0x81, 0x0f, 0x13, |
876 | 0x6d, 0x94, 0x6d, 0xed, 0x00, 0x0d, 0x48, 0x14, | 876 | 0x6d, 0x94, 0x6d, 0xed, 0x00, 0x0d, 0x48, 0x14, |
877 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, | 877 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, |
878 | 0x4a, 0x17, 0xee, 0xf8, 0x88, 0x17, 0x10, 0x0d, | 878 | 0x4a, 0x17, 0xee, 0xf8, 0x88, 0x17, 0x10, 0x0d, |
879 | 0x80, 0x04, 0x10, 0x0c, 0x80, 0x05, 0x71, 0x0e, | 879 | 0x80, 0x04, 0x10, 0x0c, 0x80, 0x05, 0x71, 0x0e, |
880 | 0x00, 0x16, 0x73, 0x17, 0x00, 0x0e, 0xf0, 0x66, | 880 | 0x00, 0x16, 0x73, 0x17, 0x00, 0x0e, 0xf0, 0x66, |
881 | 0x00, 0x0d, 0xf0, 0x00, 0x24, 0x00, 0x88, 0x11, | 881 | 0x00, 0x0d, 0xf0, 0x00, 0x24, 0x00, 0x88, 0x11, |
882 | 0x10, 0xf8, 0x27, 0x63, 0xf8, 0x45, 0x0f, 0x32, | 882 | 0x10, 0xf8, 0x27, 0x63, 0xf8, 0x45, 0x0f, 0x32, |
883 | 0xf2, 0x74, 0x0e, 0x9f, 0xf4, 0x95, 0x48, 0x17, | 883 | 0xf2, 0x74, 0x0e, 0x9f, 0xf4, 0x95, 0x48, 0x17, |
884 | 0x10, 0xf8, 0x27, 0x60, 0xf8, 0x44, 0x0f, 0x3d, | 884 | 0x10, 0xf8, 0x27, 0x60, 0xf8, 0x44, 0x0f, 0x3d, |
885 | 0x60, 0xe1, 0x00, 0x02, 0x00, 0x01, 0xf8, 0x20, | 885 | 0x60, 0xe1, 0x00, 0x02, 0x00, 0x01, 0xf8, 0x20, |
886 | 0x0f, 0x6d, 0xf0, 0x73, 0x11, 0x33, 0x10, 0x04, | 886 | 0x0f, 0x6d, 0xf0, 0x73, 0x11, 0x33, 0x10, 0x04, |
887 | 0x80, 0x00, 0x10, 0x05, 0xf0, 0x74, 0x06, 0x9f, | 887 | 0x80, 0x00, 0x10, 0x05, 0xf0, 0x74, 0x06, 0x9f, |
888 | 0x11, 0x04, 0xf3, 0x00, 0x00, 0x01, 0x81, 0x04, | 888 | 0x11, 0x04, 0xf3, 0x00, 0x00, 0x01, 0x81, 0x04, |
889 | 0x6d, 0x8e, 0x77, 0x10, 0x00, 0x01, 0x71, 0xe1, | 889 | 0x6d, 0x8e, 0x77, 0x10, 0x00, 0x01, 0x71, 0xe1, |
890 | 0x00, 0x02, 0x00, 0x12, 0xf4, 0xaa, 0xf8, 0x30, | 890 | 0x00, 0x02, 0x00, 0x12, 0xf4, 0xaa, 0xf8, 0x30, |
891 | 0x0f, 0x62, 0x77, 0x10, 0x00, 0x02, 0xf4, 0xaa, | 891 | 0x0f, 0x62, 0x77, 0x10, 0x00, 0x02, 0xf4, 0xaa, |
892 | 0xf8, 0x30, 0x0f, 0x6d, 0x45, 0xe1, 0x00, 0x0b, | 892 | 0xf8, 0x30, 0x0f, 0x6d, 0x45, 0xe1, 0x00, 0x0b, |
893 | 0x88, 0x10, 0x43, 0xe1, 0x00, 0x0c, 0x83, 0xf8, | 893 | 0x88, 0x10, 0x43, 0xe1, 0x00, 0x0c, 0x83, 0xf8, |
894 | 0x00, 0x12, 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0xaa, | 894 | 0x00, 0x12, 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0xaa, |
895 | 0xf8, 0x30, 0x0f, 0x6d, 0xf0, 0x73, 0x0f, 0x96, | 895 | 0xf8, 0x30, 0x0f, 0x6d, 0xf0, 0x73, 0x0f, 0x96, |
896 | 0xf5, 0x00, 0x81, 0x04, 0x49, 0x16, 0xf5, 0x20, | 896 | 0xf5, 0x00, 0x81, 0x04, 0x49, 0x16, 0xf5, 0x20, |
897 | 0x89, 0x16, 0x76, 0xe1, 0x00, 0x0c, 0x00, 0x00, | 897 | 0x89, 0x16, 0x76, 0xe1, 0x00, 0x0c, 0x00, 0x00, |
898 | 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, 0x48, 0x16, | 898 | 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, 0x48, 0x16, |
899 | 0xf8, 0x45, 0x11, 0x33, 0xf7, 0xb8, 0x71, 0xe1, | 899 | 0xf8, 0x45, 0x11, 0x33, 0xf7, 0xb8, 0x71, 0xe1, |
900 | 0x00, 0x02, 0x00, 0x12, 0x10, 0xf8, 0x00, 0x12, | 900 | 0x00, 0x02, 0x00, 0x12, 0x10, 0xf8, 0x00, 0x12, |
901 | 0xf0, 0x10, 0x00, 0x03, 0xf8, 0x46, 0x0f, 0x8c, | 901 | 0xf0, 0x10, 0x00, 0x03, 0xf8, 0x46, 0x0f, 0x8c, |
902 | 0x10, 0xf8, 0x00, 0x12, 0xf0, 0x10, 0x00, 0x03, | 902 | 0x10, 0xf8, 0x00, 0x12, 0xf0, 0x10, 0x00, 0x03, |
903 | 0xf8, 0x45, 0x10, 0x16, 0x77, 0x10, 0x00, 0x01, | 903 | 0xf8, 0x45, 0x10, 0x16, 0x77, 0x10, 0x00, 0x01, |
904 | 0xf4, 0xaa, 0xf8, 0x30, 0x0f, 0x9c, 0x77, 0x10, | 904 | 0xf4, 0xaa, 0xf8, 0x30, 0x0f, 0x9c, 0x77, 0x10, |
905 | 0x00, 0x02, 0xf4, 0xaa, 0xf8, 0x30, 0x0f, 0xa8, | 905 | 0x00, 0x02, 0xf4, 0xaa, 0xf8, 0x30, 0x0f, 0xa8, |
906 | 0xf0, 0x73, 0x0f, 0x96, 0x77, 0x10, 0x00, 0x04, | 906 | 0xf0, 0x73, 0x0f, 0x96, 0x77, 0x10, 0x00, 0x04, |
907 | 0xf4, 0xaa, 0xf8, 0x30, 0x10, 0xb7, 0x77, 0x10, | 907 | 0xf4, 0xaa, 0xf8, 0x30, 0x10, 0xb7, 0x77, 0x10, |
908 | 0x00, 0x05, 0xf4, 0xaa, 0xf8, 0x30, 0x10, 0xbc, | 908 | 0x00, 0x05, 0xf4, 0xaa, 0xf8, 0x30, 0x10, 0xbc, |
909 | 0xf2, 0x74, 0x0e, 0x9f, 0xf4, 0x95, 0x48, 0x17, | 909 | 0xf2, 0x74, 0x0e, 0x9f, 0xf4, 0x95, 0x48, 0x17, |
910 | 0xf0, 0x73, 0x11, 0x31, 0x76, 0xe1, 0x00, 0x0c, | 910 | 0xf0, 0x73, 0x11, 0x31, 0x76, 0xe1, 0x00, 0x0c, |
911 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0b, 0x00, 0x00, | 911 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0b, 0x00, 0x00, |
912 | 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, 0x76, 0xe1, | 912 | 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, 0x76, 0xe1, |
913 | 0x00, 0x02, 0x00, 0x02, 0x11, 0xe1, 0x00, 0x0c, | 913 | 0x00, 0x02, 0x00, 0x02, 0x11, 0xe1, 0x00, 0x0c, |
914 | 0xe8, 0x03, 0xf6, 0x20, 0x89, 0x12, 0xf4, 0x95, | 914 | 0xe8, 0x03, 0xf6, 0x20, 0x89, 0x12, 0xf4, 0x95, |
915 | 0x77, 0x10, 0x00, 0x03, 0xf5, 0xaa, 0xf8, 0x30, | 915 | 0x77, 0x10, 0x00, 0x03, 0xf5, 0xaa, 0xf8, 0x30, |
916 | 0x0f, 0xb6, 0x6b, 0xf8, 0x27, 0x6f, 0x00, 0x01, | 916 | 0x0f, 0xb6, 0x6b, 0xf8, 0x27, 0x6f, 0x00, 0x01, |
917 | 0x88, 0x10, 0xf4, 0x95, 0xf4, 0x95, 0xf5, 0xae, | 917 | 0x88, 0x10, 0xf4, 0x95, 0xf4, 0x95, 0xf5, 0xae, |
918 | 0xf8, 0x20, 0x0f, 0xbd, 0x48, 0x16, 0x80, 0x06, | 918 | 0xf8, 0x20, 0x0f, 0xbd, 0x48, 0x16, 0x80, 0x06, |
919 | 0x88, 0x13, 0xf4, 0x95, 0x77, 0x10, 0x00, 0x03, | 919 | 0x88, 0x13, 0xf4, 0x95, 0x77, 0x10, 0x00, 0x03, |
920 | 0xf6, 0xab, 0xf8, 0x20, 0x0f, 0xc8, 0x6b, 0xf8, | 920 | 0xf6, 0xab, 0xf8, 0x20, 0x0f, 0xc8, 0x6b, 0xf8, |
921 | 0x27, 0x6f, 0x00, 0x01, 0x12, 0x06, 0xf8, 0x45, | 921 | 0x27, 0x6f, 0x00, 0x01, 0x12, 0x06, 0xf8, 0x45, |
922 | 0x10, 0x00, 0x10, 0xe1, 0x00, 0x04, 0x80, 0x00, | 922 | 0x10, 0x00, 0x10, 0xe1, 0x00, 0x04, 0x80, 0x00, |
923 | 0x10, 0x05, 0x80, 0x01, 0x10, 0x04, 0x80, 0x02, | 923 | 0x10, 0x05, 0x80, 0x01, 0x10, 0x04, 0x80, 0x02, |
924 | 0x10, 0x06, 0x80, 0x03, 0x48, 0x11, 0xf2, 0x74, | 924 | 0x10, 0x06, 0x80, 0x03, 0x48, 0x11, 0xf2, 0x74, |
925 | 0x07, 0x1e, 0xf0, 0x00, 0x00, 0x05, 0x10, 0x06, | 925 | 0x07, 0x1e, 0xf0, 0x00, 0x00, 0x05, 0x10, 0x06, |
926 | 0x00, 0xe1, 0x00, 0x04, 0x80, 0xe1, 0x00, 0x04, | 926 | 0x00, 0xe1, 0x00, 0x04, 0x80, 0xe1, 0x00, 0x04, |
927 | 0x10, 0x06, 0x00, 0xe1, 0x00, 0x0c, 0x80, 0xe1, | 927 | 0x10, 0x06, 0x00, 0xe1, 0x00, 0x0c, 0x80, 0xe1, |
928 | 0x00, 0x0c, 0x88, 0x12, 0x11, 0x06, 0x10, 0x04, | 928 | 0x00, 0x0c, 0x88, 0x12, 0x11, 0x06, 0x10, 0x04, |
929 | 0xf6, 0x00, 0x80, 0x04, 0x48, 0x16, 0xf6, 0x20, | 929 | 0xf6, 0x00, 0x80, 0x04, 0x48, 0x16, 0xf6, 0x20, |
930 | 0x88, 0x16, 0x89, 0x13, 0xf4, 0x95, 0x77, 0x10, | 930 | 0x88, 0x16, 0x89, 0x13, 0xf4, 0x95, 0x77, 0x10, |
931 | 0x00, 0x03, 0xf6, 0xab, 0xf8, 0x20, 0x0f, 0xf5, | 931 | 0x00, 0x03, 0xf6, 0xab, 0xf8, 0x20, 0x0f, 0xf5, |
932 | 0x6b, 0xf8, 0x27, 0x6f, 0x00, 0x01, 0x77, 0x10, | 932 | 0x6b, 0xf8, 0x27, 0x6f, 0x00, 0x01, 0x77, 0x10, |
933 | 0x00, 0x0c, 0x71, 0xe1, 0x00, 0x04, 0x00, 0x13, | 933 | 0x00, 0x0c, 0x71, 0xe1, 0x00, 0x04, 0x00, 0x13, |
934 | 0xf6, 0xab, 0xf8, 0x20, 0x10, 0x00, 0x6b, 0xf8, | 934 | 0xf6, 0xab, 0xf8, 0x20, 0x10, 0x00, 0x6b, 0xf8, |
935 | 0x27, 0x6f, 0x00, 0x01, 0x6c, 0xe2, 0xff, 0xfd, | 935 | 0x27, 0x6f, 0x00, 0x01, 0x6c, 0xe2, 0xff, 0xfd, |
936 | 0x11, 0x31, 0xf6, 0xb8, 0x6f, 0xe1, 0x00, 0x05, | 936 | 0x11, 0x31, 0xf6, 0xb8, 0x6f, 0xe1, 0x00, 0x05, |
937 | 0x0c, 0x48, 0x6f, 0xe1, 0x00, 0x06, 0x0c, 0x18, | 937 | 0x0c, 0x48, 0x6f, 0xe1, 0x00, 0x06, 0x0c, 0x18, |
938 | 0xf0, 0x30, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x03, | 938 | 0xf0, 0x30, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x03, |
939 | 0x80, 0xe1, 0x00, 0x0b, 0x76, 0xe1, 0x00, 0x02, | 939 | 0x80, 0xe1, 0x00, 0x0b, 0x76, 0xe1, 0x00, 0x02, |
940 | 0x00, 0x03, 0x48, 0x16, 0xf8, 0x45, 0x11, 0x33, | 940 | 0x00, 0x03, 0x48, 0x16, 0xf8, 0x45, 0x11, 0x33, |
941 | 0x71, 0xe1, 0x00, 0x0c, 0x00, 0x12, 0x10, 0xe1, | 941 | 0x71, 0xe1, 0x00, 0x0c, 0x00, 0x12, 0x10, 0xe1, |
942 | 0x00, 0x0b, 0x49, 0x12, 0xf6, 0x20, 0x88, 0x13, | 942 | 0x00, 0x0b, 0x49, 0x12, 0xf6, 0x20, 0x88, 0x13, |
943 | 0xe8, 0x0c, 0xf6, 0x20, 0x88, 0x10, 0xf4, 0x95, | 943 | 0xe8, 0x0c, 0xf6, 0x20, 0x88, 0x10, 0xf4, 0x95, |
944 | 0xf4, 0x95, 0xf5, 0xab, 0xf8, 0x20, 0x10, 0x27, | 944 | 0xf4, 0x95, 0xf5, 0xab, 0xf8, 0x20, 0x10, 0x27, |
945 | 0x48, 0x13, 0x80, 0x06, 0x88, 0x10, 0xf4, 0x95, | 945 | 0x48, 0x13, 0x80, 0x06, 0x88, 0x10, 0xf4, 0x95, |
946 | 0xf4, 0x95, 0xf5, 0xae, 0xf8, 0x20, 0x10, 0x30, | 946 | 0xf4, 0x95, 0xf5, 0xae, 0xf8, 0x20, 0x10, 0x30, |
947 | 0x70, 0x06, 0x00, 0x16, 0x12, 0x06, 0xf8, 0x45, | 947 | 0x70, 0x06, 0x00, 0x16, 0x12, 0x06, 0xf8, 0x45, |
948 | 0x10, 0x5f, 0x10, 0xe1, 0x00, 0x04, 0x80, 0x00, | 948 | 0x10, 0x5f, 0x10, 0xe1, 0x00, 0x04, 0x80, 0x00, |
949 | 0x10, 0x05, 0x80, 0x01, 0x10, 0x04, 0x80, 0x02, | 949 | 0x10, 0x05, 0x80, 0x01, 0x10, 0x04, 0x80, 0x02, |
950 | 0x10, 0x06, 0x80, 0x03, 0x48, 0x11, 0xf2, 0x74, | 950 | 0x10, 0x06, 0x80, 0x03, 0x48, 0x11, 0xf2, 0x74, |
951 | 0x07, 0x1e, 0xf0, 0x00, 0x00, 0x05, 0x10, 0x06, | 951 | 0x07, 0x1e, 0xf0, 0x00, 0x00, 0x05, 0x10, 0x06, |
952 | 0x00, 0xe1, 0x00, 0x04, 0x80, 0xe1, 0x00, 0x04, | 952 | 0x00, 0xe1, 0x00, 0x04, 0x80, 0xe1, 0x00, 0x04, |
953 | 0x10, 0x06, 0x00, 0xe1, 0x00, 0x0c, 0x80, 0xe1, | 953 | 0x10, 0x06, 0x00, 0xe1, 0x00, 0x0c, 0x80, 0xe1, |
954 | 0x00, 0x0c, 0x88, 0x12, 0x11, 0x06, 0x10, 0x04, | 954 | 0x00, 0x0c, 0x88, 0x12, 0x11, 0x06, 0x10, 0x04, |
955 | 0xf6, 0x00, 0x80, 0x04, 0x48, 0x16, 0xf6, 0x20, | 955 | 0xf6, 0x00, 0x80, 0x04, 0x48, 0x16, 0xf6, 0x20, |
956 | 0x88, 0x16, 0xf4, 0x95, 0x77, 0x10, 0x00, 0x0c, | 956 | 0x88, 0x16, 0xf4, 0x95, 0x77, 0x10, 0x00, 0x0c, |
957 | 0x71, 0xe1, 0x00, 0x04, 0x00, 0x13, 0xf6, 0xab, | 957 | 0x71, 0xe1, 0x00, 0x04, 0x00, 0x13, 0xf6, 0xab, |
958 | 0xf8, 0x20, 0x10, 0x5f, 0x6b, 0xf8, 0x27, 0x6f, | 958 | 0xf8, 0x20, 0x10, 0x5f, 0x6b, 0xf8, 0x27, 0x6f, |
959 | 0x00, 0x01, 0x77, 0x10, 0x00, 0x0c, 0xf6, 0xaa, | 959 | 0x00, 0x01, 0x77, 0x10, 0x00, 0x0c, 0xf6, 0xaa, |
960 | 0xf8, 0x20, 0x10, 0x6b, 0xf2, 0x74, 0x0e, 0x9f, | 960 | 0xf8, 0x20, 0x10, 0x6b, 0xf2, 0x74, 0x0e, 0x9f, |
961 | 0xf4, 0x95, 0x48, 0x17, 0x71, 0xe1, 0x00, 0x0c, | 961 | 0xf4, 0x95, 0x48, 0x17, 0x71, 0xe1, 0x00, 0x0c, |
962 | 0x00, 0x12, 0x77, 0x10, 0x00, 0x0c, 0xf4, 0xaa, | 962 | 0x00, 0x12, 0x77, 0x10, 0x00, 0x0c, 0xf4, 0xaa, |
963 | 0xf8, 0x30, 0x10, 0x7c, 0x77, 0x10, 0x00, 0x0c, | 963 | 0xf8, 0x30, 0x10, 0x7c, 0x77, 0x10, 0x00, 0x0c, |
964 | 0x71, 0xe1, 0x00, 0x0b, 0x00, 0x13, 0xf6, 0xab, | 964 | 0x71, 0xe1, 0x00, 0x0b, 0x00, 0x13, 0xf6, 0xab, |
965 | 0xf8, 0x30, 0x10, 0xb4, 0xe7, 0x30, 0xf7, 0xaa, | 965 | 0xf8, 0x30, 0x10, 0xb4, 0xe7, 0x30, 0xf7, 0xaa, |
966 | 0xf8, 0x30, 0x10, 0xb4, 0xf2, 0x74, 0x0e, 0xc1, | 966 | 0xf8, 0x30, 0x10, 0xb4, 0xf2, 0x74, 0x0e, 0xc1, |
967 | 0xf4, 0x95, 0x48, 0x17, 0x88, 0x12, 0xf4, 0x95, | 967 | 0xf4, 0x95, 0x48, 0x17, 0x88, 0x12, 0xf4, 0x95, |
968 | 0xf4, 0x95, 0x6c, 0x82, 0x10, 0x8d, 0x76, 0xe1, | 968 | 0xf4, 0x95, 0x6c, 0x82, 0x10, 0x8d, 0x76, 0xe1, |
969 | 0x00, 0x04, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, | 969 | 0x00, 0x04, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, |
970 | 0x00, 0x05, 0xf0, 0x73, 0x10, 0xb4, 0x76, 0xe1, | 970 | 0x00, 0x05, 0xf0, 0x73, 0x10, 0xb4, 0x76, 0xe1, |
971 | 0x00, 0x02, 0x00, 0x04, 0x77, 0x10, 0x00, 0x0c, | 971 | 0x00, 0x02, 0x00, 0x04, 0x77, 0x10, 0x00, 0x0c, |
972 | 0x71, 0xe1, 0x00, 0x0b, 0x00, 0x12, 0xf5, 0xaa, | 972 | 0x71, 0xe1, 0x00, 0x0b, 0x00, 0x12, 0xf5, 0xaa, |
973 | 0xf8, 0x20, 0x10, 0x9a, 0xf0, 0x73, 0x10, 0x9c, | 973 | 0xf8, 0x20, 0x10, 0x9a, 0xf0, 0x73, 0x10, 0x9c, |
974 | 0x77, 0x12, 0x00, 0x0c, 0x76, 0x00, 0x00, 0x00, | 974 | 0x77, 0x12, 0x00, 0x0c, 0x76, 0x00, 0x00, 0x00, |
975 | 0x70, 0x01, 0x00, 0x12, 0x70, 0x02, 0x00, 0x17, | 975 | 0x70, 0x01, 0x00, 0x12, 0x70, 0x02, 0x00, 0x17, |
976 | 0x76, 0x03, 0x00, 0x01, 0x48, 0x11, 0xf2, 0x74, | 976 | 0x76, 0x03, 0x00, 0x01, 0x48, 0x11, 0xf2, 0x74, |
977 | 0x0c, 0xb9, 0xf0, 0x00, 0x00, 0x05, 0x76, 0xe1, | 977 | 0x0c, 0xb9, 0xf0, 0x00, 0x00, 0x05, 0x76, 0xe1, |
978 | 0x00, 0x04, 0x00, 0x00, 0x77, 0x10, 0x00, 0x0c, | 978 | 0x00, 0x04, 0x00, 0x00, 0x77, 0x10, 0x00, 0x0c, |
979 | 0x71, 0xe1, 0x00, 0x0b, 0x00, 0x12, 0xf6, 0xaa, | 979 | 0x71, 0xe1, 0x00, 0x0b, 0x00, 0x12, 0xf6, 0xaa, |
980 | 0xf8, 0x20, 0x11, 0x1c, 0x48, 0x16, 0xf8, 0x45, | 980 | 0xf8, 0x20, 0x11, 0x1c, 0x48, 0x16, 0xf8, 0x45, |
981 | 0x11, 0x33, 0x60, 0xe1, 0x00, 0x02, 0x00, 0x05, | 981 | 0x11, 0x33, 0x60, 0xe1, 0x00, 0x02, 0x00, 0x05, |
982 | 0xf8, 0x20, 0x10, 0xdf, 0x10, 0xe1, 0x00, 0x0b, | 982 | 0xf8, 0x20, 0x10, 0xdf, 0x10, 0xe1, 0x00, 0x0b, |
983 | 0x08, 0xe1, 0x00, 0x0c, 0x11, 0xe1, 0x00, 0x04, | 983 | 0x08, 0xe1, 0x00, 0x0c, 0x11, 0xe1, 0x00, 0x04, |
984 | 0xf8, 0x4d, 0x10, 0xc7, 0x6b, 0xf8, 0x27, 0x6f, | 984 | 0xf8, 0x4d, 0x10, 0xc7, 0x6b, 0xf8, 0x27, 0x6f, |
985 | 0x00, 0x01, 0x88, 0x10, 0xf4, 0x95, 0xf4, 0x95, | 985 | 0x00, 0x01, 0x88, 0x10, 0xf4, 0x95, 0xf4, 0x95, |
986 | 0xf5, 0xae, 0xf8, 0x20, 0x10, 0xcf, 0x48, 0x16, | 986 | 0xf5, 0xae, 0xf8, 0x20, 0x10, 0xcf, 0x48, 0x16, |
987 | 0xf4, 0x95, 0x48, 0x08, 0xf8, 0x45, 0x11, 0x16, | 987 | 0xf4, 0x95, 0x48, 0x08, 0xf8, 0x45, 0x11, 0x16, |
988 | 0x6f, 0xe1, 0x00, 0x0c, 0x0d, 0x00, 0x81, 0xe1, | 988 | 0x6f, 0xe1, 0x00, 0x0c, 0x0d, 0x00, 0x81, 0xe1, |
989 | 0x00, 0x0c, 0x11, 0x04, 0xf5, 0x00, 0x81, 0x04, | 989 | 0x00, 0x0c, 0x11, 0x04, 0xf5, 0x00, 0x81, 0x04, |
990 | 0x49, 0x16, 0xf5, 0x20, 0x89, 0x16, 0xf0, 0x73, | 990 | 0x49, 0x16, 0xf5, 0x20, 0x89, 0x16, 0xf0, 0x73, |
991 | 0x11, 0x0e, 0x10, 0xe1, 0x00, 0x0b, 0x71, 0xe1, | 991 | 0x11, 0x0e, 0x10, 0xe1, 0x00, 0x0b, 0x71, 0xe1, |
992 | 0x00, 0x0c, 0x00, 0x12, 0x88, 0x10, 0xf4, 0x95, | 992 | 0x00, 0x0c, 0x00, 0x12, 0x88, 0x10, 0xf4, 0x95, |
993 | 0xf4, 0x95, 0xf6, 0xaa, 0xf8, 0x30, 0x11, 0x16, | 993 | 0xf4, 0x95, 0xf6, 0xaa, 0xf8, 0x30, 0x11, 0x16, |
994 | 0x49, 0x12, 0xf6, 0x20, 0x88, 0x10, 0xf4, 0x95, | 994 | 0x49, 0x12, 0xf6, 0x20, 0x88, 0x10, 0xf4, 0x95, |
995 | 0xf4, 0x95, 0xf5, 0xae, 0xf8, 0x20, 0x10, 0xf3, | 995 | 0xf4, 0x95, 0xf5, 0xae, 0xf8, 0x20, 0x10, 0xf3, |
996 | 0x48, 0x16, 0x80, 0x06, 0x48, 0x08, 0xf8, 0x45, | 996 | 0x48, 0x16, 0x80, 0x06, 0x48, 0x08, 0xf8, 0x45, |
997 | 0x11, 0x16, 0x10, 0x04, 0x70, 0x02, 0x00, 0x17, | 997 | 0x11, 0x16, 0x10, 0x04, 0x70, 0x02, 0x00, 0x17, |
998 | 0x80, 0x00, 0x76, 0x03, 0x00, 0x00, 0x10, 0x06, | 998 | 0x80, 0x00, 0x76, 0x03, 0x00, 0x00, 0x10, 0x06, |
999 | 0x80, 0x01, 0x10, 0x05, 0xf0, 0x74, 0x0c, 0xb9, | 999 | 0x80, 0x01, 0x10, 0x05, 0xf0, 0x74, 0x0c, 0xb9, |
1000 | 0x10, 0x06, 0x00, 0xe1, 0x00, 0x0c, 0x80, 0xe1, | 1000 | 0x10, 0x06, 0x00, 0xe1, 0x00, 0x0c, 0x80, 0xe1, |
1001 | 0x00, 0x0c, 0x11, 0x06, 0x10, 0x04, 0xf6, 0x00, | 1001 | 0x00, 0x0c, 0x11, 0x06, 0x10, 0x04, 0xf6, 0x00, |
1002 | 0x80, 0x04, 0x48, 0x16, 0xf6, 0x20, 0x88, 0x16, | 1002 | 0x80, 0x04, 0x48, 0x16, 0xf6, 0x20, 0x88, 0x16, |
1003 | 0x10, 0xe1, 0x00, 0x0c, 0x08, 0xe1, 0x00, 0x0b, | 1003 | 0x10, 0xe1, 0x00, 0x0c, 0x08, 0xe1, 0x00, 0x0b, |
1004 | 0xf8, 0x45, 0x11, 0x1c, 0xf0, 0x73, 0x11, 0x31, | 1004 | 0xf8, 0x45, 0x11, 0x1c, 0xf0, 0x73, 0x11, 0x31, |
1005 | 0xf2, 0x74, 0x0e, 0x9f, 0xf4, 0x95, 0x48, 0x17, | 1005 | 0xf2, 0x74, 0x0e, 0x9f, 0xf4, 0x95, 0x48, 0x17, |
1006 | 0xf0, 0x73, 0x11, 0x33, 0x76, 0xe1, 0x00, 0x0c, | 1006 | 0xf0, 0x73, 0x11, 0x33, 0x76, 0xe1, 0x00, 0x0c, |
1007 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0b, 0x00, 0x00, | 1007 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0b, 0x00, 0x00, |
1008 | 0x76, 0xe1, 0x00, 0x02, 0x00, 0x01, 0x10, 0x04, | 1008 | 0x76, 0xe1, 0x00, 0x02, 0x00, 0x01, 0x10, 0x04, |
1009 | 0x80, 0x00, 0x10, 0x05, 0xf0, 0x74, 0x06, 0x9f, | 1009 | 0x80, 0x00, 0x10, 0x05, 0xf0, 0x74, 0x06, 0x9f, |
1010 | 0x88, 0x12, 0xf4, 0x95, 0x77, 0x10, 0x00, 0xff, | 1010 | 0x88, 0x12, 0xf4, 0x95, 0x77, 0x10, 0x00, 0xff, |
1011 | 0xf4, 0xaa, 0xf8, 0x30, 0x11, 0x33, 0x6c, 0x86, | 1011 | 0xf4, 0xaa, 0xf8, 0x30, 0x11, 0x33, 0x6c, 0x86, |
1012 | 0x0f, 0x70, 0xee, 0x08, 0x8a, 0x17, 0x8a, 0x16, | 1012 | 0x0f, 0x70, 0xee, 0x08, 0x8a, 0x17, 0x8a, 0x16, |
1013 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfc, | 1013 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfc, |
1014 | 0xf4, 0x95, 0x71, 0x06, 0x00, 0x12, 0x88, 0x11, | 1014 | 0xf4, 0x95, 0x71, 0x06, 0x00, 0x12, 0x88, 0x11, |
1015 | 0x73, 0x12, 0x00, 0x0e, 0xf1, 0x66, 0x00, 0x0d, | 1015 | 0x73, 0x12, 0x00, 0x0e, 0xf1, 0x66, 0x00, 0x0d, |
1016 | 0xf3, 0x00, 0x24, 0x00, 0x89, 0x14, 0x13, 0x81, | 1016 | 0xf3, 0x00, 0x24, 0x00, 0x89, 0x14, 0x13, 0x81, |
1017 | 0xf7, 0x7a, 0xf3, 0x30, 0x00, 0x01, 0x81, 0xf8, | 1017 | 0xf7, 0x7a, 0xf3, 0x30, 0x00, 0x01, 0x81, 0xf8, |
1018 | 0x27, 0x60, 0x13, 0xe1, 0x00, 0x01, 0xf7, 0x7c, | 1018 | 0x27, 0x60, 0x13, 0xe1, 0x00, 0x01, 0xf7, 0x7c, |
1019 | 0xf3, 0x30, 0x00, 0x03, 0x81, 0xf8, 0x27, 0x61, | 1019 | 0xf3, 0x30, 0x00, 0x03, 0x81, 0xf8, 0x27, 0x61, |
1020 | 0xe9, 0x0f, 0x19, 0xe1, 0x00, 0x01, 0x81, 0xf8, | 1020 | 0xe9, 0x0f, 0x19, 0xe1, 0x00, 0x01, 0x81, 0xf8, |
1021 | 0x27, 0x62, 0x71, 0xe4, 0x00, 0x03, 0x00, 0x13, | 1021 | 0x27, 0x62, 0x71, 0xe4, 0x00, 0x03, 0x00, 0x13, |
1022 | 0xf6, 0xb8, 0x49, 0x13, 0xf3, 0x00, 0x00, 0x01, | 1022 | 0xf6, 0xb8, 0x49, 0x13, 0xf3, 0x00, 0x00, 0x01, |
1023 | 0xf3, 0x30, 0x00, 0x0f, 0x49, 0x0b, 0x09, 0xf8, | 1023 | 0xf3, 0x30, 0x00, 0x0f, 0x49, 0x0b, 0x09, 0xf8, |
1024 | 0x27, 0x62, 0xf8, 0x4d, 0x11, 0x75, 0x77, 0x10, | 1024 | 0x27, 0x62, 0xf8, 0x4d, 0x11, 0x75, 0x77, 0x10, |
1025 | 0x00, 0xff, 0xf4, 0xab, 0xf8, 0x30, 0x11, 0x75, | 1025 | 0x00, 0xff, 0xf4, 0xab, 0xf8, 0x30, 0x11, 0x75, |
1026 | 0x57, 0xf8, 0x27, 0x6c, 0xf3, 0x00, 0x00, 0x01, | 1026 | 0x57, 0xf8, 0x27, 0x6c, 0xf3, 0x00, 0x00, 0x01, |
1027 | 0x4f, 0xf8, 0x27, 0x6c, 0x76, 0xf8, 0x27, 0x63, | 1027 | 0x4f, 0xf8, 0x27, 0x6c, 0x76, 0xf8, 0x27, 0x63, |
1028 | 0x00, 0x01, 0xf0, 0x73, 0x11, 0x78, 0x76, 0xf8, | 1028 | 0x00, 0x01, 0xf0, 0x73, 0x11, 0x78, 0x76, 0xf8, |
1029 | 0x27, 0x63, 0x00, 0x00, 0x70, 0xe4, 0x00, 0x03, | 1029 | 0x27, 0x63, 0x00, 0x00, 0x70, 0xe4, 0x00, 0x03, |
1030 | 0x27, 0x62, 0x76, 0xf8, 0x27, 0x64, 0x00, 0x00, | 1030 | 0x27, 0x62, 0x76, 0xf8, 0x27, 0x64, 0x00, 0x00, |
1031 | 0x11, 0xf8, 0x27, 0x61, 0x61, 0xf8, 0x00, 0x0b, | 1031 | 0x11, 0xf8, 0x27, 0x61, 0x61, 0xf8, 0x00, 0x0b, |
1032 | 0x00, 0x02, 0xf8, 0x20, 0x11, 0x8d, 0xe9, 0x01, | 1032 | 0x00, 0x02, 0xf8, 0x20, 0x11, 0x8d, 0xe9, 0x01, |
1033 | 0x6f, 0xe1, 0x00, 0x02, 0x0f, 0x18, 0x81, 0xf8, | 1033 | 0x6f, 0xe1, 0x00, 0x02, 0x0f, 0x18, 0x81, 0xf8, |
1034 | 0x27, 0x64, 0x11, 0xf8, 0x27, 0x61, 0x61, 0xf8, | 1034 | 0x27, 0x64, 0x11, 0xf8, 0x27, 0x61, 0x61, 0xf8, |
1035 | 0x00, 0x0b, 0x00, 0x01, 0xf8, 0x20, 0x11, 0xa9, | 1035 | 0x00, 0x0b, 0x00, 0x01, 0xf8, 0x20, 0x11, 0xa9, |
1036 | 0x10, 0xf8, 0x27, 0x64, 0xf1, 0x00, 0x00, 0x04, | 1036 | 0x10, 0xf8, 0x27, 0x64, 0xf1, 0x00, 0x00, 0x04, |
1037 | 0x89, 0x13, 0xe9, 0xb8, 0xf5, 0x20, 0x81, 0xf8, | 1037 | 0x89, 0x13, 0xe9, 0xb8, 0xf5, 0x20, 0x81, 0xf8, |
1038 | 0x27, 0x65, 0x60, 0x84, 0x00, 0x02, 0xf8, 0x20, | 1038 | 0x27, 0x65, 0x60, 0x84, 0x00, 0x02, 0xf8, 0x20, |
1039 | 0x11, 0xa9, 0x70, 0x00, 0x00, 0x11, 0x70, 0x01, | 1039 | 0x11, 0xa9, 0x70, 0x00, 0x00, 0x11, 0x70, 0x01, |
1040 | 0x00, 0x13, 0x70, 0x02, 0x27, 0x65, 0xf2, 0x74, | 1040 | 0x00, 0x13, 0x70, 0x02, 0x27, 0x65, 0xf2, 0x74, |
1041 | 0x0f, 0x18, 0xf4, 0x95, 0x48, 0x12, 0xee, 0x04, | 1041 | 0x0f, 0x18, 0xf4, 0x95, 0x48, 0x12, 0xee, 0x04, |
1042 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, | 1042 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, |
1043 | 0x4a, 0x17, 0xee, 0xfc, 0xe8, 0x00, 0x4e, 0xf8, | 1043 | 0x4a, 0x17, 0xee, 0xfc, 0xe8, 0x00, 0x4e, 0xf8, |
1044 | 0x27, 0x66, 0xe8, 0x00, 0x4e, 0xf8, 0x27, 0x68, | 1044 | 0x27, 0x66, 0xe8, 0x00, 0x4e, 0xf8, 0x27, 0x68, |
1045 | 0xe8, 0x00, 0x4e, 0xf8, 0x27, 0x6c, 0xe8, 0x00, | 1045 | 0xe8, 0x00, 0x4e, 0xf8, 0x27, 0x6c, 0xe8, 0x00, |
1046 | 0x4e, 0xf8, 0x27, 0x6a, 0x77, 0x12, 0x27, 0x40, | 1046 | 0x4e, 0xf8, 0x27, 0x6a, 0x77, 0x12, 0x27, 0x40, |
1047 | 0x77, 0x11, 0x24, 0x00, 0x77, 0x1a, 0x00, 0x1f, | 1047 | 0x77, 0x11, 0x24, 0x00, 0x77, 0x1a, 0x00, 0x1f, |
1048 | 0xf0, 0x72, 0x11, 0xdb, 0x70, 0x92, 0x00, 0x11, | 1048 | 0xf0, 0x72, 0x11, 0xdb, 0x70, 0x92, 0x00, 0x11, |
1049 | 0x76, 0xe1, 0x00, 0x01, 0xff, 0xff, 0x76, 0x81, | 1049 | 0x76, 0xe1, 0x00, 0x01, 0xff, 0xff, 0x76, 0x81, |
1050 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, 0x00, 0x00, | 1050 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, 0x00, 0x00, |
1051 | 0x76, 0xe1, 0x00, 0x03, 0x00, 0xff, 0x76, 0xe1, | 1051 | 0x76, 0xe1, 0x00, 0x03, 0x00, 0xff, 0x76, 0xe1, |
1052 | 0x00, 0x0c, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0b, | 1052 | 0x00, 0x0c, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0b, |
1053 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, | 1053 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, |
1054 | 0x6d, 0xe9, 0x00, 0x0d, 0xf0, 0x20, 0x25, 0xa0, | 1054 | 0x6d, 0xe9, 0x00, 0x0d, 0xf0, 0x20, 0x25, 0xa0, |
1055 | 0xf1, 0x00, 0x00, 0x07, 0x89, 0x11, 0xf1, 0x00, | 1055 | 0xf1, 0x00, 0x00, 0x07, 0x89, 0x11, 0xf1, 0x00, |
1056 | 0x00, 0x01, 0x81, 0x02, 0x88, 0x16, 0xf4, 0x95, | 1056 | 0x00, 0x01, 0x81, 0x02, 0x88, 0x16, 0xf4, 0x95, |
1057 | 0x77, 0x17, 0x00, 0x20, 0x76, 0x86, 0x00, 0xff, | 1057 | 0x77, 0x17, 0x00, 0x20, 0x76, 0x86, 0x00, 0xff, |
1058 | 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0x06, | 1058 | 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0x06, |
1059 | 0x10, 0x02, 0xf0, 0x74, 0x06, 0x6c, 0x76, 0x00, | 1059 | 0x10, 0x02, 0xf0, 0x74, 0x06, 0x6c, 0x76, 0x00, |
1060 | 0x00, 0x00, 0x76, 0x01, 0x00, 0x06, 0xf2, 0x74, | 1060 | 0x00, 0x00, 0x76, 0x01, 0x00, 0x06, 0xf2, 0x74, |
1061 | 0x06, 0x6c, 0xf4, 0x95, 0x48, 0x11, 0x10, 0x02, | 1061 | 0x06, 0x6c, 0xf4, 0x95, 0x48, 0x11, 0x10, 0x02, |
1062 | 0xf0, 0x00, 0x00, 0x0d, 0x80, 0x02, 0x6d, 0xe9, | 1062 | 0xf0, 0x00, 0x00, 0x0d, 0x80, 0x02, 0x6d, 0xe9, |
1063 | 0x00, 0x0d, 0x6d, 0xee, 0x00, 0x0d, 0x6c, 0xef, | 1063 | 0x00, 0x0d, 0x6d, 0xee, 0x00, 0x0d, 0x6c, 0xef, |
1064 | 0xff, 0xff, 0x11, 0xe8, 0xf0, 0x74, 0x0c, 0x9d, | 1064 | 0xff, 0xff, 0x11, 0xe8, 0xf0, 0x74, 0x0c, 0x9d, |
1065 | 0xee, 0x04, 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, | 1065 | 0xee, 0x04, 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, |
1066 | 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, 0x4a, 0x17, | 1066 | 0xfc, 0x00, 0x4a, 0x11, 0x4a, 0x16, 0x4a, 0x17, |
1067 | 0xee, 0xfa, 0x88, 0x11, 0x10, 0x0a, 0x49, 0x11, | 1067 | 0xee, 0xfa, 0x88, 0x11, 0x10, 0x0a, 0x49, 0x11, |
1068 | 0xf8, 0x4d, 0x12, 0x9f, 0x48, 0x08, 0xf8, 0x45, | 1068 | 0xf8, 0x4d, 0x12, 0x9f, 0x48, 0x08, 0xf8, 0x45, |
1069 | 0x12, 0x9f, 0x80, 0x04, 0x12, 0x81, 0xf5, 0x78, | 1069 | 0x12, 0x9f, 0x80, 0x04, 0x12, 0x81, 0xf5, 0x78, |
1070 | 0x89, 0x12, 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0xe2, | 1070 | 0x89, 0x12, 0xf4, 0x95, 0xf4, 0x95, 0x6c, 0xe2, |
1071 | 0xff, 0xb9, 0x12, 0x8a, 0x61, 0xf8, 0x00, 0x08, | 1071 | 0xff, 0xb9, 0x12, 0x8a, 0x61, 0xf8, 0x00, 0x08, |
1072 | 0x00, 0x80, 0xf8, 0x30, 0x12, 0x8a, 0x13, 0xe1, | 1072 | 0x00, 0x80, 0xf8, 0x30, 0x12, 0x8a, 0x13, 0xe1, |
1073 | 0x00, 0x01, 0xf0, 0xe8, 0xf7, 0x78, 0xf1, 0xa0, | 1073 | 0x00, 0x01, 0xf0, 0xe8, 0xf7, 0x78, 0xf1, 0xa0, |
1074 | 0xf2, 0x30, 0x1f, 0xff, 0x88, 0x17, 0xf4, 0x95, | 1074 | 0xf2, 0x30, 0x1f, 0xff, 0x88, 0x17, 0xf4, 0x95, |
1075 | 0x77, 0x12, 0x24, 0x00, 0x77, 0x16, 0x00, 0x00, | 1075 | 0x77, 0x12, 0x24, 0x00, 0x77, 0x16, 0x00, 0x00, |
1076 | 0x77, 0x13, 0x00, 0x20, 0xf6, 0xb8, 0x48, 0x17, | 1076 | 0x77, 0x13, 0x00, 0x20, 0xf6, 0xb8, 0x48, 0x17, |
1077 | 0x08, 0xe2, 0x00, 0x01, 0xf8, 0x45, 0x12, 0x42, | 1077 | 0x08, 0xe2, 0x00, 0x01, 0xf8, 0x45, 0x12, 0x42, |
1078 | 0x6d, 0xea, 0x00, 0x0d, 0x6d, 0x96, 0x6c, 0xeb, | 1078 | 0x6d, 0xea, 0x00, 0x0d, 0x6d, 0x96, 0x6c, 0xeb, |
1079 | 0xff, 0xff, 0x12, 0x34, 0xf0, 0x73, 0x12, 0x90, | 1079 | 0xff, 0xff, 0x12, 0x34, 0xf0, 0x73, 0x12, 0x90, |
1080 | 0x56, 0xf8, 0x27, 0x6a, 0xf0, 0x00, 0x00, 0x01, | 1080 | 0x56, 0xf8, 0x27, 0x6a, 0xf0, 0x00, 0x00, 0x01, |
1081 | 0x4e, 0xf8, 0x27, 0x6a, 0x60, 0x82, 0x00, 0x01, | 1081 | 0x4e, 0xf8, 0x27, 0x6a, 0x60, 0x82, 0x00, 0x01, |
1082 | 0xf8, 0x30, 0x12, 0x54, 0x70, 0x00, 0x00, 0x16, | 1082 | 0xf8, 0x30, 0x12, 0x54, 0x70, 0x00, 0x00, 0x16, |
1083 | 0xf2, 0x74, 0x11, 0x38, 0xf4, 0x95, 0x48, 0x11, | 1083 | 0xf2, 0x74, 0x11, 0x38, 0xf4, 0x95, 0x48, 0x11, |
1084 | 0xf0, 0x73, 0x12, 0x90, 0x70, 0x00, 0x00, 0x16, | 1084 | 0xf0, 0x73, 0x12, 0x90, 0x70, 0x00, 0x00, 0x16, |
1085 | 0xf2, 0x74, 0x11, 0x38, 0xf4, 0x95, 0x48, 0x11, | 1085 | 0xf2, 0x74, 0x11, 0x38, 0xf4, 0x95, 0x48, 0x11, |
1086 | 0x72, 0x10, 0x2a, 0x9e, 0xf4, 0x95, 0xf4, 0xaf, | 1086 | 0x72, 0x10, 0x2a, 0x9e, 0xf4, 0x95, 0xf4, 0xaf, |
1087 | 0xf8, 0x30, 0x12, 0x6e, 0x76, 0x00, 0x00, 0x00, | 1087 | 0xf8, 0x30, 0x12, 0x6e, 0x76, 0x00, 0x00, 0x00, |
1088 | 0x76, 0x01, 0x00, 0xbc, 0x70, 0x02, 0x00, 0x16, | 1088 | 0x76, 0x01, 0x00, 0xbc, 0x70, 0x02, 0x00, 0x16, |
1089 | 0x76, 0x03, 0x00, 0x00, 0xf2, 0x74, 0x0c, 0xb9, | 1089 | 0x76, 0x03, 0x00, 0x00, 0xf2, 0x74, 0x0c, 0xb9, |
1090 | 0xf4, 0x95, 0x48, 0x11, 0xf0, 0x73, 0x12, 0x90, | 1090 | 0xf4, 0x95, 0x48, 0x11, 0xf0, 0x73, 0x12, 0x90, |
1091 | 0x10, 0xf8, 0x27, 0x6e, 0xf8, 0x44, 0x12, 0x90, | 1091 | 0x10, 0xf8, 0x27, 0x6e, 0xf8, 0x44, 0x12, 0x90, |
1092 | 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0xbc, | 1092 | 0x76, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0xbc, |
1093 | 0x70, 0x02, 0x00, 0x16, 0x76, 0x03, 0x00, 0x00, | 1093 | 0x70, 0x02, 0x00, 0x16, 0x76, 0x03, 0x00, 0x00, |
1094 | 0xf2, 0x74, 0x0c, 0xb9, 0xf4, 0x95, 0x48, 0x11, | 1094 | 0xf2, 0x74, 0x0c, 0xb9, 0xf4, 0x95, 0x48, 0x11, |
1095 | 0xf0, 0x74, 0x0c, 0x5e, 0xf0, 0xe0, 0xf0, 0x10, | 1095 | 0xf0, 0x74, 0x0c, 0x5e, 0xf0, 0xe0, 0xf0, 0x10, |
1096 | 0x13, 0x88, 0xf8, 0x42, 0x12, 0x90, 0x76, 0xf8, | 1096 | 0x13, 0x88, 0xf8, 0x42, 0x12, 0x90, 0x76, 0xf8, |
1097 | 0x27, 0x6e, 0x00, 0x01, 0xf0, 0x73, 0x12, 0x90, | 1097 | 0x27, 0x6e, 0x00, 0x01, 0xf0, 0x73, 0x12, 0x90, |
1098 | 0x56, 0xf8, 0x27, 0x66, 0xf0, 0x00, 0x00, 0x01, | 1098 | 0x56, 0xf8, 0x27, 0x66, 0xf0, 0x00, 0x00, 0x01, |
1099 | 0x4e, 0xf8, 0x27, 0x66, 0x6d, 0xe9, 0x00, 0x5e, | 1099 | 0x4e, 0xf8, 0x27, 0x66, 0x6d, 0xe9, 0x00, 0x5e, |
1100 | 0x56, 0xf8, 0x27, 0x68, 0xf0, 0x00, 0x00, 0x01, | 1100 | 0x56, 0xf8, 0x27, 0x68, 0xf0, 0x00, 0x00, 0x01, |
1101 | 0x4e, 0xf8, 0x27, 0x68, 0x71, 0x04, 0x00, 0x12, | 1101 | 0x4e, 0xf8, 0x27, 0x68, 0x71, 0x04, 0x00, 0x12, |
1102 | 0x6e, 0xea, 0xff, 0xff, 0x12, 0x18, 0x70, 0x04, | 1102 | 0x6e, 0xea, 0xff, 0xff, 0x12, 0x18, 0x70, 0x04, |
1103 | 0x00, 0x12, 0xee, 0x06, 0x8a, 0x17, 0x8a, 0x16, | 1103 | 0x00, 0x12, 0xee, 0x06, 0x8a, 0x17, 0x8a, 0x16, |
1104 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, | 1104 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xee, 0xfe, |
1105 | 0x88, 0x0e, 0xf4, 0x95, 0xf0, 0x66, 0x00, 0x0d, | 1105 | 0x88, 0x0e, 0xf4, 0x95, 0xf0, 0x66, 0x00, 0x0d, |
1106 | 0xf0, 0x00, 0x25, 0xa0, 0x88, 0x11, 0xf4, 0x95, | 1106 | 0xf0, 0x00, 0x25, 0xa0, 0x88, 0x11, 0xf4, 0x95, |
1107 | 0xf4, 0x95, 0x76, 0x81, 0x00, 0xff, 0x76, 0x00, | 1107 | 0xf4, 0x95, 0x76, 0x81, 0x00, 0xff, 0x76, 0x00, |
1108 | 0x00, 0x00, 0x76, 0x01, 0x00, 0x06, 0xf2, 0x74, | 1108 | 0x00, 0x00, 0x76, 0x01, 0x00, 0x06, 0xf2, 0x74, |
1109 | 0x06, 0x6c, 0xf0, 0x00, 0x00, 0x01, 0x76, 0x00, | 1109 | 0x06, 0x6c, 0xf0, 0x00, 0x00, 0x01, 0x76, 0x00, |
1110 | 0x00, 0x00, 0x76, 0x01, 0x00, 0x06, 0x48, 0x11, | 1110 | 0x00, 0x00, 0x76, 0x01, 0x00, 0x06, 0x48, 0x11, |
1111 | 0xf2, 0x74, 0x06, 0x6c, 0xf0, 0x00, 0x00, 0x07, | 1111 | 0xf2, 0x74, 0x06, 0x6c, 0xf0, 0x00, 0x00, 0x07, |
1112 | 0xee, 0x02, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, | 1112 | 0xee, 0x02, 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, |
1113 | 0x88, 0x0e, 0xf4, 0x95, 0xf0, 0x66, 0x00, 0x0d, | 1113 | 0x88, 0x0e, 0xf4, 0x95, 0xf0, 0x66, 0x00, 0x0d, |
1114 | 0xf0, 0x00, 0x24, 0x00, 0x88, 0x11, 0xf4, 0x95, | 1114 | 0xf0, 0x00, 0x24, 0x00, 0x88, 0x11, 0xf4, 0x95, |
1115 | 0xf4, 0x95, 0x76, 0xe1, 0x00, 0x01, 0xff, 0xff, | 1115 | 0xf4, 0x95, 0x76, 0xe1, 0x00, 0x01, 0xff, 0xff, |
1116 | 0x76, 0x81, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, | 1116 | 0x76, 0x81, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, |
1117 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x03, 0x00, 0xff, | 1117 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x03, 0x00, 0xff, |
1118 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, | 1118 | 0x8a, 0x11, 0xfc, 0x00, 0x4a, 0x11, 0xf4, 0x95, |
1119 | 0x13, 0x03, 0x88, 0x11, 0xfa, 0x4d, 0x12, 0xec, | 1119 | 0x13, 0x03, 0x88, 0x11, 0xfa, 0x4d, 0x12, 0xec, |
1120 | 0x71, 0x02, 0x00, 0x12, 0xf3, 0x10, 0x00, 0x01, | 1120 | 0x71, 0x02, 0x00, 0x12, 0xf3, 0x10, 0x00, 0x01, |
1121 | 0x89, 0x1a, 0xf4, 0x95, 0xf0, 0x72, 0x12, 0xeb, | 1121 | 0x89, 0x1a, 0xf4, 0x95, 0xf0, 0x72, 0x12, 0xeb, |
1122 | 0x70, 0x91, 0x00, 0x12, 0x8a, 0x11, 0xfc, 0x00, | 1122 | 0x70, 0x91, 0x00, 0x12, 0x8a, 0x11, 0xfc, 0x00, |
1123 | 0xf4, 0x95, 0x4a, 0x0b, 0x4a, 0x0c, 0x4a, 0x0d, | 1123 | 0xf4, 0x95, 0x4a, 0x0b, 0x4a, 0x0c, 0x4a, 0x0d, |
1124 | 0xf7, 0xb8, 0xee, 0xfe, 0x10, 0xf8, 0x00, 0x08, | 1124 | 0xf7, 0xb8, 0xee, 0xfe, 0x10, 0xf8, 0x00, 0x08, |
1125 | 0x11, 0x06, 0xf1, 0xc0, 0x83, 0x00, 0xf4, 0x85, | 1125 | 0x11, 0x06, 0xf1, 0xc0, 0x83, 0x00, 0xf4, 0x85, |
1126 | 0x11, 0x06, 0xf7, 0x85, 0x81, 0x06, 0xf6, 0xb8, | 1126 | 0x11, 0x06, 0xf7, 0x85, 0x81, 0x06, 0xf6, 0xb8, |
1127 | 0xec, 0x0f, 0x1e, 0x06, 0x61, 0x00, 0x80, 0x00, | 1127 | 0xec, 0x0f, 0x1e, 0x06, 0x61, 0x00, 0x80, 0x00, |
1128 | 0xf8, 0x20, 0x13, 0x05, 0xf4, 0x84, 0xee, 0x02, | 1128 | 0xf8, 0x20, 0x13, 0x05, 0xf4, 0x84, 0xee, 0x02, |
1129 | 0x8a, 0x0d, 0x8a, 0x0c, 0x8a, 0x0b, 0xfc, 0x00, | 1129 | 0x8a, 0x0d, 0x8a, 0x0c, 0x8a, 0x0b, 0xfc, 0x00, |
1130 | 0xf4, 0x95, 0x4a, 0x0b, 0x4a, 0x0c, 0x4a, 0x0d, | 1130 | 0xf4, 0x95, 0x4a, 0x0b, 0x4a, 0x0c, 0x4a, 0x0d, |
1131 | 0xee, 0xfe, 0xf7, 0xb8, 0x80, 0x00, 0x10, 0xf8, | 1131 | 0xee, 0xfe, 0xf7, 0xb8, 0x80, 0x00, 0x10, 0xf8, |
1132 | 0x00, 0x08, 0xf4, 0x85, 0x11, 0x06, 0xf7, 0x85, | 1132 | 0x00, 0x08, 0xf4, 0x85, 0x11, 0x06, 0xf7, 0x85, |
1133 | 0x81, 0x06, 0xf6, 0xb8, 0xec, 0x0f, 0x1e, 0x06, | 1133 | 0x81, 0x06, 0xf6, 0xb8, 0xec, 0x0f, 0x1e, 0x06, |
1134 | 0xf0, 0xf0, 0x61, 0x00, 0x80, 0x00, 0xf8, 0x20, | 1134 | 0xf0, 0xf0, 0x61, 0x00, 0x80, 0x00, 0xf8, 0x20, |
1135 | 0x13, 0x20, 0xf4, 0x84, 0xee, 0x02, 0x8a, 0x0d, | 1135 | 0x13, 0x20, 0xf4, 0x84, 0xee, 0x02, 0x8a, 0x0d, |
1136 | 0x8a, 0x0c, 0x8a, 0x0b, 0xfc, 0x00, 0x4a, 0x11, | 1136 | 0x8a, 0x0c, 0x8a, 0x0b, 0xfc, 0x00, 0x4a, 0x11, |
1137 | 0x77, 0x11, 0x00, 0x7b, 0x76, 0x81, 0x2e, 0xec, | 1137 | 0x77, 0x11, 0x00, 0x7b, 0x76, 0x81, 0x2e, 0xec, |
1138 | 0x77, 0x11, 0x00, 0x7b, 0xee, 0xff, 0x71, 0x81, | 1138 | 0x77, 0x11, 0x00, 0x7b, 0xee, 0xff, 0x71, 0x81, |
1139 | 0x00, 0x11, 0xee, 0x01, 0x76, 0xe1, 0x00, 0x01, | 1139 | 0x00, 0x11, 0xee, 0x01, 0x76, 0xe1, 0x00, 0x01, |
1140 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, | 1140 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x04, 0x00, 0x00, |
1141 | 0x76, 0xe1, 0x00, 0x06, 0x00, 0x00, 0x76, 0xe1, | 1141 | 0x76, 0xe1, 0x00, 0x06, 0x00, 0x00, 0x76, 0xe1, |
1142 | 0x00, 0x62, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x76, | 1142 | 0x00, 0x62, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x76, |
1143 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x92, 0x00, 0x00, | 1143 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x92, 0x00, 0x00, |
1144 | 0x76, 0xe1, 0x00, 0x94, 0x00, 0x00, 0x76, 0xe1, | 1144 | 0x76, 0xe1, 0x00, 0x94, 0x00, 0x00, 0x76, 0xe1, |
1145 | 0x00, 0xb0, 0x00, 0x00, 0x76, 0xe1, 0x00, 0xb3, | 1145 | 0x00, 0xb0, 0x00, 0x00, 0x76, 0xe1, 0x00, 0xb3, |
1146 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0xbe, 0x00, 0x00, | 1146 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0xbe, 0x00, 0x00, |
1147 | 0x76, 0xe1, 0x00, 0xbf, 0x00, 0x00, 0x76, 0xe1, | 1147 | 0x76, 0xe1, 0x00, 0xbf, 0x00, 0x00, 0x76, 0xe1, |
1148 | 0x00, 0xc1, 0x00, 0x00, 0x76, 0xe1, 0x00, 0xc3, | 1148 | 0x00, 0xc1, 0x00, 0x00, 0x76, 0xe1, 0x00, 0xc3, |
1149 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0xc5, 0x00, 0x00, | 1149 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0xc5, 0x00, 0x00, |
1150 | 0x76, 0xe1, 0x00, 0xc7, 0x00, 0x00, 0x76, 0x81, | 1150 | 0x76, 0xe1, 0x00, 0xc7, 0x00, 0x00, 0x76, 0x81, |
1151 | 0x00, 0x00, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, | 1151 | 0x00, 0x00, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, |
1152 | 0x4a, 0x11, 0x4a, 0x16, 0x4a, 0x17, 0xee, 0xff, | 1152 | 0x4a, 0x11, 0x4a, 0x16, 0x4a, 0x17, 0xee, 0xff, |
1153 | 0xf4, 0x95, 0x71, 0x06, 0x00, 0x16, 0xfb, 0x80, | 1153 | 0xf4, 0x95, 0x71, 0x06, 0x00, 0x16, 0xfb, 0x80, |
1154 | 0x16, 0xa2, 0x88, 0x17, 0xf4, 0x95, 0xf7, 0xb8, | 1154 | 0x16, 0xa2, 0x88, 0x17, 0xf4, 0x95, 0xf7, 0xb8, |
1155 | 0x10, 0xf8, 0x00, 0x17, 0xf0, 0x10, 0x00, 0x02, | 1155 | 0x10, 0xf8, 0x00, 0x17, 0xf0, 0x10, 0x00, 0x02, |
1156 | 0xfa, 0x46, 0x13, 0x88, 0x77, 0x11, 0x00, 0x00, | 1156 | 0xfa, 0x46, 0x13, 0x88, 0x77, 0x11, 0x00, 0x00, |
1157 | 0x10, 0xf8, 0x00, 0x17, 0xf0, 0x10, 0x00, 0x02, | 1157 | 0x10, 0xf8, 0x00, 0x17, 0xf0, 0x10, 0x00, 0x02, |
1158 | 0xf8, 0x45, 0x13, 0xf9, 0x10, 0xf8, 0x00, 0x17, | 1158 | 0xf8, 0x45, 0x13, 0xf9, 0x10, 0xf8, 0x00, 0x17, |
1159 | 0xf8, 0x45, 0x14, 0x39, 0x10, 0xf8, 0x00, 0x17, | 1159 | 0xf8, 0x45, 0x14, 0x39, 0x10, 0xf8, 0x00, 0x17, |
1160 | 0xf0, 0x10, 0x00, 0x01, 0xf8, 0x45, 0x14, 0x1f, | 1160 | 0xf0, 0x10, 0x00, 0x01, 0xf8, 0x45, 0x14, 0x1f, |
1161 | 0xf0, 0x73, 0x14, 0x52, 0x10, 0xf8, 0x00, 0x17, | 1161 | 0xf0, 0x73, 0x14, 0x52, 0x10, 0xf8, 0x00, 0x17, |
1162 | 0xf0, 0x10, 0x00, 0x03, 0xf8, 0x45, 0x13, 0xd3, | 1162 | 0xf0, 0x10, 0x00, 0x03, 0xf8, 0x45, 0x13, 0xd3, |
1163 | 0x10, 0xf8, 0x00, 0x17, 0xf0, 0x10, 0x00, 0x06, | 1163 | 0x10, 0xf8, 0x00, 0x17, 0xf0, 0x10, 0x00, 0x06, |
1164 | 0xf8, 0x44, 0x14, 0x52, 0x77, 0x12, 0x00, 0x7b, | 1164 | 0xf8, 0x44, 0x14, 0x52, 0x77, 0x12, 0x00, 0x7b, |
1165 | 0x71, 0x82, 0x00, 0x14, 0x61, 0xe4, 0x00, 0x07, | 1165 | 0x71, 0x82, 0x00, 0x14, 0x61, 0xe4, 0x00, 0x07, |
1166 | 0x00, 0x40, 0xf8, 0x30, 0x14, 0x52, 0x49, 0x14, | 1166 | 0x00, 0x40, 0xf8, 0x30, 0x14, 0x52, 0x49, 0x14, |
1167 | 0x48, 0x17, 0xf6, 0x00, 0x88, 0x12, 0xf4, 0x95, | 1167 | 0x48, 0x17, 0xf6, 0x00, 0x88, 0x12, 0xf4, 0x95, |
1168 | 0x77, 0x13, 0x00, 0x55, 0x77, 0x11, 0x00, 0x57, | 1168 | 0x77, 0x13, 0x00, 0x55, 0x77, 0x11, 0x00, 0x57, |
1169 | 0x6d, 0xea, 0x00, 0x3b, 0xe5, 0x01, 0x10, 0xe6, | 1169 | 0x6d, 0xea, 0x00, 0x3b, 0xe5, 0x01, 0x10, 0xe6, |
1170 | 0x00, 0x06, 0x80, 0x81, 0x48, 0x14, 0x00, 0xf8, | 1170 | 0x00, 0x06, 0x80, 0x81, 0x48, 0x14, 0x00, 0xf8, |
1171 | 0x00, 0x17, 0x88, 0x12, 0xf4, 0x95, 0x77, 0x11, | 1171 | 0x00, 0x17, 0x88, 0x12, 0xf4, 0x95, 0x77, 0x11, |
1172 | 0x00, 0x55, 0x10, 0xe2, 0x00, 0x40, 0x80, 0x81, | 1172 | 0x00, 0x55, 0x10, 0xe2, 0x00, 0x40, 0x80, 0x81, |
1173 | 0x77, 0x11, 0x00, 0x57, 0x10, 0xe6, 0x00, 0x07, | 1173 | 0x77, 0x11, 0x00, 0x57, 0x10, 0xe6, 0x00, 0x07, |
1174 | 0x80, 0x81, 0x77, 0x11, 0x00, 0x55, 0x10, 0xe2, | 1174 | 0x80, 0x81, 0x77, 0x11, 0x00, 0x55, 0x10, 0xe2, |
1175 | 0x00, 0x45, 0x80, 0x81, 0x10, 0xe6, 0x00, 0x08, | 1175 | 0x00, 0x45, 0x80, 0x81, 0x10, 0xe6, 0x00, 0x08, |
1176 | 0x77, 0x11, 0x00, 0x57, 0x80, 0x81, 0x77, 0x11, | 1176 | 0x77, 0x11, 0x00, 0x57, 0x80, 0x81, 0x77, 0x11, |
1177 | 0x00, 0x55, 0x10, 0xe2, 0x00, 0x4a, 0x80, 0x81, | 1177 | 0x00, 0x55, 0x10, 0xe2, 0x00, 0x4a, 0x80, 0x81, |
1178 | 0x77, 0x11, 0x00, 0x57, 0x10, 0xe6, 0x00, 0x09, | 1178 | 0x77, 0x11, 0x00, 0x57, 0x10, 0xe6, 0x00, 0x09, |
1179 | 0x80, 0x81, 0xf2, 0x73, 0x14, 0x52, 0x77, 0x11, | 1179 | 0x80, 0x81, 0xf2, 0x73, 0x14, 0x52, 0x77, 0x11, |
1180 | 0x03, 0xc0, 0x77, 0x12, 0x00, 0x7b, 0x10, 0x82, | 1180 | 0x03, 0xc0, 0x77, 0x12, 0x00, 0x7b, 0x10, 0x82, |
1181 | 0xf0, 0x00, 0x00, 0x07, 0x88, 0x13, 0xf4, 0x95, | 1181 | 0xf0, 0x00, 0x00, 0x07, 0x88, 0x13, 0xf4, 0x95, |
1182 | 0xf4, 0x95, 0x96, 0x1b, 0xf8, 0x30, 0x14, 0x52, | 1182 | 0xf4, 0x95, 0x96, 0x1b, 0xf8, 0x30, 0x14, 0x52, |
1183 | 0x10, 0xe3, 0x00, 0x35, 0x77, 0x12, 0x00, 0x55, | 1183 | 0x10, 0xe3, 0x00, 0x35, 0x77, 0x12, 0x00, 0x55, |
1184 | 0x80, 0x82, 0x77, 0x12, 0x00, 0x57, 0x10, 0xe6, | 1184 | 0x80, 0x82, 0x77, 0x12, 0x00, 0x57, 0x10, 0xe6, |
1185 | 0x00, 0x04, 0x80, 0x82, 0x77, 0x12, 0x00, 0x55, | 1185 | 0x00, 0x04, 0x80, 0x82, 0x77, 0x12, 0x00, 0x55, |
1186 | 0x10, 0xe3, 0x00, 0x37, 0x80, 0x82, 0x77, 0x12, | 1186 | 0x10, 0xe3, 0x00, 0x37, 0x80, 0x82, 0x77, 0x12, |
1187 | 0x00, 0x57, 0x10, 0xe6, 0x00, 0x05, 0x80, 0x82, | 1187 | 0x00, 0x57, 0x10, 0xe6, 0x00, 0x05, 0x80, 0x82, |
1188 | 0x48, 0x11, 0xf0, 0x40, 0x00, 0x10, 0xf2, 0x73, | 1188 | 0x48, 0x11, 0xf0, 0x40, 0x00, 0x10, 0xf2, 0x73, |
1189 | 0x14, 0x50, 0xf0, 0x40, 0x00, 0x20, 0x77, 0x12, | 1189 | 0x14, 0x50, 0xf0, 0x40, 0x00, 0x20, 0x77, 0x12, |
1190 | 0x00, 0x7b, 0x10, 0x82, 0xf0, 0x00, 0x00, 0x07, | 1190 | 0x00, 0x7b, 0x10, 0x82, 0xf0, 0x00, 0x00, 0x07, |
1191 | 0x88, 0x12, 0xf4, 0x95, 0xf4, 0x95, 0x96, 0x0d, | 1191 | 0x88, 0x12, 0xf4, 0x95, 0xf4, 0x95, 0x96, 0x0d, |
1192 | 0xf8, 0x30, 0x14, 0x52, 0x10, 0xe2, 0x00, 0x34, | 1192 | 0xf8, 0x30, 0x14, 0x52, 0x10, 0xe2, 0x00, 0x34, |
1193 | 0x77, 0x13, 0x00, 0x55, 0x80, 0x83, 0x77, 0x13, | 1193 | 0x77, 0x13, 0x00, 0x55, 0x80, 0x83, 0x77, 0x13, |
1194 | 0x00, 0x57, 0x10, 0xe6, 0x00, 0x02, 0x80, 0x83, | 1194 | 0x00, 0x57, 0x10, 0xe6, 0x00, 0x02, 0x80, 0x83, |
1195 | 0x10, 0xe2, 0x00, 0x36, 0x77, 0x12, 0x00, 0x55, | 1195 | 0x10, 0xe2, 0x00, 0x36, 0x77, 0x12, 0x00, 0x55, |
1196 | 0x80, 0x82, 0x77, 0x12, 0x00, 0x57, 0x10, 0xe6, | 1196 | 0x80, 0x82, 0x77, 0x12, 0x00, 0x57, 0x10, 0xe6, |
1197 | 0x00, 0x03, 0x80, 0x82, 0x48, 0x11, 0xf0, 0x40, | 1197 | 0x00, 0x03, 0x80, 0x82, 0x48, 0x11, 0xf0, 0x40, |
1198 | 0x00, 0x04, 0xf2, 0x73, 0x14, 0x50, 0xf0, 0x40, | 1198 | 0x00, 0x04, 0xf2, 0x73, 0x14, 0x50, 0xf0, 0x40, |
1199 | 0x00, 0x08, 0x77, 0x12, 0x00, 0x7b, 0x10, 0x82, | 1199 | 0x00, 0x08, 0x77, 0x12, 0x00, 0x7b, 0x10, 0x82, |
1200 | 0xf0, 0x00, 0x00, 0x07, 0x88, 0x12, 0xf4, 0x95, | 1200 | 0xf0, 0x00, 0x00, 0x07, 0x88, 0x12, 0xf4, 0x95, |
1201 | 0xf4, 0x95, 0x96, 0x0e, 0xf8, 0x30, 0x14, 0x52, | 1201 | 0xf4, 0x95, 0x96, 0x0e, 0xf8, 0x30, 0x14, 0x52, |
1202 | 0x10, 0xe2, 0x00, 0x33, 0x77, 0x12, 0x00, 0x55, | 1202 | 0x10, 0xe2, 0x00, 0x33, 0x77, 0x12, 0x00, 0x55, |
1203 | 0x80, 0x82, 0x77, 0x12, 0x00, 0x57, 0x10, 0xe6, | 1203 | 0x80, 0x82, 0x77, 0x12, 0x00, 0x57, 0x10, 0xe6, |
1204 | 0x00, 0x01, 0x80, 0x82, 0x48, 0x11, 0xf2, 0x73, | 1204 | 0x00, 0x01, 0x80, 0x82, 0x48, 0x11, 0xf2, 0x73, |
1205 | 0x14, 0x50, 0xf0, 0x40, 0x00, 0x02, 0x77, 0x12, | 1205 | 0x14, 0x50, 0xf0, 0x40, 0x00, 0x02, 0x77, 0x12, |
1206 | 0x00, 0x7b, 0x10, 0x82, 0xf0, 0x00, 0x00, 0x07, | 1206 | 0x00, 0x7b, 0x10, 0x82, 0xf0, 0x00, 0x00, 0x07, |
1207 | 0x88, 0x12, 0xf4, 0x95, 0xf4, 0x95, 0x96, 0x0f, | 1207 | 0x88, 0x12, 0xf4, 0x95, 0xf4, 0x95, 0x96, 0x0f, |
1208 | 0xf8, 0x30, 0x14, 0x52, 0x10, 0xe2, 0x00, 0x32, | 1208 | 0xf8, 0x30, 0x14, 0x52, 0x10, 0xe2, 0x00, 0x32, |
1209 | 0x77, 0x12, 0x00, 0x55, 0x77, 0x13, 0x00, 0x57, | 1209 | 0x77, 0x12, 0x00, 0x55, 0x77, 0x13, 0x00, 0x57, |
1210 | 0x80, 0x82, 0x48, 0x11, 0xe7, 0x62, 0xf0, 0x40, | 1210 | 0x80, 0x82, 0x48, 0x11, 0xe7, 0x62, 0xf0, 0x40, |
1211 | 0x00, 0x01, 0xe5, 0x01, 0x88, 0x11, 0xf4, 0x95, | 1211 | 0x00, 0x01, 0xe5, 0x01, 0x88, 0x11, 0xf4, 0x95, |
1212 | 0x77, 0x12, 0x00, 0x7b, 0x48, 0x11, 0x71, 0x82, | 1212 | 0x77, 0x12, 0x00, 0x7b, 0x48, 0x11, 0x71, 0x82, |
1213 | 0x00, 0x12, 0x1a, 0xe2, 0x00, 0x07, 0x80, 0xe2, | 1213 | 0x00, 0x12, 0x1a, 0xe2, 0x00, 0x07, 0x80, 0xe2, |
1214 | 0x00, 0x07, 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, | 1214 | 0x00, 0x07, 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, |
1215 | 0x8a, 0x17, 0x48, 0x11, 0x8a, 0x16, 0x8a, 0x11, | 1215 | 0x8a, 0x17, 0x48, 0x11, 0x8a, 0x16, 0x8a, 0x11, |
1216 | 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, 0x77, 0x0e, | 1216 | 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, 0x77, 0x0e, |
1217 | 0x00, 0x05, 0x77, 0x12, 0x00, 0x55, 0xe8, 0x04, | 1217 | 0x00, 0x05, 0x77, 0x12, 0x00, 0x55, 0xe8, 0x04, |
1218 | 0xf6, 0xb8, 0x28, 0xe1, 0x00, 0x02, 0xee, 0xff, | 1218 | 0xf6, 0xb8, 0x28, 0xe1, 0x00, 0x02, 0xee, 0xff, |
1219 | 0x80, 0x82, 0x77, 0x12, 0x00, 0x57, 0xf0, 0x20, | 1219 | 0x80, 0x82, 0x77, 0x12, 0x00, 0x57, 0xf0, 0x20, |
1220 | 0x80, 0x00, 0xee, 0x01, 0x1a, 0x82, 0x77, 0x12, | 1220 | 0x80, 0x00, 0xee, 0x01, 0x1a, 0x82, 0x77, 0x12, |
1221 | 0x00, 0x57, 0x80, 0x82, 0xe8, 0x01, 0x32, 0xe1, | 1221 | 0x00, 0x57, 0x80, 0x82, 0xe8, 0x01, 0x32, 0xe1, |
1222 | 0x00, 0x02, 0xf5, 0x82, 0x77, 0x11, 0x00, 0x54, | 1222 | 0x00, 0x02, 0xf5, 0x82, 0x77, 0x11, 0x00, 0x54, |
1223 | 0xf6, 0x93, 0x18, 0x81, 0x77, 0x11, 0x00, 0x54, | 1223 | 0xf6, 0x93, 0x18, 0x81, 0x77, 0x11, 0x00, 0x54, |
1224 | 0xf2, 0xa0, 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, | 1224 | 0xf2, 0xa0, 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, |
1225 | 0xf4, 0xe4, 0x4a, 0x11, 0x4a, 0x16, 0xf4, 0x95, | 1225 | 0xf4, 0xe4, 0x4a, 0x11, 0x4a, 0x16, 0xf4, 0x95, |
1226 | 0x71, 0x04, 0x00, 0x11, 0xfb, 0x80, 0x16, 0xa2, | 1226 | 0x71, 0x04, 0x00, 0x11, 0xfb, 0x80, 0x16, 0xa2, |
1227 | 0x88, 0x16, 0xf4, 0x95, 0x77, 0x12, 0x00, 0x55, | 1227 | 0x88, 0x16, 0xf4, 0x95, 0x77, 0x12, 0x00, 0x55, |
1228 | 0x10, 0xe6, 0x00, 0x03, 0x80, 0x82, 0x77, 0x12, | 1228 | 0x10, 0xe6, 0x00, 0x03, 0x80, 0x82, 0x77, 0x12, |
1229 | 0x00, 0x56, 0x10, 0xe1, 0x00, 0x02, 0x77, 0x13, | 1229 | 0x00, 0x56, 0x10, 0xe1, 0x00, 0x02, 0x77, 0x13, |
1230 | 0x00, 0x56, 0x80, 0x82, 0x77, 0x12, 0x00, 0x56, | 1230 | 0x00, 0x56, 0x80, 0x82, 0x77, 0x12, 0x00, 0x56, |
1231 | 0x10, 0xe1, 0x00, 0x03, 0x80, 0x82, 0x10, 0xe1, | 1231 | 0x10, 0xe1, 0x00, 0x03, 0x80, 0x82, 0x10, 0xe1, |
1232 | 0x00, 0x04, 0x77, 0x12, 0x00, 0x56, 0x80, 0x82, | 1232 | 0x00, 0x04, 0x77, 0x12, 0x00, 0x56, 0x80, 0x82, |
1233 | 0x77, 0x12, 0x00, 0x56, 0x10, 0xe1, 0x00, 0x01, | 1233 | 0x77, 0x12, 0x00, 0x56, 0x10, 0xe1, 0x00, 0x01, |
1234 | 0x80, 0x82, 0xe7, 0x12, 0xe5, 0x01, 0xf9, 0x80, | 1234 | 0x80, 0x82, 0xe7, 0x12, 0xe5, 0x01, 0xf9, 0x80, |
1235 | 0x16, 0x9a, 0x8a, 0x16, 0x8a, 0x11, 0xf4, 0xe4, | 1235 | 0x16, 0x9a, 0x8a, 0x16, 0x8a, 0x11, 0xf4, 0xe4, |
1236 | 0x4a, 0x11, 0x4a, 0x16, 0x4a, 0x17, 0xee, 0xf9, | 1236 | 0x4a, 0x11, 0x4a, 0x16, 0x4a, 0x17, 0xee, 0xf9, |
1237 | 0x77, 0x11, 0x00, 0x7b, 0x76, 0x00, 0x00, 0x16, | 1237 | 0x77, 0x11, 0x00, 0x7b, 0x76, 0x00, 0x00, 0x16, |
1238 | 0x76, 0x01, 0x00, 0x17, 0x76, 0x02, 0x00, 0x1a, | 1238 | 0x76, 0x01, 0x00, 0x17, 0x76, 0x02, 0x00, 0x1a, |
1239 | 0x76, 0x03, 0x00, 0x1b, 0x76, 0x04, 0x00, 0x1c, | 1239 | 0x76, 0x03, 0x00, 0x1b, 0x76, 0x04, 0x00, 0x1c, |
1240 | 0x76, 0x05, 0x00, 0x1d, 0x71, 0x81, 0x00, 0x17, | 1240 | 0x76, 0x05, 0x00, 0x1d, 0x71, 0x81, 0x00, 0x17, |
1241 | 0x71, 0xe7, 0x00, 0x06, 0x00, 0x11, 0x10, 0x81, | 1241 | 0x71, 0xe7, 0x00, 0x06, 0x00, 0x11, 0x10, 0x81, |
1242 | 0xf8, 0x44, 0x14, 0xdf, 0xf9, 0x80, 0x16, 0x53, | 1242 | 0xf8, 0x44, 0x14, 0xdf, 0xf9, 0x80, 0x16, 0x53, |
1243 | 0xf6, 0xb8, 0xfb, 0x80, 0x15, 0x85, 0xf0, 0x20, | 1243 | 0xf6, 0xb8, 0xfb, 0x80, 0x15, 0x85, 0xf0, 0x20, |
1244 | 0xff, 0xff, 0xf6, 0xb8, 0xfb, 0x80, 0x16, 0x08, | 1244 | 0xff, 0xff, 0xf6, 0xb8, 0xfb, 0x80, 0x16, 0x08, |
1245 | 0xf0, 0x20, 0xff, 0xff, 0x77, 0x11, 0x00, 0x7b, | 1245 | 0xf0, 0x20, 0xff, 0xff, 0x77, 0x11, 0x00, 0x7b, |
1246 | 0x71, 0x81, 0x00, 0x17, 0x76, 0xe7, 0x00, 0x06, | 1246 | 0x71, 0x81, 0x00, 0x17, 0x76, 0xe7, 0x00, 0x06, |
1247 | 0x00, 0x01, 0x48, 0x17, 0x77, 0x16, 0x00, 0x00, | 1247 | 0x00, 0x01, 0x48, 0x17, 0x77, 0x16, 0x00, 0x00, |
1248 | 0x77, 0x10, 0x00, 0x04, 0x77, 0x15, 0x00, 0x03, | 1248 | 0x77, 0x10, 0x00, 0x04, 0x77, 0x15, 0x00, 0x03, |
1249 | 0x77, 0x14, 0x00, 0x02, 0x77, 0x13, 0x00, 0x01, | 1249 | 0x77, 0x14, 0x00, 0x02, 0x77, 0x13, 0x00, 0x01, |
1250 | 0xf0, 0x00, 0x00, 0x39, 0x76, 0xe7, 0x00, 0x08, | 1250 | 0xf0, 0x00, 0x00, 0x39, 0x76, 0xe7, 0x00, 0x08, |
1251 | 0x00, 0x1f, 0x76, 0xe7, 0x00, 0x07, 0x00, 0x00, | 1251 | 0x00, 0x1f, 0x76, 0xe7, 0x00, 0x07, 0x00, 0x00, |
1252 | 0x88, 0x0e, 0x77, 0x1a, 0x00, 0x05, 0x48, 0x17, | 1252 | 0x88, 0x0e, 0x77, 0x1a, 0x00, 0x05, 0x48, 0x17, |
1253 | 0xf0, 0x00, 0x00, 0x09, 0x88, 0x12, 0x48, 0x18, | 1253 | 0xf0, 0x00, 0x00, 0x09, 0x88, 0x12, 0x48, 0x18, |
1254 | 0x88, 0x19, 0xe8, 0x00, 0xf0, 0x72, 0x15, 0x2c, | 1254 | 0x88, 0x19, 0xe8, 0x00, 0xf0, 0x72, 0x15, 0x2c, |
1255 | 0x73, 0x19, 0x00, 0x11, 0x76, 0x82, 0x00, 0x00, | 1255 | 0x73, 0x19, 0x00, 0x11, 0x76, 0x82, 0x00, 0x00, |
1256 | 0x11, 0x91, 0x73, 0x11, 0x00, 0x19, 0x70, 0xe2, | 1256 | 0x11, 0x91, 0x73, 0x11, 0x00, 0x19, 0x70, 0xe2, |
1257 | 0x00, 0x03, 0x00, 0x16, 0x70, 0xe2, 0x00, 0x04, | 1257 | 0x00, 0x03, 0x00, 0x16, 0x70, 0xe2, 0x00, 0x04, |
1258 | 0x00, 0x13, 0x70, 0xe2, 0x00, 0x05, 0x00, 0x14, | 1258 | 0x00, 0x13, 0x70, 0xe2, 0x00, 0x05, 0x00, 0x14, |
1259 | 0x81, 0xe2, 0x00, 0x01, 0x70, 0xe2, 0x00, 0x06, | 1259 | 0x81, 0xe2, 0x00, 0x01, 0x70, 0xe2, 0x00, 0x06, |
1260 | 0x00, 0x15, 0x70, 0xe2, 0x00, 0x07, 0x00, 0x10, | 1260 | 0x00, 0x15, 0x70, 0xe2, 0x00, 0x07, 0x00, 0x10, |
1261 | 0x80, 0xe2, 0x00, 0x02, 0x73, 0x0e, 0x00, 0x11, | 1261 | 0x80, 0xe2, 0x00, 0x02, 0x73, 0x0e, 0x00, 0x11, |
1262 | 0xf1, 0x00, 0x00, 0x1e, 0x6d, 0xee, 0x00, 0x05, | 1262 | 0xf1, 0x00, 0x00, 0x1e, 0x6d, 0xee, 0x00, 0x05, |
1263 | 0x6d, 0xeb, 0x00, 0x05, 0x6d, 0xec, 0x00, 0x05, | 1263 | 0x6d, 0xeb, 0x00, 0x05, 0x6d, 0xec, 0x00, 0x05, |
1264 | 0x6d, 0xed, 0x00, 0x05, 0x6d, 0xe8, 0x00, 0x05, | 1264 | 0x6d, 0xed, 0x00, 0x05, 0x6d, 0xe8, 0x00, 0x05, |
1265 | 0xf0, 0x00, 0x00, 0x01, 0x81, 0x91, 0x6d, 0xea, | 1265 | 0xf0, 0x00, 0x00, 0x01, 0x81, 0x91, 0x6d, 0xea, |
1266 | 0x00, 0x08, 0x73, 0x11, 0x00, 0x0e, 0xee, 0x07, | 1266 | 0x00, 0x08, 0x73, 0x11, 0x00, 0x0e, 0xee, 0x07, |
1267 | 0x76, 0xe7, 0x00, 0x41, 0x00, 0x24, 0x76, 0xe7, | 1267 | 0x76, 0xe7, 0x00, 0x41, 0x00, 0x24, 0x76, 0xe7, |
1268 | 0x00, 0x46, 0x00, 0x25, 0x76, 0xe7, 0x00, 0x4b, | 1268 | 0x00, 0x46, 0x00, 0x25, 0x76, 0xe7, 0x00, 0x4b, |
1269 | 0x00, 0x26, 0x76, 0xe7, 0x00, 0x50, 0x00, 0x27, | 1269 | 0x00, 0x26, 0x76, 0xe7, 0x00, 0x50, 0x00, 0x27, |
1270 | 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, 0xf4, 0xe4, | 1270 | 0x8a, 0x17, 0x8a, 0x16, 0x8a, 0x11, 0xf4, 0xe4, |
1271 | 0x4a, 0x11, 0x4a, 0x16, 0xee, 0xfe, 0x88, 0x11, | 1271 | 0x4a, 0x11, 0x4a, 0x16, 0xee, 0xfe, 0x88, 0x11, |
1272 | 0x56, 0x06, 0x4e, 0x00, 0xf9, 0x80, 0x16, 0xa2, | 1272 | 0x56, 0x06, 0x4e, 0x00, 0xf9, 0x80, 0x16, 0xa2, |
1273 | 0xf7, 0xb8, 0x10, 0xf8, 0x00, 0x11, 0xf0, 0x10, | 1273 | 0xf7, 0xb8, 0x10, 0xf8, 0x00, 0x11, 0xf0, 0x10, |
1274 | 0xff, 0xff, 0xfa, 0x45, 0x15, 0x60, 0x77, 0x16, | 1274 | 0xff, 0xff, 0xfa, 0x45, 0x15, 0x60, 0x77, 0x16, |
1275 | 0xff, 0xff, 0x77, 0x12, 0x00, 0x7b, 0x49, 0x11, | 1275 | 0xff, 0xff, 0x77, 0x12, 0x00, 0x7b, 0x49, 0x11, |
1276 | 0x10, 0x82, 0xf6, 0x03, 0xf0, 0x00, 0x00, 0x09, | 1276 | 0x10, 0x82, 0xf6, 0x03, 0xf0, 0x00, 0x00, 0x09, |
1277 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, | 1277 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, |
1278 | 0xf8, 0x44, 0x15, 0x71, 0xf2, 0x73, 0x15, 0x71, | 1278 | 0xf8, 0x44, 0x15, 0x71, 0xf2, 0x73, 0x15, 0x71, |
1279 | 0xf4, 0x95, 0xe7, 0x16, 0x77, 0x11, 0x00, 0x7b, | 1279 | 0xf4, 0x95, 0xe7, 0x16, 0x77, 0x11, 0x00, 0x7b, |
1280 | 0x10, 0x81, 0xf0, 0x00, 0x00, 0x09, 0x88, 0x11, | 1280 | 0x10, 0x81, 0xf0, 0x00, 0x00, 0x09, 0x88, 0x11, |
1281 | 0xf4, 0x95, 0x77, 0x12, 0x00, 0x06, 0x10, 0x81, | 1281 | 0xf4, 0x95, 0x77, 0x12, 0x00, 0x06, 0x10, 0x81, |
1282 | 0xf8, 0x45, 0x15, 0x5c, 0x6e, 0xea, 0xff, 0xff, | 1282 | 0xf8, 0x45, 0x15, 0x5c, 0x6e, 0xea, 0xff, 0xff, |
1283 | 0x15, 0x69, 0x6d, 0xe9, 0x00, 0x08, 0x76, 0x86, | 1283 | 0x15, 0x69, 0x6d, 0xe9, 0x00, 0x08, 0x76, 0x86, |
1284 | 0x00, 0x01, 0xe9, 0x01, 0x56, 0x00, 0xf1, 0x80, | 1284 | 0x00, 0x01, 0xe9, 0x01, 0x56, 0x00, 0xf1, 0x80, |
1285 | 0x10, 0xf8, 0x00, 0x0b, 0xf8, 0x45, 0x15, 0x7e, | 1285 | 0x10, 0xf8, 0x00, 0x0b, 0xf8, 0x45, 0x15, 0x7e, |
1286 | 0xfb, 0x80, 0x15, 0x85, 0xf4, 0x95, 0x48, 0x16, | 1286 | 0xfb, 0x80, 0x15, 0x85, 0xf4, 0x95, 0x48, 0x16, |
1287 | 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x02, 0x48, 0x16, | 1287 | 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x02, 0x48, 0x16, |
1288 | 0x8a, 0x16, 0x8a, 0x11, 0xf4, 0xe4, 0x4a, 0x11, | 1288 | 0x8a, 0x16, 0x8a, 0x11, 0xf4, 0xe4, 0x4a, 0x11, |
1289 | 0xee, 0xff, 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, | 1289 | 0xee, 0xff, 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, |
1290 | 0xf4, 0x95, 0x77, 0x10, 0xff, 0xff, 0xf4, 0xa9, | 1290 | 0xf4, 0x95, 0x77, 0x10, 0xff, 0xff, 0xf4, 0xa9, |
1291 | 0xf8, 0x30, 0x15, 0xc4, 0x10, 0xe1, 0x00, 0x03, | 1291 | 0xf8, 0x30, 0x15, 0xc4, 0x10, 0xe1, 0x00, 0x03, |
1292 | 0x77, 0x12, 0x00, 0x55, 0x80, 0x82, 0x77, 0x12, | 1292 | 0x77, 0x12, 0x00, 0x55, 0x80, 0x82, 0x77, 0x12, |
1293 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x77, 0x12, | 1293 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x77, 0x12, |
1294 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x77, 0x12, | 1294 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x77, 0x12, |
1295 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x77, 0x12, | 1295 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x77, 0x12, |
1296 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x77, 0x12, | 1296 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x77, 0x12, |
1297 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x10, 0xe1, | 1297 | 0x00, 0x56, 0x76, 0x82, 0x00, 0x00, 0x10, 0xe1, |
1298 | 0x00, 0x02, 0xf0, 0x00, 0x00, 0x08, 0x32, 0xf8, | 1298 | 0x00, 0x02, 0xf0, 0x00, 0x00, 0x08, 0x32, 0xf8, |
1299 | 0x00, 0x08, 0x77, 0x12, 0x00, 0x54, 0xe8, 0x01, | 1299 | 0x00, 0x08, 0x77, 0x12, 0x00, 0x54, 0xe8, 0x01, |
1300 | 0xf4, 0x82, 0xf4, 0x93, 0x18, 0x82, 0x77, 0x12, | 1300 | 0xf4, 0x82, 0xf4, 0x93, 0x18, 0x82, 0x77, 0x12, |
1301 | 0x00, 0x54, 0xf0, 0x40, 0x00, 0x00, 0x80, 0x82, | 1301 | 0x00, 0x54, 0xf0, 0x40, 0x00, 0x00, 0x80, 0x82, |
1302 | 0x10, 0xe1, 0x00, 0x01, 0xf9, 0x80, 0x16, 0x76, | 1302 | 0x10, 0xe1, 0x00, 0x01, 0xf9, 0x80, 0x16, 0x76, |
1303 | 0x10, 0xe1, 0x00, 0x01, 0xf9, 0x80, 0x16, 0x66, | 1303 | 0x10, 0xe1, 0x00, 0x01, 0xf9, 0x80, 0x16, 0x66, |
1304 | 0xf0, 0x73, 0x16, 0x03, 0x77, 0x11, 0x00, 0x7b, | 1304 | 0xf0, 0x73, 0x16, 0x03, 0x77, 0x11, 0x00, 0x7b, |
1305 | 0x71, 0x81, 0x00, 0x11, 0x71, 0xe1, 0x00, 0x07, | 1305 | 0x71, 0x81, 0x00, 0x11, 0x71, 0xe1, 0x00, 0x07, |
1306 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x10, 0xe1, | 1306 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x10, 0xe1, |
1307 | 0x00, 0x09, 0xf9, 0x80, 0x15, 0x85, 0x77, 0x11, | 1307 | 0x00, 0x09, 0xf9, 0x80, 0x15, 0x85, 0x77, 0x11, |
1308 | 0x00, 0x7b, 0x71, 0x81, 0x00, 0x11, 0x10, 0xe1, | 1308 | 0x00, 0x7b, 0x71, 0x81, 0x00, 0x11, 0x10, 0xe1, |
1309 | 0x00, 0x09, 0xfb, 0x80, 0x15, 0x85, 0xf0, 0x00, | 1309 | 0x00, 0x09, 0xfb, 0x80, 0x15, 0x85, 0xf0, 0x00, |
1310 | 0x00, 0x08, 0x77, 0x11, 0x00, 0x7b, 0x71, 0x81, | 1310 | 0x00, 0x08, 0x77, 0x11, 0x00, 0x7b, 0x71, 0x81, |
1311 | 0x00, 0x11, 0x10, 0xe1, 0x00, 0x09, 0xfb, 0x80, | 1311 | 0x00, 0x11, 0x10, 0xe1, 0x00, 0x09, 0xfb, 0x80, |
1312 | 0x15, 0x85, 0xf0, 0x00, 0x00, 0x10, 0x77, 0x11, | 1312 | 0x15, 0x85, 0xf0, 0x00, 0x00, 0x10, 0x77, 0x11, |
1313 | 0x00, 0x7b, 0x71, 0x81, 0x00, 0x11, 0x10, 0xe1, | 1313 | 0x00, 0x7b, 0x71, 0x81, 0x00, 0x11, 0x10, 0xe1, |
1314 | 0x00, 0x09, 0xfb, 0x80, 0x15, 0x85, 0xf0, 0x00, | 1314 | 0x00, 0x09, 0xfb, 0x80, 0x15, 0x85, 0xf0, 0x00, |
1315 | 0x00, 0x18, 0x77, 0x11, 0x00, 0x7b, 0x71, 0x81, | 1315 | 0x00, 0x18, 0x77, 0x11, 0x00, 0x7b, 0x71, 0x81, |
1316 | 0x00, 0x11, 0x10, 0xe1, 0x00, 0x09, 0xfb, 0x80, | 1316 | 0x00, 0x11, 0x10, 0xe1, 0x00, 0x09, 0xfb, 0x80, |
1317 | 0x15, 0x85, 0xf0, 0x00, 0x00, 0x20, 0x77, 0x11, | 1317 | 0x15, 0x85, 0xf0, 0x00, 0x00, 0x20, 0x77, 0x11, |
1318 | 0x00, 0x7b, 0x71, 0x81, 0x00, 0x11, 0x10, 0xe1, | 1318 | 0x00, 0x7b, 0x71, 0x81, 0x00, 0x11, 0x10, 0xe1, |
1319 | 0x00, 0x09, 0xfb, 0x80, 0x15, 0x85, 0xf0, 0x00, | 1319 | 0x00, 0x09, 0xfb, 0x80, 0x15, 0x85, 0xf0, 0x00, |
1320 | 0x00, 0x28, 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, | 1320 | 0x00, 0x28, 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, |
1321 | 0x8a, 0x11, 0xf4, 0xe4, 0x4a, 0x11, 0xee, 0xff, | 1321 | 0x8a, 0x11, 0xf4, 0xe4, 0x4a, 0x11, 0xee, 0xff, |
1322 | 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, 0xf4, 0x95, | 1322 | 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, 0xf4, 0x95, |
1323 | 0x77, 0x10, 0xff, 0xff, 0xf4, 0xa9, 0xf8, 0x30, | 1323 | 0x77, 0x10, 0xff, 0xff, 0xf4, 0xa9, 0xf8, 0x30, |
1324 | 0x16, 0x41, 0x77, 0x11, 0x00, 0x55, 0x76, 0x81, | 1324 | 0x16, 0x41, 0x77, 0x11, 0x00, 0x55, 0x76, 0x81, |
1325 | 0x00, 0x1e, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1325 | 0x00, 0x1e, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1326 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1326 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1327 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1327 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1328 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1328 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1329 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1329 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1330 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1330 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1331 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1331 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1332 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1332 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1333 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, | 1333 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0x76, 0x81, |
1334 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0xf2, 0x73, | 1334 | 0x00, 0x00, 0x77, 0x11, 0x00, 0x56, 0xf2, 0x73, |
1335 | 0x16, 0x4e, 0x76, 0x81, 0x00, 0x00, 0x77, 0x11, | 1335 | 0x16, 0x4e, 0x76, 0x81, 0x00, 0x00, 0x77, 0x11, |
1336 | 0x00, 0x7b, 0x71, 0x81, 0x00, 0x11, 0x71, 0xe1, | 1336 | 0x00, 0x7b, 0x71, 0x81, 0x00, 0x11, 0x71, 0xe1, |
1337 | 0x00, 0x07, 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, | 1337 | 0x00, 0x07, 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, |
1338 | 0x10, 0xe1, 0x00, 0x39, 0xf9, 0x80, 0x16, 0x08, | 1338 | 0x10, 0xe1, 0x00, 0x39, 0xf9, 0x80, 0x16, 0x08, |
1339 | 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, 0x8a, 0x11, | 1339 | 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, 0x8a, 0x11, |
1340 | 0xf4, 0xe4, 0x4a, 0x11, 0x77, 0x11, 0x00, 0x7b, | 1340 | 0xf4, 0xe4, 0x4a, 0x11, 0x77, 0x11, 0x00, 0x7b, |
1341 | 0x10, 0x81, 0xf0, 0x00, 0x00, 0x04, 0x88, 0x11, | 1341 | 0x10, 0x81, 0xf0, 0x00, 0x00, 0x04, 0x88, 0x11, |
1342 | 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, 0xfa, 0x44, | 1342 | 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, 0xfa, 0x44, |
1343 | 0x16, 0x63, 0xf4, 0x95, 0xee, 0xff, 0x76, 0x81, | 1343 | 0x16, 0x63, 0xf4, 0x95, 0xee, 0xff, 0x76, 0x81, |
1344 | 0x00, 0x01, 0xee, 0x01, 0x8a, 0x11, 0xf4, 0xe4, | 1344 | 0x00, 0x01, 0xee, 0x01, 0x8a, 0x11, 0xf4, 0xe4, |
1345 | 0xf0, 0x10, 0x00, 0x10, 0x4a, 0x11, 0x32, 0xf8, | 1345 | 0xf0, 0x10, 0x00, 0x10, 0x4a, 0x11, 0x32, 0xf8, |
1346 | 0x00, 0x08, 0xee, 0xff, 0x77, 0x11, 0x00, 0x01, | 1346 | 0x00, 0x08, 0xee, 0xff, 0x77, 0x11, 0x00, 0x01, |
1347 | 0xe8, 0x01, 0xee, 0x01, 0xf4, 0x82, 0x1a, 0x81, | 1347 | 0xe8, 0x01, 0xee, 0x01, 0xf4, 0x82, 0x1a, 0x81, |
1348 | 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, | 1348 | 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, |
1349 | 0xf0, 0x10, 0x00, 0x10, 0x4a, 0x11, 0x32, 0xf8, | 1349 | 0xf0, 0x10, 0x00, 0x10, 0x4a, 0x11, 0x32, 0xf8, |
1350 | 0x00, 0x08, 0xee, 0xff, 0xe8, 0x01, 0x77, 0x11, | 1350 | 0x00, 0x08, 0xee, 0xff, 0xe8, 0x01, 0x77, 0x11, |
1351 | 0x00, 0x00, 0xf4, 0x82, 0xee, 0x01, 0xf4, 0x93, | 1351 | 0x00, 0x00, 0xf4, 0x82, 0xee, 0x01, 0xf4, 0x93, |
1352 | 0x18, 0x81, 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, | 1352 | 0x18, 0x81, 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, |
1353 | 0xf4, 0xe4, 0x4a, 0x11, 0xf0, 0x10, 0x00, 0x10, | 1353 | 0xf4, 0xe4, 0x4a, 0x11, 0xf0, 0x10, 0x00, 0x10, |
1354 | 0x77, 0x11, 0x00, 0x00, 0x32, 0xf8, 0x00, 0x08, | 1354 | 0x77, 0x11, 0x00, 0x00, 0x32, 0xf8, 0x00, 0x08, |
1355 | 0xee, 0xff, 0x11, 0x81, 0xe8, 0x01, 0xee, 0x01, | 1355 | 0xee, 0xff, 0x11, 0x81, 0xe8, 0x01, 0xee, 0x01, |
1356 | 0x77, 0x11, 0x00, 0x00, 0xf4, 0x82, 0xf2, 0xa0, | 1356 | 0x77, 0x11, 0x00, 0x00, 0xf4, 0x82, 0xf2, 0xa0, |
1357 | 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, | 1357 | 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, |
1358 | 0xf2, 0x73, 0x16, 0x9e, 0xf6, 0xbb, 0xf4, 0x95, | 1358 | 0xf2, 0x73, 0x16, 0x9e, 0xf6, 0xbb, 0xf4, 0x95, |
1359 | 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0xe4, | 1359 | 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0xe4, |
1360 | 0xf2, 0x73, 0x16, 0xa6, 0xf7, 0xbb, 0xf4, 0x95, | 1360 | 0xf2, 0x73, 0x16, 0xa6, 0xf7, 0xbb, 0xf4, 0x95, |
1361 | 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0xe4, | 1361 | 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0x95, 0xf4, 0xe4, |
1362 | 0x4a, 0x11, 0x4a, 0x16, 0xf4, 0x95, 0x71, 0x04, | 1362 | 0x4a, 0x11, 0x4a, 0x16, 0xf4, 0x95, 0x71, 0x04, |
1363 | 0x00, 0x16, 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, | 1363 | 0x00, 0x16, 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, |
1364 | 0xf4, 0x95, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1364 | 0xf4, 0x95, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1365 | 0x76, 0x82, 0x00, 0x0e, 0x10, 0xe6, 0x00, 0x0e, | 1365 | 0x76, 0x82, 0x00, 0x0e, 0x10, 0xe6, 0x00, 0x0e, |
1366 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x80, 0x82, | 1366 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x80, 0x82, |
1367 | 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, | 1367 | 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, |
1368 | 0x00, 0x0d, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, | 1368 | 0x00, 0x0d, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, |
1369 | 0x10, 0xe6, 0x00, 0x0d, 0x80, 0x82, 0x71, 0xe1, | 1369 | 0x10, 0xe6, 0x00, 0x0d, 0x80, 0x82, 0x71, 0xe1, |
1370 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x0c, | 1370 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x0c, |
1371 | 0x10, 0xe6, 0x00, 0x0c, 0x71, 0xe1, 0x00, 0x06, | 1371 | 0x10, 0xe6, 0x00, 0x0c, 0x71, 0xe1, 0x00, 0x06, |
1372 | 0x00, 0x12, 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, | 1372 | 0x00, 0x12, 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, |
1373 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x0b, 0x10, 0xe6, | 1373 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x0b, 0x10, 0xe6, |
1374 | 0x00, 0x0b, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, | 1374 | 0x00, 0x0b, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, |
1375 | 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1375 | 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1376 | 0x76, 0x82, 0x00, 0x0a, 0x71, 0xe1, 0x00, 0x06, | 1376 | 0x76, 0x82, 0x00, 0x0a, 0x71, 0xe1, 0x00, 0x06, |
1377 | 0x00, 0x12, 0x10, 0xe6, 0x00, 0x0a, 0x80, 0x82, | 1377 | 0x00, 0x12, 0x10, 0xe6, 0x00, 0x0a, 0x80, 0x82, |
1378 | 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, | 1378 | 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, |
1379 | 0x00, 0x09, 0x10, 0xe6, 0x00, 0x09, 0x71, 0xe1, | 1379 | 0x00, 0x09, 0x10, 0xe6, 0x00, 0x09, 0x71, 0xe1, |
1380 | 0x00, 0x06, 0x00, 0x12, 0x80, 0x82, 0x71, 0xe1, | 1380 | 0x00, 0x06, 0x00, 0x12, 0x80, 0x82, 0x71, 0xe1, |
1381 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x08, | 1381 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x08, |
1382 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x10, 0xe6, | 1382 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x10, 0xe6, |
1383 | 0x00, 0x08, 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, | 1383 | 0x00, 0x08, 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, |
1384 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x07, 0x10, 0xe6, | 1384 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x07, 0x10, 0xe6, |
1385 | 0x00, 0x07, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, | 1385 | 0x00, 0x07, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, |
1386 | 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1386 | 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1387 | 0x76, 0x82, 0x00, 0x06, 0x71, 0xe1, 0x00, 0x06, | 1387 | 0x76, 0x82, 0x00, 0x06, 0x71, 0xe1, 0x00, 0x06, |
1388 | 0x00, 0x12, 0x10, 0xe6, 0x00, 0x06, 0x80, 0x82, | 1388 | 0x00, 0x12, 0x10, 0xe6, 0x00, 0x06, 0x80, 0x82, |
1389 | 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, | 1389 | 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, |
1390 | 0x00, 0x05, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, | 1390 | 0x00, 0x05, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, |
1391 | 0x10, 0xe6, 0x00, 0x05, 0x80, 0x82, 0x71, 0xe1, | 1391 | 0x10, 0xe6, 0x00, 0x05, 0x80, 0x82, 0x71, 0xe1, |
1392 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x04, | 1392 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x04, |
1393 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x10, 0xe6, | 1393 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x10, 0xe6, |
1394 | 0x00, 0x04, 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, | 1394 | 0x00, 0x04, 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, |
1395 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x03, 0x71, 0xe1, | 1395 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x03, 0x71, 0xe1, |
1396 | 0x00, 0x06, 0x00, 0x12, 0x10, 0xe6, 0x00, 0x03, | 1396 | 0x00, 0x06, 0x00, 0x12, 0x10, 0xe6, 0x00, 0x03, |
1397 | 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1397 | 0x80, 0x82, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1398 | 0x76, 0x82, 0x00, 0x02, 0x10, 0xe6, 0x00, 0x02, | 1398 | 0x76, 0x82, 0x00, 0x02, 0x10, 0xe6, 0x00, 0x02, |
1399 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x80, 0x82, | 1399 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x80, 0x82, |
1400 | 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, | 1400 | 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, |
1401 | 0x00, 0x01, 0x10, 0xe6, 0x00, 0x01, 0x71, 0xe1, | 1401 | 0x00, 0x01, 0x10, 0xe6, 0x00, 0x01, 0x71, 0xe1, |
1402 | 0x00, 0x06, 0x00, 0x12, 0x80, 0x82, 0x71, 0xe1, | 1402 | 0x00, 0x06, 0x00, 0x12, 0x80, 0x82, 0x71, 0xe1, |
1403 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, | 1403 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, |
1404 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x13, 0xe7, 0x62, | 1404 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x13, 0xe7, 0x62, |
1405 | 0xe5, 0x01, 0xf9, 0x80, 0x16, 0x9a, 0x8a, 0x16, | 1405 | 0xe5, 0x01, 0xf9, 0x80, 0x16, 0x9a, 0x8a, 0x16, |
1406 | 0x8a, 0x11, 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, | 1406 | 0x8a, 0x11, 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, |
1407 | 0xf4, 0x95, 0xf4, 0x95, 0x71, 0xe1, 0x00, 0x05, | 1407 | 0xf4, 0x95, 0xf4, 0x95, 0x71, 0xe1, 0x00, 0x05, |
1408 | 0x00, 0x12, 0xee, 0xff, 0x76, 0x82, 0x00, 0x00, | 1408 | 0x00, 0x12, 0xee, 0xff, 0x76, 0x82, 0x00, 0x00, |
1409 | 0xee, 0x01, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x11, | 1409 | 0xee, 0x01, 0x71, 0xe1, 0x00, 0x06, 0x00, 0x11, |
1410 | 0x69, 0x81, 0x00, 0x01, 0x8a, 0x11, 0xf4, 0x95, | 1410 | 0x69, 0x81, 0x00, 0x01, 0x8a, 0x11, 0xf4, 0x95, |
1411 | 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, 0xf4, 0x95, | 1411 | 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, 0xf4, 0x95, |
1412 | 0xf4, 0x95, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1412 | 0xf4, 0x95, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1413 | 0xee, 0xff, 0x76, 0x82, 0x00, 0x01, 0xee, 0x01, | 1413 | 0xee, 0xff, 0x76, 0x82, 0x00, 0x01, 0xee, 0x01, |
1414 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x11, 0x69, 0x81, | 1414 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x11, 0x69, 0x81, |
1415 | 0x00, 0x01, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, | 1415 | 0x00, 0x01, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, |
1416 | 0x4a, 0x11, 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, | 1416 | 0x4a, 0x11, 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, |
1417 | 0xf0, 0x00, 0x00, 0x94, 0x88, 0x11, 0xf4, 0x95, | 1417 | 0xf0, 0x00, 0x00, 0x94, 0x88, 0x11, 0xf4, 0x95, |
1418 | 0xf4, 0x95, 0x10, 0x81, 0xfa, 0x44, 0x17, 0x9c, | 1418 | 0xf4, 0x95, 0x10, 0x81, 0xfa, 0x44, 0x17, 0x9c, |
1419 | 0xf4, 0x95, 0xee, 0xff, 0xf9, 0x80, 0x16, 0x53, | 1419 | 0xf4, 0x95, 0xee, 0xff, 0xf9, 0x80, 0x16, 0x53, |
1420 | 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, 0xf0, 0x00, | 1420 | 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, 0xf0, 0x00, |
1421 | 0x00, 0x94, 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, | 1421 | 0x00, 0x94, 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, |
1422 | 0x76, 0x81, 0x00, 0x01, 0xee, 0x01, 0x76, 0xe1, | 1422 | 0x76, 0x81, 0x00, 0x01, 0xee, 0x01, 0x76, 0xe1, |
1423 | 0x00, 0x01, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, | 1423 | 0x00, 0x01, 0x00, 0x00, 0x76, 0xe1, 0x00, 0x02, |
1424 | 0x00, 0x21, 0x76, 0xe1, 0x00, 0x03, 0x00, 0x20, | 1424 | 0x00, 0x21, 0x76, 0xe1, 0x00, 0x03, 0x00, 0x20, |
1425 | 0x76, 0xe1, 0x00, 0x04, 0x00, 0x23, 0x76, 0xe1, | 1425 | 0x76, 0xe1, 0x00, 0x04, 0x00, 0x23, 0x76, 0xe1, |
1426 | 0x00, 0x05, 0x00, 0x22, 0x76, 0xe1, 0x00, 0x06, | 1426 | 0x00, 0x05, 0x00, 0x22, 0x76, 0xe1, 0x00, 0x06, |
1427 | 0x00, 0x38, 0x76, 0xe1, 0x00, 0x07, 0x00, 0x39, | 1427 | 0x00, 0x38, 0x76, 0xe1, 0x00, 0x07, 0x00, 0x39, |
1428 | 0x76, 0xe1, 0x00, 0x08, 0x00, 0x15, 0x76, 0xe1, | 1428 | 0x76, 0xe1, 0x00, 0x08, 0x00, 0x15, 0x76, 0xe1, |
1429 | 0x00, 0x09, 0x00, 0x14, 0x76, 0xe1, 0x00, 0x0a, | 1429 | 0x00, 0x09, 0x00, 0x14, 0x76, 0xe1, 0x00, 0x0a, |
1430 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0b, 0x00, 0x41, | 1430 | 0x00, 0x00, 0x76, 0xe1, 0x00, 0x0b, 0x00, 0x41, |
1431 | 0x76, 0xe1, 0x00, 0x0c, 0x00, 0x40, 0x76, 0xe1, | 1431 | 0x76, 0xe1, 0x00, 0x0c, 0x00, 0x40, 0x76, 0xe1, |
1432 | 0x00, 0x0d, 0x00, 0x43, 0x76, 0xe1, 0x00, 0x0e, | 1432 | 0x00, 0x0d, 0x00, 0x43, 0x76, 0xe1, 0x00, 0x0e, |
1433 | 0x00, 0x42, 0x76, 0xe1, 0x00, 0x0f, 0x00, 0x48, | 1433 | 0x00, 0x42, 0x76, 0xe1, 0x00, 0x0f, 0x00, 0x48, |
1434 | 0x76, 0xe1, 0x00, 0x10, 0x00, 0x49, 0x76, 0xe1, | 1434 | 0x76, 0xe1, 0x00, 0x10, 0x00, 0x49, 0x76, 0xe1, |
1435 | 0x00, 0x11, 0x00, 0x1b, 0x76, 0xe1, 0x00, 0x12, | 1435 | 0x00, 0x11, 0x00, 0x1b, 0x76, 0xe1, 0x00, 0x12, |
1436 | 0x00, 0x1a, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, | 1436 | 0x00, 0x1a, 0x8a, 0x11, 0xf4, 0x95, 0xf4, 0xe4, |
1437 | 0x4a, 0x11, 0xee, 0xfd, 0x88, 0x11, 0x56, 0x06, | 1437 | 0x4a, 0x11, 0xee, 0xfd, 0x88, 0x11, 0x56, 0x06, |
1438 | 0x4e, 0x00, 0xf9, 0x80, 0x16, 0xa2, 0x77, 0x12, | 1438 | 0x4e, 0x00, 0xf9, 0x80, 0x16, 0xa2, 0x77, 0x12, |
1439 | 0x00, 0x7b, 0x77, 0x0e, 0x00, 0x09, 0x10, 0x82, | 1439 | 0x00, 0x7b, 0x77, 0x0e, 0x00, 0x09, 0x10, 0x82, |
1440 | 0x28, 0xf8, 0x00, 0x11, 0xf0, 0x00, 0x00, 0x95, | 1440 | 0x28, 0xf8, 0x00, 0x11, 0xf0, 0x00, 0x00, 0x95, |
1441 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, | 1441 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, |
1442 | 0xf8, 0x45, 0x17, 0xf0, 0xf2, 0x73, 0x17, 0xfd, | 1442 | 0xf8, 0x45, 0x17, 0xf0, 0xf2, 0x73, 0x17, 0xfd, |
1443 | 0x77, 0x11, 0xff, 0xff, 0x76, 0x81, 0x00, 0x01, | 1443 | 0x77, 0x11, 0xff, 0xff, 0x76, 0x81, 0x00, 0x01, |
1444 | 0xe9, 0x01, 0x56, 0x00, 0xf1, 0x80, 0x10, 0xf8, | 1444 | 0xe9, 0x01, 0x56, 0x00, 0xf1, 0x80, 0x10, 0xf8, |
1445 | 0x00, 0x0b, 0xf8, 0x45, 0x17, 0xfd, 0xfb, 0x80, | 1445 | 0x00, 0x0b, 0xf8, 0x45, 0x17, 0xfd, 0xfb, 0x80, |
1446 | 0x18, 0x10, 0xf4, 0x95, 0x48, 0x11, 0xf9, 0x80, | 1446 | 0x18, 0x10, 0xf4, 0x95, 0x48, 0x11, 0xf9, 0x80, |
1447 | 0x16, 0x9a, 0xee, 0x03, 0x48, 0x11, 0x8a, 0x11, | 1447 | 0x16, 0x9a, 0xee, 0x03, 0x48, 0x11, 0x8a, 0x11, |
1448 | 0xf4, 0x95, 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, | 1448 | 0xf4, 0x95, 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, |
1449 | 0xf4, 0x95, 0xee, 0xff, 0x71, 0xe1, 0x00, 0x01, | 1449 | 0xf4, 0x95, 0xee, 0xff, 0x71, 0xe1, 0x00, 0x01, |
1450 | 0x00, 0x11, 0xee, 0x01, 0x10, 0x81, 0x8a, 0x11, | 1450 | 0x00, 0x11, 0xee, 0x01, 0x10, 0x81, 0x8a, 0x11, |
1451 | 0xf4, 0x95, 0xf4, 0xe4, 0x4a, 0x11, 0xee, 0xff, | 1451 | 0xf4, 0x95, 0xf4, 0xe4, 0x4a, 0x11, 0xee, 0xff, |
1452 | 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, 0xf4, 0x95, | 1452 | 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, 0xf4, 0x95, |
1453 | 0x77, 0x10, 0xff, 0xff, 0xf4, 0xa9, 0xf8, 0x30, | 1453 | 0x77, 0x10, 0xff, 0xff, 0xf4, 0xa9, 0xf8, 0x30, |
1454 | 0x18, 0xc3, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1454 | 0x18, 0xc3, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1455 | 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, 0x00, 0x06, | 1455 | 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, 0x00, 0x06, |
1456 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, | 1456 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, |
1457 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x01, | 1457 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x01, |
1458 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, | 1458 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, |
1459 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1459 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1460 | 0x76, 0x82, 0x00, 0x02, 0x71, 0xe1, 0x00, 0x06, | 1460 | 0x76, 0x82, 0x00, 0x02, 0x71, 0xe1, 0x00, 0x06, |
1461 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, | 1461 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, |
1462 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x03, | 1462 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x03, |
1463 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, | 1463 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, |
1464 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1464 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1465 | 0x76, 0x82, 0x00, 0x04, 0x71, 0xe1, 0x00, 0x06, | 1465 | 0x76, 0x82, 0x00, 0x04, 0x71, 0xe1, 0x00, 0x06, |
1466 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, | 1466 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, |
1467 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x05, | 1467 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x05, |
1468 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, | 1468 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, |
1469 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1469 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1470 | 0x76, 0x82, 0x00, 0x06, 0x71, 0xe1, 0x00, 0x06, | 1470 | 0x76, 0x82, 0x00, 0x06, 0x71, 0xe1, 0x00, 0x06, |
1471 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x01, 0x71, 0xe1, | 1471 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x01, 0x71, 0xe1, |
1472 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x07, | 1472 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x07, |
1473 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, | 1473 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, |
1474 | 0x20, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1474 | 0x20, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1475 | 0x76, 0x82, 0x00, 0x08, 0x71, 0xe1, 0x00, 0x06, | 1475 | 0x76, 0x82, 0x00, 0x08, 0x71, 0xe1, 0x00, 0x06, |
1476 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, | 1476 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, |
1477 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x09, | 1477 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x09, |
1478 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, | 1478 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, |
1479 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1479 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1480 | 0x76, 0x82, 0x00, 0x0a, 0x71, 0xe1, 0x00, 0x06, | 1480 | 0x76, 0x82, 0x00, 0x0a, 0x71, 0xe1, 0x00, 0x06, |
1481 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, | 1481 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, |
1482 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x0b, | 1482 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x0b, |
1483 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, | 1483 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, |
1484 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1484 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1485 | 0x76, 0x82, 0x00, 0x0c, 0x71, 0xe1, 0x00, 0x06, | 1485 | 0x76, 0x82, 0x00, 0x0c, 0x71, 0xe1, 0x00, 0x06, |
1486 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, | 1486 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x71, 0xe1, |
1487 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x0d, | 1487 | 0x00, 0x05, 0x00, 0x12, 0x76, 0x82, 0x00, 0x0d, |
1488 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, | 1488 | 0x71, 0xe1, 0x00, 0x06, 0x00, 0x12, 0x76, 0x82, |
1489 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, | 1489 | 0x00, 0x00, 0x71, 0xe1, 0x00, 0x05, 0x00, 0x12, |
1490 | 0x76, 0x82, 0x00, 0x0e, 0x71, 0xe1, 0x00, 0x06, | 1490 | 0x76, 0x82, 0x00, 0x0e, 0x71, 0xe1, 0x00, 0x06, |
1491 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x10, 0xe1, | 1491 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x00, 0x10, 0xe1, |
1492 | 0x00, 0x07, 0xf9, 0x80, 0x16, 0x76, 0x10, 0xe1, | 1492 | 0x00, 0x07, 0xf9, 0x80, 0x16, 0x76, 0x10, 0xe1, |
1493 | 0x00, 0x08, 0xf9, 0x80, 0x16, 0x76, 0x10, 0xe1, | 1493 | 0x00, 0x08, 0xf9, 0x80, 0x16, 0x76, 0x10, 0xe1, |
1494 | 0x00, 0x07, 0xf9, 0x80, 0x16, 0x66, 0x10, 0xe1, | 1494 | 0x00, 0x07, 0xf9, 0x80, 0x16, 0x66, 0x10, 0xe1, |
1495 | 0x00, 0x08, 0xf9, 0x80, 0x16, 0x66, 0xf0, 0x73, | 1495 | 0x00, 0x08, 0xf9, 0x80, 0x16, 0x66, 0xf0, 0x73, |
1496 | 0x18, 0xd1, 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, | 1496 | 0x18, 0xd1, 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, |
1497 | 0xfb, 0x80, 0x18, 0x10, 0xf0, 0x00, 0x00, 0x95, | 1497 | 0xfb, 0x80, 0x18, 0x10, 0xf0, 0x00, 0x00, 0x95, |
1498 | 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, 0xfb, 0x80, | 1498 | 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, 0xfb, 0x80, |
1499 | 0x18, 0x10, 0xf0, 0x00, 0x00, 0x9e, 0xf9, 0x80, | 1499 | 0x18, 0x10, 0xf0, 0x00, 0x00, 0x9e, 0xf9, 0x80, |
1500 | 0x16, 0x9a, 0xee, 0x01, 0x8a, 0x11, 0xf4, 0xe4, | 1500 | 0x16, 0x9a, 0xee, 0x01, 0x8a, 0x11, 0xf4, 0xe4, |
1501 | 0x4a, 0x11, 0x88, 0x11, 0xee, 0xff, 0xf4, 0x95, | 1501 | 0x4a, 0x11, 0x88, 0x11, 0xee, 0xff, 0xf4, 0x95, |
1502 | 0x10, 0x04, 0x71, 0xe1, 0x00, 0x03, 0x00, 0x11, | 1502 | 0x10, 0x04, 0x71, 0xe1, 0x00, 0x03, 0x00, 0x11, |
1503 | 0xee, 0x01, 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, | 1503 | 0xee, 0x01, 0x80, 0x81, 0x8a, 0x11, 0xf4, 0x95, |
1504 | 0xf4, 0xe4, 0x4a, 0x11, 0x4a, 0x16, 0xf4, 0x95, | 1504 | 0xf4, 0xe4, 0x4a, 0x11, 0x4a, 0x16, 0xf4, 0x95, |
1505 | 0x71, 0x04, 0x00, 0x16, 0xfb, 0x80, 0x16, 0xa2, | 1505 | 0x71, 0x04, 0x00, 0x16, 0xfb, 0x80, 0x16, 0xa2, |
1506 | 0x88, 0x11, 0xf4, 0x95, 0x71, 0xe1, 0x00, 0x02, | 1506 | 0x88, 0x11, 0xf4, 0x95, 0x71, 0xe1, 0x00, 0x02, |
1507 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x10, 0x10, 0xe6, | 1507 | 0x00, 0x12, 0x76, 0x82, 0x00, 0x10, 0x10, 0xe6, |
1508 | 0x00, 0x01, 0x71, 0xe1, 0x00, 0x03, 0x00, 0x12, | 1508 | 0x00, 0x01, 0x71, 0xe1, 0x00, 0x03, 0x00, 0x12, |
1509 | 0x80, 0x82, 0x71, 0xe1, 0x00, 0x04, 0x00, 0x12, | 1509 | 0x80, 0x82, 0x71, 0xe1, 0x00, 0x04, 0x00, 0x12, |
1510 | 0x10, 0xe6, 0x00, 0x02, 0x80, 0x82, 0xe7, 0x62, | 1510 | 0x10, 0xe6, 0x00, 0x02, 0x80, 0x82, 0xe7, 0x62, |
1511 | 0x71, 0xe1, 0x00, 0x02, 0x00, 0x13, 0xe5, 0x01, | 1511 | 0x71, 0xe1, 0x00, 0x02, 0x00, 0x13, 0xe5, 0x01, |
1512 | 0xf9, 0x80, 0x16, 0x9a, 0x8a, 0x16, 0x8a, 0x11, | 1512 | 0xf9, 0x80, 0x16, 0x9a, 0x8a, 0x16, 0x8a, 0x11, |
1513 | 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, 0xee, 0xff, | 1513 | 0xf4, 0xe4, 0x4a, 0x11, 0x88, 0x11, 0xee, 0xff, |
1514 | 0xee, 0x01, 0x10, 0xe1, 0x00, 0x01, 0x8a, 0x11, | 1514 | 0xee, 0x01, 0x10, 0xe1, 0x00, 0x01, 0x8a, 0x11, |
1515 | 0xf4, 0x95, 0xf4, 0xe4, 0x4a, 0x11, 0x77, 0x11, | 1515 | 0xf4, 0x95, 0xf4, 0xe4, 0x4a, 0x11, 0x77, 0x11, |
1516 | 0x00, 0x7b, 0x10, 0x81, 0xf0, 0x00, 0x00, 0xb3, | 1516 | 0x00, 0x7b, 0x10, 0x81, 0xf0, 0x00, 0x00, 0xb3, |
1517 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, | 1517 | 0x88, 0x11, 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, |
1518 | 0xfa, 0x44, 0x19, 0x2a, 0xf4, 0x95, 0xee, 0xff, | 1518 | 0xfa, 0x44, 0x19, 0x2a, 0xf4, 0x95, 0xee, 0xff, |
1519 | 0xf9, 0x80, 0x16, 0x53, 0x77, 0x11, 0x00, 0x7b, | 1519 | 0xf9, 0x80, 0x16, 0x53, 0x77, 0x11, 0x00, 0x7b, |
1520 | 0x10, 0x81, 0xf0, 0x00, 0x00, 0xb3, 0x88, 0x11, | 1520 | 0x10, 0x81, 0xf0, 0x00, 0x00, 0xb3, 0x88, 0x11, |
1521 | 0xf4, 0x95, 0xf4, 0x95, 0x76, 0x81, 0x00, 0x01, | 1521 | 0xf4, 0x95, 0xf4, 0x95, 0x76, 0x81, 0x00, 0x01, |
1522 | 0xee, 0x01, 0x76, 0xe1, 0x00, 0x01, 0x00, 0x00, | 1522 | 0xee, 0x01, 0x76, 0xe1, 0x00, 0x01, 0x00, 0x00, |
1523 | 0x76, 0xe1, 0x00, 0x02, 0x00, 0x13, 0x76, 0xe1, | 1523 | 0x76, 0xe1, 0x00, 0x02, 0x00, 0x13, 0x76, 0xe1, |
1524 | 0x00, 0x03, 0x00, 0x26, 0x76, 0xe1, 0x00, 0x04, | 1524 | 0x00, 0x03, 0x00, 0x26, 0x76, 0xe1, 0x00, 0x04, |
1525 | 0x00, 0x25, 0x76, 0xe1, 0x00, 0x05, 0x00, 0x24, | 1525 | 0x00, 0x25, 0x76, 0xe1, 0x00, 0x05, 0x00, 0x24, |
1526 | 0x76, 0xe1, 0x00, 0x06, 0x00, 0x00, 0x76, 0xe1, | 1526 | 0x76, 0xe1, 0x00, 0x06, 0x00, 0x00, 0x76, 0xe1, |
1527 | 0x00, 0x07, 0x00, 0x17, 0x76, 0xe1, 0x00, 0x08, | 1527 | 0x00, 0x07, 0x00, 0x17, 0x76, 0xe1, 0x00, 0x08, |
1528 | 0x00, 0x32, 0x76, 0xe1, 0x00, 0x09, 0x00, 0x31, | 1528 | 0x00, 0x32, 0x76, 0xe1, 0x00, 0x09, 0x00, 0x31, |
1529 | 0x76, 0xe1, 0x00, 0x0a, 0x00, 0x30, 0x8a, 0x11, | 1529 | 0x76, 0xe1, 0x00, 0x0a, 0x00, 0x30, 0x8a, 0x11, |
1530 | 0xf4, 0x95, 0xf4, 0xe4, 0x4a, 0x11, 0x4a, 0x16, | 1530 | 0xf4, 0x95, 0xf4, 0xe4, 0x4a, 0x11, 0x4a, 0x16, |
1531 | 0x4a, 0x17, 0xee, 0xff, 0xf4, 0x95, 0x71, 0x06, | 1531 | 0x4a, 0x17, 0xee, 0xff, 0xf4, 0x95, 0x71, 0x06, |
1532 | 0x00, 0x17, 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, | 1532 | 0x00, 0x17, 0xfb, 0x80, 0x16, 0xa2, 0x88, 0x11, |
1533 | 0xf4, 0x95, 0xf7, 0xb8, 0x10, 0xf8, 0x00, 0x11, | 1533 | 0xf4, 0x95, 0xf7, 0xb8, 0x10, 0xf8, 0x00, 0x11, |
1534 | 0xf0, 0x10, 0xff, 0xff, 0xfa, 0x45, 0x19, 0x73, | 1534 | 0xf0, 0x10, 0xff, 0xff, 0xfa, 0x45, 0x19, 0x73, |
1535 | 0x77, 0x16, 0xff, 0xff, 0x77, 0x12, 0x00, 0x7b, | 1535 | 0x77, 0x16, 0xff, 0xff, 0x77, 0x12, 0x00, 0x7b, |
1536 | 0x77, 0x0e, 0x00, 0x05, 0x10, 0x82, 0x28, 0xf8, | 1536 | 0x77, 0x0e, 0x00, 0x05, 0x10, 0x82, 0x28, 0xf8, |
1537 | 0x00, 0x11, 0xf0, 0x00, 0x00, 0xb4, 0x88, 0x11, | 1537 | 0x00, 0x11, 0xf0, 0x00, 0x00, 0xb4, 0x88, 0x11, |
1538 | 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, 0xf8, 0x44, | 1538 | 0xf4, 0x95, 0xf4, 0x95, 0x10, 0x81, 0xf8, 0x44, |
1539 | 0x19, 0x84, 0xf2, 0x73, 0x19, 0x84, 0xf4, 0x95, | 1539 | 0x19, 0x84, 0xf2, 0x73, 0x19, 0x84, 0xf4, 0x95, |
1540 | 0xe7, 0x16, 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, | 1540 | 0xe7, 0x16, 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, |
1541 | 0xf0, 0x00, 0x00, 0xb4, 0x88, 0x11, 0xf4, 0x95, | 1541 | 0xf0, 0x00, 0x00, 0xb4, 0x88, 0x11, 0xf4, 0x95, |
1542 | 0x77, 0x12, 0x00, 0x02, 0x10, 0x81, 0xf8, 0x45, | 1542 | 0x77, 0x12, 0x00, 0x02, 0x10, 0x81, 0xf8, 0x45, |
1543 | 0x19, 0x6f, 0x6e, 0xea, 0xff, 0xff, 0x19, 0x7c, | 1543 | 0x19, 0x6f, 0x6e, 0xea, 0xff, 0xff, 0x19, 0x7c, |
1544 | 0x6d, 0xe9, 0x00, 0x05, 0x61, 0xf8, 0x00, 0x17, | 1544 | 0x6d, 0xe9, 0x00, 0x05, 0x61, 0xf8, 0x00, 0x17, |
1545 | 0x00, 0x01, 0xfa, 0x20, 0x19, 0x8f, 0x76, 0x86, | 1545 | 0x00, 0x01, 0xfa, 0x20, 0x19, 0x8f, 0x76, 0x86, |
1546 | 0x00, 0x01, 0xfb, 0x80, 0x19, 0x97, 0xf4, 0x95, | 1546 | 0x00, 0x01, 0xfb, 0x80, 0x19, 0x97, 0xf4, 0x95, |
1547 | 0x48, 0x16, 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, | 1547 | 0x48, 0x16, 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, |
1548 | 0x8a, 0x17, 0x48, 0x16, 0x8a, 0x16, 0x8a, 0x11, | 1548 | 0x8a, 0x17, 0x48, 0x16, 0x8a, 0x16, 0x8a, 0x11, |
1549 | 0xf4, 0xe4, 0x4a, 0x11, 0xee, 0xff, 0xfb, 0x80, | 1549 | 0xf4, 0xe4, 0x4a, 0x11, 0xee, 0xff, 0xfb, 0x80, |
1550 | 0x16, 0xa2, 0x88, 0x11, 0xf4, 0x95, 0x77, 0x10, | 1550 | 0x16, 0xa2, 0x88, 0x11, 0xf4, 0x95, 0x77, 0x10, |
1551 | 0xff, 0xff, 0xf4, 0xa9, 0xf8, 0x30, 0x19, 0xcc, | 1551 | 0xff, 0xff, 0xf4, 0xa9, 0xf8, 0x30, 0x19, 0xcc, |
1552 | 0x71, 0xe1, 0x00, 0x02, 0x00, 0x12, 0x69, 0x82, | 1552 | 0x71, 0xe1, 0x00, 0x02, 0x00, 0x12, 0x69, 0x82, |
1553 | 0x00, 0x10, 0x71, 0xe1, 0x00, 0x02, 0x00, 0x12, | 1553 | 0x00, 0x10, 0x71, 0xe1, 0x00, 0x02, 0x00, 0x12, |
1554 | 0x68, 0x82, 0xf7, 0xff, 0x71, 0xe1, 0x00, 0x02, | 1554 | 0x68, 0x82, 0xf7, 0xff, 0x71, 0xe1, 0x00, 0x02, |
1555 | 0x00, 0x12, 0x68, 0x82, 0xfb, 0xff, 0x71, 0xe1, | 1555 | 0x00, 0x12, 0x68, 0x82, 0xfb, 0xff, 0x71, 0xe1, |
1556 | 0x00, 0x02, 0x00, 0x12, 0x68, 0x82, 0xff, 0xf0, | 1556 | 0x00, 0x02, 0x00, 0x12, 0x68, 0x82, 0xff, 0xf0, |
1557 | 0x71, 0xe1, 0x00, 0x03, 0x00, 0x12, 0x76, 0x82, | 1557 | 0x71, 0xe1, 0x00, 0x03, 0x00, 0x12, 0x76, 0x82, |
1558 | 0xff, 0xff, 0x71, 0xe1, 0x00, 0x04, 0x00, 0x12, | 1558 | 0xff, 0xff, 0x71, 0xe1, 0x00, 0x04, 0x00, 0x12, |
1559 | 0x76, 0x82, 0xff, 0xff, 0x71, 0xe1, 0x00, 0x02, | 1559 | 0x76, 0x82, 0xff, 0xff, 0x71, 0xe1, 0x00, 0x02, |
1560 | 0x00, 0x12, 0x69, 0x82, 0x00, 0x20, 0x71, 0xe1, | 1560 | 0x00, 0x12, 0x69, 0x82, 0x00, 0x20, 0x71, 0xe1, |
1561 | 0x00, 0x02, 0x00, 0x11, 0xf2, 0x73, 0x19, 0xda, | 1561 | 0x00, 0x02, 0x00, 0x11, 0xf2, 0x73, 0x19, 0xda, |
1562 | 0x68, 0x81, 0xff, 0xef, 0x77, 0x11, 0x00, 0x7b, | 1562 | 0x68, 0x81, 0xff, 0xef, 0x77, 0x11, 0x00, 0x7b, |
1563 | 0x10, 0x81, 0xfb, 0x80, 0x19, 0x97, 0xf0, 0x00, | 1563 | 0x10, 0x81, 0xfb, 0x80, 0x19, 0x97, 0xf0, 0x00, |
1564 | 0x00, 0xb4, 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, | 1564 | 0x00, 0xb4, 0x77, 0x11, 0x00, 0x7b, 0x10, 0x81, |
1565 | 0xfb, 0x80, 0x19, 0x97, 0xf0, 0x00, 0x00, 0xb9, | 1565 | 0xfb, 0x80, 0x19, 0x97, 0xf0, 0x00, 0x00, 0xb9, |
1566 | 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, 0x8a, 0x11, | 1566 | 0xf9, 0x80, 0x16, 0x9a, 0xee, 0x01, 0x8a, 0x11, |
1567 | 0xf4, 0xe4, 0x00, 0xa4, 0x00, 0x00, 0x19, 0xdf, | 1567 | 0xf4, 0xe4, 0x00, 0xa4, 0x00, 0x00, 0x19, 0xdf, |
1568 | 0x00, 0x01, 0x2a, 0xe6, 0x00, 0x00, 0x00, 0x01, | 1568 | 0x00, 0x01, 0x2a, 0xe6, 0x00, 0x00, 0x00, 0x01, |
1569 | 0x2a, 0xe7, 0x00, 0x00, 0x00, 0x03, 0x2a, 0x12, | 1569 | 0x2a, 0xe7, 0x00, 0x00, 0x00, 0x03, 0x2a, 0x12, |
1570 | 0x0c, 0x01, 0xc3, 0x4f, 0x00, 0x00, 0x00, 0x01, | 1570 | 0x0c, 0x01, 0xc3, 0x4f, 0x00, 0x00, 0x00, 0x01, |
1571 | 0x2a, 0x15, 0x00, 0x00, 0x00, 0x02, 0x2a, 0x16, | 1571 | 0x2a, 0x15, 0x00, 0x00, 0x00, 0x02, 0x2a, 0x16, |
1572 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x2a, 0x5d, | 1572 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x2a, 0x5d, |
1573 | 0x00, 0x43, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, | 1573 | 0x00, 0x43, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, |
1574 | 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, | 1574 | 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, |
1575 | 0x00, 0x74, 0x00, 0x20, 0x00, 0x54, 0x00, 0x65, | 1575 | 0x00, 0x74, 0x00, 0x20, 0x00, 0x54, 0x00, 0x65, |
1576 | 0x00, 0x63, 0x00, 0x68, 0x00, 0x6e, 0x00, 0x6f, | 1576 | 0x00, 0x63, 0x00, 0x68, 0x00, 0x6e, 0x00, 0x6f, |
1577 | 0x00, 0x54, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6e, | 1577 | 0x00, 0x54, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6e, |
1578 | 0x00, 0x64, 0x00, 0x20, 0x00, 0x41, 0x00, 0x47, | 1578 | 0x00, 0x64, 0x00, 0x20, 0x00, 0x41, 0x00, 0x47, |
1579 | 0x00, 0x00, 0x00, 0x04, 0x2a, 0x76, 0x00, 0x30, | 1579 | 0x00, 0x00, 0x00, 0x04, 0x2a, 0x76, 0x00, 0x30, |
1580 | 0x00, 0x2e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x0c, | 1580 | 0x00, 0x2e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x0c, |
1581 | 0x2a, 0x7a, 0x00, 0x46, 0x00, 0x65, 0x00, 0x62, | 1581 | 0x2a, 0x7a, 0x00, 0x46, 0x00, 0x65, 0x00, 0x62, |
1582 | 0x00, 0x20, 0x00, 0x32, 0x00, 0x37, 0x00, 0x20, | 1582 | 0x00, 0x20, 0x00, 0x32, 0x00, 0x37, 0x00, 0x20, |
1583 | 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x31, | 1583 | 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x31, |
1584 | 0x00, 0x00, 0x00, 0x09, 0x2a, 0x86, 0x00, 0x31, | 1584 | 0x00, 0x00, 0x00, 0x09, 0x2a, 0x86, 0x00, 0x31, |
1585 | 0x00, 0x34, 0x00, 0x3a, 0x00, 0x33, 0x00, 0x35, | 1585 | 0x00, 0x34, 0x00, 0x3a, 0x00, 0x33, 0x00, 0x35, |
1586 | 0x00, 0x3a, 0x00, 0x33, 0x00, 0x33, 0x00, 0x00, | 1586 | 0x00, 0x3a, 0x00, 0x33, 0x00, 0x33, 0x00, 0x00, |
1587 | 0x00, 0x0f, 0x2a, 0x8f, 0x00, 0x00, 0x00, 0x00, | 1587 | 0x00, 0x0f, 0x2a, 0x8f, 0x00, 0x00, 0x00, 0x00, |
1588 | 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, | 1588 | 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, |
1589 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 1589 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
1590 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 1590 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
1591 | 0x00, 0x00, 0x00, 0x01, 0x2a, 0x9e, 0x00, 0x00, | 1591 | 0x00, 0x00, 0x00, 0x01, 0x2a, 0x9e, 0x00, 0x00, |
1592 | 0x00, 0x01, 0x2a, 0x9f, 0x00, 0x00, 0x00, 0x01, | 1592 | 0x00, 0x01, 0x2a, 0x9f, 0x00, 0x00, 0x00, 0x01, |
1593 | 0x2a, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x2a, 0xa1, | 1593 | 0x2a, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x2a, 0xa1, |
1594 | 0x00, 0x00, 0x00, 0x01, 0x2a, 0xa2, 0x00, 0x00, | 1594 | 0x00, 0x00, 0x00, 0x01, 0x2a, 0xa2, 0x00, 0x00, |
1595 | 0x00, 0x01, 0x29, 0x7e, 0x00, 0x00, 0x00, 0x02, | 1595 | 0x00, 0x01, 0x29, 0x7e, 0x00, 0x00, 0x00, 0x02, |
1596 | 0x29, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | 1596 | 0x29, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
1597 | 0x29, 0x82, 0xff, 0xff, 0x00, 0x01, 0x2a, 0xa7, | 1597 | 0x29, 0x82, 0xff, 0xff, 0x00, 0x01, 0x2a, 0xa7, |
1598 | 0x00, 0x00, 0x00, 0x05, 0x2a, 0xa8, 0x71, 0x41, | 1598 | 0x00, 0x00, 0x00, 0x05, 0x2a, 0xa8, 0x71, 0x41, |
1599 | 0x20, 0x00, 0x20, 0x00, 0x00, 0x23, 0x04, 0x00, | 1599 | 0x20, 0x00, 0x20, 0x00, 0x00, 0x23, 0x04, 0x00, |
1600 | 0x00, 0x0a, 0x2a, 0xad, 0x00, 0x00, 0x00, 0x00, | 1600 | 0x00, 0x0a, 0x2a, 0xad, 0x00, 0x00, 0x00, 0x00, |
1601 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 1601 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
1602 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 1602 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
1603 | 0x00, 0x0f, 0x2a, 0xb7, 0x00, 0x00, 0x00, 0x00, | 1603 | 0x00, 0x0f, 0x2a, 0xb7, 0x00, 0x00, 0x00, 0x00, |
1604 | 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x82, 0x40, | 1604 | 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x82, 0x40, |
1605 | 0x00, 0x08, 0x30, 0x7f, 0x00, 0x80, 0x01, 0x80, | 1605 | 0x00, 0x08, 0x30, 0x7f, 0x00, 0x80, 0x01, 0x80, |
1606 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 1606 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
1607 | 0x00, 0x00, 0x00, 0x01, 0x27, 0x6e, 0x00, 0x00, | 1607 | 0x00, 0x00, 0x00, 0x01, 0x27, 0x6e, 0x00, 0x00, |
1608 | 0x00, 0x01, 0x27, 0x6f, 0x00, 0x00, 0x00, 0x00, | 1608 | 0x00, 0x01, 0x27, 0x6f, 0x00, 0x00, 0x00, 0x00, |
1609 | 0x00, 0x09, 0x00, 0x00, 0x1a, 0x83, 0x04, 0xe8, | 1609 | 0x00, 0x09, 0x00, 0x00, 0x1a, 0x83, 0x04, 0xe8, |
1610 | 0x04, 0xcf, 0x04, 0xc5, 0x04, 0xba, 0x04, 0xb0, | 1610 | 0x04, 0xcf, 0x04, 0xc5, 0x04, 0xba, 0x04, 0xb0, |
1611 | 0x04, 0xac, 0x04, 0x9c, 0x04, 0x8c, 0x04, 0x81, | 1611 | 0x04, 0xac, 0x04, 0x9c, 0x04, 0x8c, 0x04, 0x81, |
1612 | 0x00, 0x78, 0x00, 0x00, 0x01, 0x00, 0xf2, 0x73, | 1612 | 0x00, 0x78, 0x00, 0x00, 0x01, 0x00, 0xf2, 0x73, |
1613 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1613 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1614 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1614 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1615 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1615 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1616 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1616 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1617 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1617 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1618 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1618 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1619 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1619 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1620 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1620 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1621 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1621 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1622 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1622 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1623 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1623 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1624 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1624 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1625 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1625 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1626 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1626 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1627 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1627 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1628 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1628 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1629 | 0x07, 0xaa, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1629 | 0x07, 0xaa, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1630 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1630 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1631 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1631 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1632 | 0x02, 0x23, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1632 | 0x02, 0x23, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1633 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1633 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1634 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1634 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1635 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1635 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1636 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1636 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1637 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1637 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1638 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1638 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1639 | 0x05, 0xe5, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1639 | 0x05, 0xe5, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1640 | 0x02, 0xb5, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1640 | 0x02, 0xb5, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1641 | 0x0e, 0x33, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, | 1641 | 0x0e, 0x33, 0xf4, 0x95, 0xf4, 0x95, 0xf2, 0x73, |
1642 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0x00, 0x00, | 1642 | 0x07, 0xef, 0xf4, 0x95, 0xf4, 0x95, 0x00, 0x00, |
1643 | }; | 1643 | }; |
1644 | 1644 | ||
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c index 832d179f26f..8abc2189012 100644 --- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c +++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c | |||
@@ -1203,7 +1203,7 @@ static int ttusb_init_rc(struct ttusb_dec *dec) | |||
1203 | input_dev->keycode = rc_keys; | 1203 | input_dev->keycode = rc_keys; |
1204 | 1204 | ||
1205 | for (i = 0; i < ARRAY_SIZE(rc_keys); i++) | 1205 | for (i = 0; i < ARRAY_SIZE(rc_keys); i++) |
1206 | set_bit(rc_keys[i], input_dev->keybit); | 1206 | set_bit(rc_keys[i], input_dev->keybit); |
1207 | 1207 | ||
1208 | input_register_device(input_dev); | 1208 | input_register_device(input_dev); |
1209 | 1209 | ||
@@ -1529,7 +1529,7 @@ static void ttusb_dec_exit_rc(struct ttusb_dec *dec) | |||
1529 | usb_free_urb(dec->irq_urb); | 1529 | usb_free_urb(dec->irq_urb); |
1530 | 1530 | ||
1531 | usb_buffer_free(dec->udev,IRQ_PACKET_SIZE, | 1531 | usb_buffer_free(dec->udev,IRQ_PACKET_SIZE, |
1532 | dec->irq_buffer, dec->irq_dma_handle); | 1532 | dec->irq_buffer, dec->irq_dma_handle); |
1533 | 1533 | ||
1534 | if (dec->rc_input_dev) { | 1534 | if (dec->rc_input_dev) { |
1535 | input_unregister_device(dec->rc_input_dev); | 1535 | input_unregister_device(dec->rc_input_dev); |
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index 1a3b3c7e5e9..fc87efc5049 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig | |||
@@ -26,15 +26,12 @@ config VIDEO_BT848 | |||
26 | module will be called bttv. | 26 | module will be called bttv. |
27 | 27 | ||
28 | config VIDEO_BT848_DVB | 28 | config VIDEO_BT848_DVB |
29 | tristate "DVB/ATSC Support for bt878 based TV cards" | 29 | bool "DVB/ATSC Support for bt878 based TV cards" |
30 | depends on VIDEO_BT848 && DVB_CORE | 30 | depends on VIDEO_BT848 && DVB_CORE |
31 | select DVB_BT8XX | 31 | select DVB_BT8XX |
32 | ---help--- | 32 | ---help--- |
33 | This adds support for DVB/ATSC cards based on the BT878 chip. | 33 | This adds support for DVB/ATSC cards based on the BT878 chip. |
34 | 34 | ||
35 | To compile this driver as a module, choose M here: the | ||
36 | module will be called dvb-bt8xx. | ||
37 | |||
38 | config VIDEO_SAA6588 | 35 | config VIDEO_SAA6588 |
39 | tristate "SAA6588 Radio Chip RDS decoder support on BT848 cards" | 36 | tristate "SAA6588 Radio Chip RDS decoder support on BT848 cards" |
40 | depends on VIDEO_DEV && I2C && VIDEO_BT848 | 37 | depends on VIDEO_DEV && I2C && VIDEO_BT848 |
@@ -191,7 +188,7 @@ config VIDEO_ZORAN | |||
191 | 188 | ||
192 | To compile this driver as a module, choose M here: the | 189 | To compile this driver as a module, choose M here: the |
193 | module will be called zr36067. | 190 | module will be called zr36067. |
194 | 191 | ||
195 | config VIDEO_ZORAN_BUZ | 192 | config VIDEO_ZORAN_BUZ |
196 | tristate "Iomega Buz support" | 193 | tristate "Iomega Buz support" |
197 | depends on VIDEO_ZORAN | 194 | depends on VIDEO_ZORAN |
@@ -207,8 +204,8 @@ config VIDEO_ZORAN_DC10 | |||
207 | 204 | ||
208 | config VIDEO_ZORAN_DC30 | 205 | config VIDEO_ZORAN_DC30 |
209 | tristate "Pinnacle/Miro DC30(+) support" | 206 | tristate "Pinnacle/Miro DC30(+) support" |
210 | depends on VIDEO_ZORAN | 207 | depends on VIDEO_ZORAN |
211 | help | 208 | help |
212 | Support for the Pinnacle/Miro DC30(+) MJPEG capture/playback | 209 | Support for the Pinnacle/Miro DC30(+) MJPEG capture/playback |
213 | card. This also supports really old DC10 cards based on the | 210 | card. This also supports really old DC10 cards based on the |
214 | zr36050 MJPEG codec and zr36016 VFE. | 211 | zr36050 MJPEG codec and zr36016 VFE. |
@@ -263,7 +260,7 @@ config VIDEO_MXB | |||
263 | ---help--- | 260 | ---help--- |
264 | This is a video4linux driver for the 'Multimedia eXtension Board' | 261 | This is a video4linux driver for the 'Multimedia eXtension Board' |
265 | TV card by Siemens-Nixdorf. | 262 | TV card by Siemens-Nixdorf. |
266 | 263 | ||
267 | To compile this driver as a module, choose M here: the | 264 | To compile this driver as a module, choose M here: the |
268 | module will be called mxb. | 265 | module will be called mxb. |
269 | 266 | ||
@@ -277,7 +274,7 @@ config VIDEO_DPC | |||
277 | for SAA7146 bases boards, so if you have some unsupported | 274 | for SAA7146 bases boards, so if you have some unsupported |
278 | saa7146 based, analog video card, chances are good that it | 275 | saa7146 based, analog video card, chances are good that it |
279 | will work with this skeleton driver. | 276 | will work with this skeleton driver. |
280 | 277 | ||
281 | To compile this driver as a module, choose M here: the | 278 | To compile this driver as a module, choose M here: the |
282 | module will be called dpc7146. | 279 | module will be called dpc7146. |
283 | 280 | ||
@@ -288,7 +285,7 @@ config VIDEO_HEXIUM_ORION | |||
288 | ---help--- | 285 | ---help--- |
289 | This is a video4linux driver for the Hexium HV-PCI6 and | 286 | This is a video4linux driver for the Hexium HV-PCI6 and |
290 | Orion frame grabber cards by Hexium. | 287 | Orion frame grabber cards by Hexium. |
291 | 288 | ||
292 | To compile this driver as a module, choose M here: the | 289 | To compile this driver as a module, choose M here: the |
293 | module will be called hexium_orion. | 290 | module will be called hexium_orion. |
294 | 291 | ||
@@ -300,7 +297,7 @@ config VIDEO_HEXIUM_GEMINI | |||
300 | This is a video4linux driver for the Hexium Gemini frame | 297 | This is a video4linux driver for the Hexium Gemini frame |
301 | grabber card by Hexium. Please note that the Gemini Dual | 298 | grabber card by Hexium. Please note that the Gemini Dual |
302 | card is *not* fully supported. | 299 | card is *not* fully supported. |
303 | 300 | ||
304 | To compile this driver as a module, choose M here: the | 301 | To compile this driver as a module, choose M here: the |
305 | module will be called hexium_gemini. | 302 | module will be called hexium_gemini. |
306 | 303 | ||
diff --git a/drivers/media/video/adv7170.c b/drivers/media/video/adv7170.c index 1ca2b67aedf..e61003de1d5 100644 --- a/drivers/media/video/adv7170.c +++ b/drivers/media/video/adv7170.c | |||
@@ -420,7 +420,6 @@ adv7170_detect_client (struct i2c_adapter *adapter, | |||
420 | client->addr = address; | 420 | client->addr = address; |
421 | client->adapter = adapter; | 421 | client->adapter = adapter; |
422 | client->driver = &i2c_driver_adv7170; | 422 | client->driver = &i2c_driver_adv7170; |
423 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
424 | if ((client->addr == I2C_ADV7170 >> 1) || | 423 | if ((client->addr == I2C_ADV7170 >> 1) || |
425 | (client->addr == (I2C_ADV7170 >> 1) + 1)) { | 424 | (client->addr == (I2C_ADV7170 >> 1) + 1)) { |
426 | dname = adv7170_name; | 425 | dname = adv7170_name; |
@@ -498,11 +497,11 @@ adv7170_detach_client (struct i2c_client *client) | |||
498 | /* ----------------------------------------------------------------------- */ | 497 | /* ----------------------------------------------------------------------- */ |
499 | 498 | ||
500 | static struct i2c_driver i2c_driver_adv7170 = { | 499 | static struct i2c_driver i2c_driver_adv7170 = { |
501 | .owner = THIS_MODULE, | 500 | .driver = { |
502 | .name = "adv7170", /* name */ | 501 | .name = "adv7170", /* name */ |
502 | }, | ||
503 | 503 | ||
504 | .id = I2C_DRIVERID_ADV7170, | 504 | .id = I2C_DRIVERID_ADV7170, |
505 | .flags = I2C_DF_NOTIFY, | ||
506 | 505 | ||
507 | .attach_adapter = adv7170_attach_adapter, | 506 | .attach_adapter = adv7170_attach_adapter, |
508 | .detach_client = adv7170_detach_client, | 507 | .detach_client = adv7170_detach_client, |
diff --git a/drivers/media/video/adv7175.c b/drivers/media/video/adv7175.c index 173bca1e029..6d9536a71ee 100644 --- a/drivers/media/video/adv7175.c +++ b/drivers/media/video/adv7175.c | |||
@@ -470,7 +470,6 @@ adv7175_detect_client (struct i2c_adapter *adapter, | |||
470 | client->addr = address; | 470 | client->addr = address; |
471 | client->adapter = adapter; | 471 | client->adapter = adapter; |
472 | client->driver = &i2c_driver_adv7175; | 472 | client->driver = &i2c_driver_adv7175; |
473 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
474 | if ((client->addr == I2C_ADV7175 >> 1) || | 473 | if ((client->addr == I2C_ADV7175 >> 1) || |
475 | (client->addr == (I2C_ADV7175 >> 1) + 1)) { | 474 | (client->addr == (I2C_ADV7175 >> 1) + 1)) { |
476 | dname = adv7175_name; | 475 | dname = adv7175_name; |
@@ -548,11 +547,11 @@ adv7175_detach_client (struct i2c_client *client) | |||
548 | /* ----------------------------------------------------------------------- */ | 547 | /* ----------------------------------------------------------------------- */ |
549 | 548 | ||
550 | static struct i2c_driver i2c_driver_adv7175 = { | 549 | static struct i2c_driver i2c_driver_adv7175 = { |
551 | .owner = THIS_MODULE, | 550 | .driver = { |
552 | .name = "adv7175", /* name */ | 551 | .name = "adv7175", /* name */ |
552 | }, | ||
553 | 553 | ||
554 | .id = I2C_DRIVERID_ADV7175, | 554 | .id = I2C_DRIVERID_ADV7175, |
555 | .flags = I2C_DF_NOTIFY, | ||
556 | 555 | ||
557 | .attach_adapter = adv7175_attach_adapter, | 556 | .attach_adapter = adv7175_attach_adapter, |
558 | .detach_client = adv7175_detach_client, | 557 | .detach_client = adv7175_detach_client, |
diff --git a/drivers/media/video/bt819.c b/drivers/media/video/bt819.c index 3ee0afca76a..560b9989175 100644 --- a/drivers/media/video/bt819.c +++ b/drivers/media/video/bt819.c | |||
@@ -535,7 +535,6 @@ bt819_detect_client (struct i2c_adapter *adapter, | |||
535 | client->addr = address; | 535 | client->addr = address; |
536 | client->adapter = adapter; | 536 | client->adapter = adapter; |
537 | client->driver = &i2c_driver_bt819; | 537 | client->driver = &i2c_driver_bt819; |
538 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
539 | 538 | ||
540 | decoder = kmalloc(sizeof(struct bt819), GFP_KERNEL); | 539 | decoder = kmalloc(sizeof(struct bt819), GFP_KERNEL); |
541 | if (decoder == NULL) { | 540 | if (decoder == NULL) { |
@@ -623,11 +622,11 @@ bt819_detach_client (struct i2c_client *client) | |||
623 | /* ----------------------------------------------------------------------- */ | 622 | /* ----------------------------------------------------------------------- */ |
624 | 623 | ||
625 | static struct i2c_driver i2c_driver_bt819 = { | 624 | static struct i2c_driver i2c_driver_bt819 = { |
626 | .owner = THIS_MODULE, | 625 | .driver = { |
627 | .name = "bt819", | 626 | .name = "bt819", |
627 | }, | ||
628 | 628 | ||
629 | .id = I2C_DRIVERID_BT819, | 629 | .id = I2C_DRIVERID_BT819, |
630 | .flags = I2C_DF_NOTIFY, | ||
631 | 630 | ||
632 | .attach_adapter = bt819_attach_adapter, | 631 | .attach_adapter = bt819_attach_adapter, |
633 | .detach_client = bt819_detach_client, | 632 | .detach_client = bt819_detach_client, |
diff --git a/drivers/media/video/bt832.c b/drivers/media/video/bt832.c index e4063950ae5..1c3ff5f38a6 100644 --- a/drivers/media/video/bt832.c +++ b/drivers/media/video/bt832.c | |||
@@ -230,19 +230,18 @@ bt832_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
230 | /* ----------------------------------------------------------------------- */ | 230 | /* ----------------------------------------------------------------------- */ |
231 | 231 | ||
232 | static struct i2c_driver driver = { | 232 | static struct i2c_driver driver = { |
233 | .owner = THIS_MODULE, | 233 | .driver = { |
234 | .name = "i2c bt832 driver", | 234 | .name = "i2c bt832 driver", |
235 | .id = -1, /* FIXME */ | 235 | }, |
236 | .flags = I2C_DF_NOTIFY, | 236 | .id = -1, /* FIXME */ |
237 | .attach_adapter = bt832_probe, | 237 | .attach_adapter = bt832_probe, |
238 | .detach_client = bt832_detach, | 238 | .detach_client = bt832_detach, |
239 | .command = bt832_command, | 239 | .command = bt832_command, |
240 | }; | 240 | }; |
241 | static struct i2c_client client_template = | 241 | static struct i2c_client client_template = |
242 | { | 242 | { |
243 | .name = "bt832", | 243 | .name = "bt832", |
244 | .flags = I2C_CLIENT_ALLOW_USE, | 244 | .driver = &driver, |
245 | .driver = &driver, | ||
246 | }; | 245 | }; |
247 | 246 | ||
248 | 247 | ||
diff --git a/drivers/media/video/bt856.c b/drivers/media/video/bt856.c index 8eb871d0e85..60508069bbe 100644 --- a/drivers/media/video/bt856.c +++ b/drivers/media/video/bt856.c | |||
@@ -323,7 +323,6 @@ bt856_detect_client (struct i2c_adapter *adapter, | |||
323 | client->addr = address; | 323 | client->addr = address; |
324 | client->adapter = adapter; | 324 | client->adapter = adapter; |
325 | client->driver = &i2c_driver_bt856; | 325 | client->driver = &i2c_driver_bt856; |
326 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
327 | strlcpy(I2C_NAME(client), "bt856", sizeof(I2C_NAME(client))); | 326 | strlcpy(I2C_NAME(client), "bt856", sizeof(I2C_NAME(client))); |
328 | 327 | ||
329 | encoder = kmalloc(sizeof(struct bt856), GFP_KERNEL); | 328 | encoder = kmalloc(sizeof(struct bt856), GFP_KERNEL); |
@@ -405,11 +404,11 @@ bt856_detach_client (struct i2c_client *client) | |||
405 | /* ----------------------------------------------------------------------- */ | 404 | /* ----------------------------------------------------------------------- */ |
406 | 405 | ||
407 | static struct i2c_driver i2c_driver_bt856 = { | 406 | static struct i2c_driver i2c_driver_bt856 = { |
408 | .owner = THIS_MODULE, | 407 | .driver = { |
409 | .name = "bt856", | 408 | .name = "bt856", |
409 | }, | ||
410 | 410 | ||
411 | .id = I2C_DRIVERID_BT856, | 411 | .id = I2C_DRIVERID_BT856, |
412 | .flags = I2C_DF_NOTIFY, | ||
413 | 412 | ||
414 | .attach_adapter = bt856_attach_adapter, | 413 | .attach_adapter = bt856_attach_adapter, |
415 | .detach_client = bt856_detach_client, | 414 | .detach_client = bt856_detach_client, |
diff --git a/drivers/media/video/bttv-cards.c b/drivers/media/video/bttv-cards.c index e31ebb11c46..012be639aa1 100644 --- a/drivers/media/video/bttv-cards.c +++ b/drivers/media/video/bttv-cards.c | |||
@@ -2904,7 +2904,7 @@ void __devinit bttv_idcard(struct bttv *btv) | |||
2904 | */ | 2904 | */ |
2905 | 2905 | ||
2906 | /* Some Modular Technology cards have an eeprom, but no subsystem ID */ | 2906 | /* Some Modular Technology cards have an eeprom, but no subsystem ID */ |
2907 | void identify_by_eeprom(struct bttv *btv, unsigned char eeprom_data[256]) | 2907 | static void identify_by_eeprom(struct bttv *btv, unsigned char eeprom_data[256]) |
2908 | { | 2908 | { |
2909 | int type = -1; | 2909 | int type = -1; |
2910 | 2910 | ||
@@ -3879,7 +3879,7 @@ static void __devinit init_PXC200(struct bttv *btv) | |||
3879 | * error. ERROR_CPLD_Check_Failed. | 3879 | * error. ERROR_CPLD_Check_Failed. |
3880 | */ | 3880 | */ |
3881 | /* ----------------------------------------------------------------------- */ | 3881 | /* ----------------------------------------------------------------------- */ |
3882 | void | 3882 | static void |
3883 | init_RTV24 (struct bttv *btv) | 3883 | init_RTV24 (struct bttv *btv) |
3884 | { | 3884 | { |
3885 | uint32_t dataRead = 0; | 3885 | uint32_t dataRead = 0; |
@@ -4103,7 +4103,7 @@ void tea5757_set_freq(struct bttv *btv, unsigned short freq) | |||
4103 | /* ----------------------------------------------------------------------- */ | 4103 | /* ----------------------------------------------------------------------- */ |
4104 | /* winview */ | 4104 | /* winview */ |
4105 | 4105 | ||
4106 | void winview_audio(struct bttv *btv, struct video_audio *v, int set) | 4106 | static void winview_audio(struct bttv *btv, struct video_audio *v, int set) |
4107 | { | 4107 | { |
4108 | /* PT2254A programming Jon Tombs, jon@gte.esi.us.es */ | 4108 | /* PT2254A programming Jon Tombs, jon@gte.esi.us.es */ |
4109 | int bits_out, loops, vol, data; | 4109 | int bits_out, loops, vol, data; |
diff --git a/drivers/media/video/bttv-driver.c b/drivers/media/video/bttv-driver.c index 709099f03bd..1ddf9ba613e 100644 --- a/drivers/media/video/bttv-driver.c +++ b/drivers/media/video/bttv-driver.c | |||
@@ -727,71 +727,71 @@ void free_btres(struct bttv *btv, struct bttv_fh *fh, int bits) | |||
727 | 727 | ||
728 | static void set_pll_freq(struct bttv *btv, unsigned int fin, unsigned int fout) | 728 | static void set_pll_freq(struct bttv *btv, unsigned int fin, unsigned int fout) |
729 | { | 729 | { |
730 | unsigned char fl, fh, fi; | 730 | unsigned char fl, fh, fi; |
731 | 731 | ||
732 | /* prevent overflows */ | 732 | /* prevent overflows */ |
733 | fin/=4; | 733 | fin/=4; |
734 | fout/=4; | 734 | fout/=4; |
735 | 735 | ||
736 | fout*=12; | 736 | fout*=12; |
737 | fi=fout/fin; | 737 | fi=fout/fin; |
738 | 738 | ||
739 | fout=(fout%fin)*256; | 739 | fout=(fout%fin)*256; |
740 | fh=fout/fin; | 740 | fh=fout/fin; |
741 | 741 | ||
742 | fout=(fout%fin)*256; | 742 | fout=(fout%fin)*256; |
743 | fl=fout/fin; | 743 | fl=fout/fin; |
744 | 744 | ||
745 | btwrite(fl, BT848_PLL_F_LO); | 745 | btwrite(fl, BT848_PLL_F_LO); |
746 | btwrite(fh, BT848_PLL_F_HI); | 746 | btwrite(fh, BT848_PLL_F_HI); |
747 | btwrite(fi|BT848_PLL_X, BT848_PLL_XCI); | 747 | btwrite(fi|BT848_PLL_X, BT848_PLL_XCI); |
748 | } | 748 | } |
749 | 749 | ||
750 | static void set_pll(struct bttv *btv) | 750 | static void set_pll(struct bttv *btv) |
751 | { | 751 | { |
752 | int i; | 752 | int i; |
753 | 753 | ||
754 | if (!btv->pll.pll_crystal) | 754 | if (!btv->pll.pll_crystal) |
755 | return; | 755 | return; |
756 | 756 | ||
757 | if (btv->pll.pll_ofreq == btv->pll.pll_current) { | 757 | if (btv->pll.pll_ofreq == btv->pll.pll_current) { |
758 | dprintk("bttv%d: PLL: no change required\n",btv->c.nr); | 758 | dprintk("bttv%d: PLL: no change required\n",btv->c.nr); |
759 | return; | 759 | return; |
760 | } | 760 | } |
761 | 761 | ||
762 | if (btv->pll.pll_ifreq == btv->pll.pll_ofreq) { | 762 | if (btv->pll.pll_ifreq == btv->pll.pll_ofreq) { |
763 | /* no PLL needed */ | 763 | /* no PLL needed */ |
764 | if (btv->pll.pll_current == 0) | 764 | if (btv->pll.pll_current == 0) |
765 | return; | 765 | return; |
766 | bttv_printk(KERN_INFO "bttv%d: PLL can sleep, using XTAL (%d).\n", | 766 | bttv_printk(KERN_INFO "bttv%d: PLL can sleep, using XTAL (%d).\n", |
767 | btv->c.nr,btv->pll.pll_ifreq); | 767 | btv->c.nr,btv->pll.pll_ifreq); |
768 | btwrite(0x00,BT848_TGCTRL); | 768 | btwrite(0x00,BT848_TGCTRL); |
769 | btwrite(0x00,BT848_PLL_XCI); | 769 | btwrite(0x00,BT848_PLL_XCI); |
770 | btv->pll.pll_current = 0; | 770 | btv->pll.pll_current = 0; |
771 | return; | 771 | return; |
772 | } | 772 | } |
773 | 773 | ||
774 | bttv_printk(KERN_INFO "bttv%d: PLL: %d => %d ",btv->c.nr, | 774 | bttv_printk(KERN_INFO "bttv%d: PLL: %d => %d ",btv->c.nr, |
775 | btv->pll.pll_ifreq, btv->pll.pll_ofreq); | 775 | btv->pll.pll_ifreq, btv->pll.pll_ofreq); |
776 | set_pll_freq(btv, btv->pll.pll_ifreq, btv->pll.pll_ofreq); | 776 | set_pll_freq(btv, btv->pll.pll_ifreq, btv->pll.pll_ofreq); |
777 | 777 | ||
778 | for (i=0; i<10; i++) { | 778 | for (i=0; i<10; i++) { |
779 | /* Let other people run while the PLL stabilizes */ | 779 | /* Let other people run while the PLL stabilizes */ |
780 | bttv_printk("."); | 780 | bttv_printk("."); |
781 | msleep(10); | 781 | msleep(10); |
782 | 782 | ||
783 | if (btread(BT848_DSTATUS) & BT848_DSTATUS_PLOCK) { | 783 | if (btread(BT848_DSTATUS) & BT848_DSTATUS_PLOCK) { |
784 | btwrite(0,BT848_DSTATUS); | 784 | btwrite(0,BT848_DSTATUS); |
785 | } else { | 785 | } else { |
786 | btwrite(0x08,BT848_TGCTRL); | 786 | btwrite(0x08,BT848_TGCTRL); |
787 | btv->pll.pll_current = btv->pll.pll_ofreq; | 787 | btv->pll.pll_current = btv->pll.pll_ofreq; |
788 | bttv_printk(" ok\n"); | 788 | bttv_printk(" ok\n"); |
789 | return; | 789 | return; |
790 | } | 790 | } |
791 | } | 791 | } |
792 | btv->pll.pll_current = -1; | 792 | btv->pll.pll_current = -1; |
793 | bttv_printk("failed\n"); | 793 | bttv_printk("failed\n"); |
794 | return; | 794 | return; |
795 | } | 795 | } |
796 | 796 | ||
797 | /* used to switch between the bt848's analog/digital video capture modes */ | 797 | /* used to switch between the bt848's analog/digital video capture modes */ |
@@ -1720,7 +1720,7 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg) | |||
1720 | memset(i,0,sizeof(*i)); | 1720 | memset(i,0,sizeof(*i)); |
1721 | i->index = n; | 1721 | i->index = n; |
1722 | i->type = V4L2_INPUT_TYPE_CAMERA; | 1722 | i->type = V4L2_INPUT_TYPE_CAMERA; |
1723 | i->audioset = 1; | 1723 | i->audioset = 0; |
1724 | if (i->index == bttv_tvcards[btv->c.type].tuner) { | 1724 | if (i->index == bttv_tvcards[btv->c.type].tuner) { |
1725 | sprintf(i->name, "Television"); | 1725 | sprintf(i->name, "Television"); |
1726 | i->type = V4L2_INPUT_TYPE_TUNER; | 1726 | i->type = V4L2_INPUT_TYPE_TUNER; |
@@ -1771,12 +1771,20 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg) | |||
1771 | memset(t,0,sizeof(*t)); | 1771 | memset(t,0,sizeof(*t)); |
1772 | strcpy(t->name, "Television"); | 1772 | strcpy(t->name, "Television"); |
1773 | t->type = V4L2_TUNER_ANALOG_TV; | 1773 | t->type = V4L2_TUNER_ANALOG_TV; |
1774 | t->rangehigh = 0xffffffffUL; | ||
1775 | t->capability = V4L2_TUNER_CAP_NORM; | 1774 | t->capability = V4L2_TUNER_CAP_NORM; |
1776 | t->rxsubchans = V4L2_TUNER_SUB_MONO; | 1775 | t->rxsubchans = V4L2_TUNER_SUB_MONO; |
1777 | if (btread(BT848_DSTATUS)&BT848_DSTATUS_HLOC) | 1776 | if (btread(BT848_DSTATUS)&BT848_DSTATUS_HLOC) |
1778 | t->signal = 0xffff; | 1777 | t->signal = 0xffff; |
1779 | { | 1778 | { |
1779 | struct video_tuner tuner; | ||
1780 | |||
1781 | memset(&tuner, 0, sizeof (tuner)); | ||
1782 | tuner.rangehigh = 0xffffffffUL; | ||
1783 | bttv_call_i2c_clients(btv, VIDIOCGTUNER, &tuner); | ||
1784 | t->rangelow = tuner.rangelow; | ||
1785 | t->rangehigh = tuner.rangehigh; | ||
1786 | } | ||
1787 | { | ||
1780 | /* Hmmm ... */ | 1788 | /* Hmmm ... */ |
1781 | struct video_audio va; | 1789 | struct video_audio va; |
1782 | memset(&va, 0, sizeof(struct video_audio)); | 1790 | memset(&va, 0, sizeof(struct video_audio)); |
@@ -1853,7 +1861,7 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg) | |||
1853 | } | 1861 | } |
1854 | case VIDIOC_LOG_STATUS: | 1862 | case VIDIOC_LOG_STATUS: |
1855 | { | 1863 | { |
1856 | bttv_call_i2c_clients(btv, VIDIOC_LOG_STATUS, 0); | 1864 | bttv_call_i2c_clients(btv, VIDIOC_LOG_STATUS, NULL); |
1857 | return 0; | 1865 | return 0; |
1858 | } | 1866 | } |
1859 | 1867 | ||
@@ -1956,7 +1964,7 @@ static int setup_window(struct bttv_fh *fh, struct bttv *btv, | |||
1956 | } | 1964 | } |
1957 | 1965 | ||
1958 | down(&fh->cap.lock); | 1966 | down(&fh->cap.lock); |
1959 | kfree(fh->ov.clips); | 1967 | kfree(fh->ov.clips); |
1960 | fh->ov.clips = clips; | 1968 | fh->ov.clips = clips; |
1961 | fh->ov.nclips = n; | 1969 | fh->ov.nclips = n; |
1962 | 1970 | ||
@@ -2029,19 +2037,33 @@ static int bttv_switch_type(struct bttv_fh *fh, enum v4l2_buf_type type) | |||
2029 | return 0; | 2037 | return 0; |
2030 | } | 2038 | } |
2031 | 2039 | ||
2040 | static void | ||
2041 | pix_format_set_size (struct v4l2_pix_format * f, | ||
2042 | const struct bttv_format * fmt, | ||
2043 | unsigned int width, | ||
2044 | unsigned int height) | ||
2045 | { | ||
2046 | f->width = width; | ||
2047 | f->height = height; | ||
2048 | |||
2049 | if (fmt->flags & FORMAT_FLAGS_PLANAR) { | ||
2050 | f->bytesperline = width; /* Y plane */ | ||
2051 | f->sizeimage = (width * height * fmt->depth) >> 3; | ||
2052 | } else { | ||
2053 | f->bytesperline = (width * fmt->depth) >> 3; | ||
2054 | f->sizeimage = height * f->bytesperline; | ||
2055 | } | ||
2056 | } | ||
2057 | |||
2032 | static int bttv_g_fmt(struct bttv_fh *fh, struct v4l2_format *f) | 2058 | static int bttv_g_fmt(struct bttv_fh *fh, struct v4l2_format *f) |
2033 | { | 2059 | { |
2034 | switch (f->type) { | 2060 | switch (f->type) { |
2035 | case V4L2_BUF_TYPE_VIDEO_CAPTURE: | 2061 | case V4L2_BUF_TYPE_VIDEO_CAPTURE: |
2036 | memset(&f->fmt.pix,0,sizeof(struct v4l2_pix_format)); | 2062 | memset(&f->fmt.pix,0,sizeof(struct v4l2_pix_format)); |
2037 | f->fmt.pix.width = fh->width; | 2063 | pix_format_set_size (&f->fmt.pix, fh->fmt, |
2038 | f->fmt.pix.height = fh->height; | 2064 | fh->width, fh->height); |
2039 | f->fmt.pix.field = fh->cap.field; | 2065 | f->fmt.pix.field = fh->cap.field; |
2040 | f->fmt.pix.pixelformat = fh->fmt->fourcc; | 2066 | f->fmt.pix.pixelformat = fh->fmt->fourcc; |
2041 | f->fmt.pix.bytesperline = | ||
2042 | (f->fmt.pix.width * fh->fmt->depth) >> 3; | ||
2043 | f->fmt.pix.sizeimage = | ||
2044 | f->fmt.pix.height * f->fmt.pix.bytesperline; | ||
2045 | return 0; | 2067 | return 0; |
2046 | case V4L2_BUF_TYPE_VIDEO_OVERLAY: | 2068 | case V4L2_BUF_TYPE_VIDEO_OVERLAY: |
2047 | memset(&f->fmt.win,0,sizeof(struct v4l2_window)); | 2069 | memset(&f->fmt.win,0,sizeof(struct v4l2_window)); |
@@ -2106,11 +2128,9 @@ static int bttv_try_fmt(struct bttv_fh *fh, struct bttv *btv, | |||
2106 | f->fmt.pix.width = maxw; | 2128 | f->fmt.pix.width = maxw; |
2107 | if (f->fmt.pix.height > maxh) | 2129 | if (f->fmt.pix.height > maxh) |
2108 | f->fmt.pix.height = maxh; | 2130 | f->fmt.pix.height = maxh; |
2109 | f->fmt.pix.width &= ~0x03; | 2131 | pix_format_set_size (&f->fmt.pix, fmt, |
2110 | f->fmt.pix.bytesperline = | 2132 | f->fmt.pix.width & ~3, |
2111 | (f->fmt.pix.width * fmt->depth) >> 3; | 2133 | f->fmt.pix.height); |
2112 | f->fmt.pix.sizeimage = | ||
2113 | f->fmt.pix.height * f->fmt.pix.bytesperline; | ||
2114 | 2134 | ||
2115 | return 0; | 2135 | return 0; |
2116 | } | 2136 | } |
@@ -2278,6 +2298,15 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file, | |||
2278 | retval = -EINVAL; | 2298 | retval = -EINVAL; |
2279 | goto fh_unlock_and_return; | 2299 | goto fh_unlock_and_return; |
2280 | } | 2300 | } |
2301 | if (fmt->flags & FORMAT_FLAGS_RAW) { | ||
2302 | /* VIDIOCMCAPTURE uses gbufsize, not RAW_BPL * | ||
2303 | RAW_LINES * 2. F1 is stored at offset 0, F2 | ||
2304 | at buffer size / 2. */ | ||
2305 | fh->width = RAW_BPL; | ||
2306 | fh->height = gbufsize / RAW_BPL; | ||
2307 | btv->init.width = RAW_BPL; | ||
2308 | btv->init.height = gbufsize / RAW_BPL; | ||
2309 | } | ||
2281 | fh->ovfmt = fmt; | 2310 | fh->ovfmt = fmt; |
2282 | fh->fmt = fmt; | 2311 | fh->fmt = fmt; |
2283 | btv->init.ovfmt = fmt; | 2312 | btv->init.ovfmt = fmt; |
@@ -2589,9 +2618,11 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file, | |||
2589 | 2618 | ||
2590 | if (0 == v4l2) | 2619 | if (0 == v4l2) |
2591 | return -EINVAL; | 2620 | return -EINVAL; |
2592 | strcpy(cap->driver,"bttv"); | 2621 | memset(cap, 0, sizeof (*cap)); |
2593 | strlcpy(cap->card,btv->video_dev->name,sizeof(cap->card)); | 2622 | strlcpy(cap->driver, "bttv", sizeof (cap->driver)); |
2594 | sprintf(cap->bus_info,"PCI:%s",pci_name(btv->c.pci)); | 2623 | strlcpy(cap->card, btv->video_dev->name, sizeof (cap->card)); |
2624 | snprintf(cap->bus_info, sizeof (cap->bus_info), | ||
2625 | "PCI:%s", pci_name(btv->c.pci)); | ||
2595 | cap->version = BTTV_VERSION_CODE; | 2626 | cap->version = BTTV_VERSION_CODE; |
2596 | cap->capabilities = | 2627 | cap->capabilities = |
2597 | V4L2_CAP_VIDEO_CAPTURE | | 2628 | V4L2_CAP_VIDEO_CAPTURE | |
@@ -2727,7 +2758,7 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file, | |||
2727 | fh->ov.w.height = fb->fmt.height; | 2758 | fh->ov.w.height = fb->fmt.height; |
2728 | btv->init.ov.w.width = fb->fmt.width; | 2759 | btv->init.ov.w.width = fb->fmt.width; |
2729 | btv->init.ov.w.height = fb->fmt.height; | 2760 | btv->init.ov.w.height = fb->fmt.height; |
2730 | kfree(fh->ov.clips); | 2761 | kfree(fh->ov.clips); |
2731 | fh->ov.clips = NULL; | 2762 | fh->ov.clips = NULL; |
2732 | fh->ov.nclips = 0; | 2763 | fh->ov.nclips = 0; |
2733 | 2764 | ||
@@ -2952,6 +2983,8 @@ static unsigned int bttv_poll(struct file *file, poll_table *wait) | |||
2952 | fh->cap.read_buf->memory = V4L2_MEMORY_USERPTR; | 2983 | fh->cap.read_buf->memory = V4L2_MEMORY_USERPTR; |
2953 | field = videobuf_next_field(&fh->cap); | 2984 | field = videobuf_next_field(&fh->cap); |
2954 | if (0 != fh->cap.ops->buf_prepare(&fh->cap,fh->cap.read_buf,field)) { | 2985 | if (0 != fh->cap.ops->buf_prepare(&fh->cap,fh->cap.read_buf,field)) { |
2986 | kfree (fh->cap.read_buf); | ||
2987 | fh->cap.read_buf = NULL; | ||
2955 | up(&fh->cap.lock); | 2988 | up(&fh->cap.lock); |
2956 | return POLLERR; | 2989 | return POLLERR; |
2957 | } | 2990 | } |
diff --git a/drivers/media/video/bttv-i2c.c b/drivers/media/video/bttv-i2c.c index 77619eb131f..d6418c023d3 100644 --- a/drivers/media/video/bttv-i2c.c +++ b/drivers/media/video/bttv-i2c.c | |||
@@ -300,7 +300,7 @@ static int attach_inform(struct i2c_client *client) | |||
300 | 300 | ||
301 | if (bttv_debug) | 301 | if (bttv_debug) |
302 | printk(KERN_DEBUG "bttv%d: %s i2c attach [addr=0x%x,client=%s]\n", | 302 | printk(KERN_DEBUG "bttv%d: %s i2c attach [addr=0x%x,client=%s]\n", |
303 | btv->c.nr,client->driver->name,client->addr, | 303 | btv->c.nr, client->driver->driver.name, client->addr, |
304 | client->name); | 304 | client->name); |
305 | if (!client->driver->command) | 305 | if (!client->driver->command) |
306 | return 0; | 306 | return 0; |
diff --git a/drivers/media/video/bttvp.h b/drivers/media/video/bttvp.h index 3aa9c6e4fc3..1e6a5632c3c 100644 --- a/drivers/media/video/bttvp.h +++ b/drivers/media/video/bttvp.h | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <media/tveeprom.h> | 45 | #include <media/tveeprom.h> |
46 | #include <media/ir-common.h> | 46 | #include <media/ir-common.h> |
47 | 47 | ||
48 | |||
48 | #include "bt848.h" | 49 | #include "bt848.h" |
49 | #include "bttv.h" | 50 | #include "bttv.h" |
50 | #include "btcx-risc.h" | 51 | #include "btcx-risc.h" |
diff --git a/drivers/media/video/cpia_pp.c b/drivers/media/video/cpia_pp.c index ddf184f95d8..6861d408f1b 100644 --- a/drivers/media/video/cpia_pp.c +++ b/drivers/media/video/cpia_pp.c | |||
@@ -170,16 +170,9 @@ static size_t cpia_read_nibble (struct parport *port, | |||
170 | /* Does the error line indicate end of data? */ | 170 | /* Does the error line indicate end of data? */ |
171 | if (((i /*& 1*/) == 0) && | 171 | if (((i /*& 1*/) == 0) && |
172 | (parport_read_status(port) & PARPORT_STATUS_ERROR)) { | 172 | (parport_read_status(port) & PARPORT_STATUS_ERROR)) { |
173 | port->physport->ieee1284.phase = IEEE1284_PH_HBUSY_DNA; | 173 | DBG("%s: No more nibble data (%d bytes)\n", |
174 | DBG("%s: No more nibble data (%d bytes)\n", | 174 | port->name, i/2); |
175 | port->name, i/2); | 175 | goto end_of_data; |
176 | |||
177 | /* Go to reverse idle phase. */ | ||
178 | parport_frob_control (port, | ||
179 | PARPORT_CONTROL_AUTOFD, | ||
180 | PARPORT_CONTROL_AUTOFD); | ||
181 | port->physport->ieee1284.phase = IEEE1284_PH_REV_IDLE; | ||
182 | break; | ||
183 | } | 176 | } |
184 | 177 | ||
185 | /* Event 7: Set nAutoFd low. */ | 178 | /* Event 7: Set nAutoFd low. */ |
@@ -227,18 +220,21 @@ static size_t cpia_read_nibble (struct parport *port, | |||
227 | byte = nibble; | 220 | byte = nibble; |
228 | } | 221 | } |
229 | 222 | ||
230 | i /= 2; /* i is now in bytes */ | ||
231 | |||
232 | if (i == len) { | 223 | if (i == len) { |
233 | /* Read the last nibble without checking data avail. */ | 224 | /* Read the last nibble without checking data avail. */ |
234 | port = port->physport; | 225 | if (parport_read_status (port) & PARPORT_STATUS_ERROR) { |
235 | if (parport_read_status (port) & PARPORT_STATUS_ERROR) | 226 | end_of_data: |
236 | port->ieee1284.phase = IEEE1284_PH_HBUSY_DNA; | 227 | /* Go to reverse idle phase. */ |
228 | parport_frob_control (port, | ||
229 | PARPORT_CONTROL_AUTOFD, | ||
230 | PARPORT_CONTROL_AUTOFD); | ||
231 | port->physport->ieee1284.phase = IEEE1284_PH_REV_IDLE; | ||
232 | } | ||
237 | else | 233 | else |
238 | port->ieee1284.phase = IEEE1284_PH_HBUSY_DAVAIL; | 234 | port->physport->ieee1284.phase = IEEE1284_PH_HBUSY_DAVAIL; |
239 | } | 235 | } |
240 | 236 | ||
241 | return i; | 237 | return i/2; |
242 | } | 238 | } |
243 | 239 | ||
244 | /* CPiA nonstandard "Nibble Stream" mode (2 nibbles per cycle, instead of 1) | 240 | /* CPiA nonstandard "Nibble Stream" mode (2 nibbles per cycle, instead of 1) |
diff --git a/drivers/media/video/cpia_usb.c b/drivers/media/video/cpia_usb.c index 9774e94d1e7..1439cb75287 100644 --- a/drivers/media/video/cpia_usb.c +++ b/drivers/media/video/cpia_usb.c | |||
@@ -582,7 +582,6 @@ MODULE_LICENSE("GPL"); | |||
582 | 582 | ||
583 | 583 | ||
584 | static struct usb_driver cpia_driver = { | 584 | static struct usb_driver cpia_driver = { |
585 | .owner = THIS_MODULE, | ||
586 | .name = "cpia", | 585 | .name = "cpia", |
587 | .probe = cpia_probe, | 586 | .probe = cpia_probe, |
588 | .disconnect = cpia_disconnect, | 587 | .disconnect = cpia_disconnect, |
diff --git a/drivers/media/video/cs53l32a.c b/drivers/media/video/cs53l32a.c index 780b352ec11..643ead1a87e 100644 --- a/drivers/media/video/cs53l32a.c +++ b/drivers/media/video/cs53l32a.c | |||
@@ -42,15 +42,16 @@ MODULE_PARM_DESC(debug, "Debugging messages\n\t\t\t0=Off (default), 1=On"); | |||
42 | #define cs53l32a_dbg(fmt, arg...) \ | 42 | #define cs53l32a_dbg(fmt, arg...) \ |
43 | do { \ | 43 | do { \ |
44 | if (debug) \ | 44 | if (debug) \ |
45 | printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \ | 45 | printk(KERN_INFO "%s debug %d-%04x: " fmt, \ |
46 | client->driver->driver.name, \ | ||
46 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ | 47 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ |
47 | } while (0) | 48 | } while (0) |
48 | 49 | ||
49 | #define cs53l32a_err(fmt, arg...) do { \ | 50 | #define cs53l32a_err(fmt, arg...) do { \ |
50 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \ | 51 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \ |
51 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 52 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
52 | #define cs53l32a_info(fmt, arg...) do { \ | 53 | #define cs53l32a_info(fmt, arg...) do { \ |
53 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \ | 54 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \ |
54 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 55 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
55 | 56 | ||
56 | static unsigned short normal_i2c[] = { 0x22 >> 1, I2C_CLIENT_END }; | 57 | static unsigned short normal_i2c[] = { 0x22 >> 1, I2C_CLIENT_END }; |
@@ -154,7 +155,6 @@ static int cs53l32a_attach(struct i2c_adapter *adapter, int address, int kind) | |||
154 | client->addr = address; | 155 | client->addr = address; |
155 | client->adapter = adapter; | 156 | client->adapter = adapter; |
156 | client->driver = &i2c_driver; | 157 | client->driver = &i2c_driver; |
157 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
158 | snprintf(client->name, sizeof(client->name) - 1, "cs53l32a"); | 158 | snprintf(client->name, sizeof(client->name) - 1, "cs53l32a"); |
159 | 159 | ||
160 | cs53l32a_info("chip found @ 0x%x (%s)\n", address << 1, adapter->name); | 160 | cs53l32a_info("chip found @ 0x%x (%s)\n", address << 1, adapter->name); |
@@ -216,13 +216,13 @@ static int cs53l32a_detach(struct i2c_client *client) | |||
216 | 216 | ||
217 | /* i2c implementation */ | 217 | /* i2c implementation */ |
218 | static struct i2c_driver i2c_driver = { | 218 | static struct i2c_driver i2c_driver = { |
219 | .name = "cs53l32a", | 219 | .driver = { |
220 | .name = "cs53l32a", | ||
221 | }, | ||
220 | .id = I2C_DRIVERID_CS53L32A, | 222 | .id = I2C_DRIVERID_CS53L32A, |
221 | .flags = I2C_DF_NOTIFY, | ||
222 | .attach_adapter = cs53l32a_probe, | 223 | .attach_adapter = cs53l32a_probe, |
223 | .detach_client = cs53l32a_detach, | 224 | .detach_client = cs53l32a_detach, |
224 | .command = cs53l32a_command, | 225 | .command = cs53l32a_command, |
225 | .owner = THIS_MODULE, | ||
226 | }; | 226 | }; |
227 | 227 | ||
228 | 228 | ||
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c index f6afeec499c..3b09f46dddf 100644 --- a/drivers/media/video/cx25840/cx25840-core.c +++ b/drivers/media/video/cx25840/cx25840-core.c | |||
@@ -208,8 +208,11 @@ static void cx25840_initialize(struct i2c_client *client, int loadfw) | |||
208 | 208 | ||
209 | static void input_change(struct i2c_client *client) | 209 | static void input_change(struct i2c_client *client) |
210 | { | 210 | { |
211 | struct cx25840_state *state = i2c_get_clientdata(client); | ||
211 | v4l2_std_id std = cx25840_get_v4lstd(client); | 212 | v4l2_std_id std = cx25840_get_v4lstd(client); |
212 | 213 | ||
214 | /* Note: perhaps V4L2_STD_PAL_M should be handled as V4L2_STD_NTSC | ||
215 | instead of V4L2_STD_PAL. Someone needs to test this. */ | ||
213 | if (std & V4L2_STD_PAL) { | 216 | if (std & V4L2_STD_PAL) { |
214 | /* Follow tuner change procedure for PAL */ | 217 | /* Follow tuner change procedure for PAL */ |
215 | cx25840_write(client, 0x808, 0xff); | 218 | cx25840_write(client, 0x808, 0xff); |
@@ -220,7 +223,32 @@ static void input_change(struct i2c_client *client) | |||
220 | cx25840_write(client, 0x80b, 0x10); | 223 | cx25840_write(client, 0x80b, 0x10); |
221 | } else if (std & V4L2_STD_NTSC) { | 224 | } else if (std & V4L2_STD_NTSC) { |
222 | /* NTSC */ | 225 | /* NTSC */ |
223 | cx25840_write(client, 0x808, 0xf6); | 226 | if (state->cardtype == CARDTYPE_PVR150_WORKAROUND) { |
227 | /* Certain Hauppauge PVR150 models have a hardware bug | ||
228 | that causes audio to drop out. For these models the | ||
229 | audio standard must be set explicitly. | ||
230 | To be precise: it affects cards with tuner models | ||
231 | 85, 99 and 112 (model numbers from tveeprom). */ | ||
232 | if (std == V4L2_STD_NTSC_M_JP) { | ||
233 | /* Japan uses EIAJ audio standard */ | ||
234 | cx25840_write(client, 0x808, 0x2f); | ||
235 | } else { | ||
236 | /* Others use the BTSC audio standard */ | ||
237 | cx25840_write(client, 0x808, 0x1f); | ||
238 | } | ||
239 | /* South Korea uses the A2-M (aka Zweiton M) audio | ||
240 | standard, and should set 0x808 to 0x3f, but I don't | ||
241 | know how to detect this. */ | ||
242 | } else if (std == V4L2_STD_NTSC_M_JP) { | ||
243 | /* Japan uses EIAJ audio standard */ | ||
244 | cx25840_write(client, 0x808, 0xf7); | ||
245 | } else { | ||
246 | /* Others use the BTSC audio standard */ | ||
247 | cx25840_write(client, 0x808, 0xf6); | ||
248 | } | ||
249 | /* South Korea uses the A2-M (aka Zweiton M) audio standard, | ||
250 | and should set 0x808 to 0xf8, but I don't know how to | ||
251 | detect this. */ | ||
224 | cx25840_write(client, 0x80b, 0x00); | 252 | cx25840_write(client, 0x80b, 0x00); |
225 | } | 253 | } |
226 | 254 | ||
@@ -241,7 +269,8 @@ static int set_input(struct i2c_client *client, enum cx25840_input input) | |||
241 | case CX25840_TUNER: | 269 | case CX25840_TUNER: |
242 | cx25840_dbg("now setting Tuner input\n"); | 270 | cx25840_dbg("now setting Tuner input\n"); |
243 | 271 | ||
244 | if (state->cardtype == CARDTYPE_PVR150) { | 272 | if (state->cardtype == CARDTYPE_PVR150 || |
273 | state->cardtype == CARDTYPE_PVR150_WORKAROUND) { | ||
245 | /* CH_SEL_ADC2=1 */ | 274 | /* CH_SEL_ADC2=1 */ |
246 | cx25840_and_or(client, 0x102, ~0x2, 0x02); | 275 | cx25840_and_or(client, 0x102, ~0x2, 0x02); |
247 | } | 276 | } |
@@ -304,24 +333,30 @@ static int set_input(struct i2c_client *client, enum cx25840_input input) | |||
304 | 333 | ||
305 | static int set_v4lstd(struct i2c_client *client, v4l2_std_id std) | 334 | static int set_v4lstd(struct i2c_client *client, v4l2_std_id std) |
306 | { | 335 | { |
307 | u8 fmt; | 336 | u8 fmt=0; /* zero is autodetect */ |
308 | 337 | ||
309 | switch (std) { | 338 | /* First tests should be against specific std */ |
310 | /* zero is autodetect */ | 339 | if (std & V4L2_STD_NTSC_M_JP) { |
311 | case 0: fmt = 0x0; break; | 340 | fmt=0x2; |
312 | /* default ntsc to ntsc-m */ | 341 | } else if (std & V4L2_STD_NTSC_443) { |
313 | case V4L2_STD_NTSC: | 342 | fmt=0x3; |
314 | case V4L2_STD_NTSC_M: fmt = 0x1; break; | 343 | } else if (std & V4L2_STD_PAL_M) { |
315 | case V4L2_STD_NTSC_M_JP: fmt = 0x2; break; | 344 | fmt=0x5; |
316 | case V4L2_STD_NTSC_443: fmt = 0x3; break; | 345 | } else if (std & V4L2_STD_PAL_N) { |
317 | case V4L2_STD_PAL: fmt = 0x4; break; | 346 | fmt=0x6; |
318 | case V4L2_STD_PAL_M: fmt = 0x5; break; | 347 | } else if (std & V4L2_STD_PAL_Nc) { |
319 | case V4L2_STD_PAL_N: fmt = 0x6; break; | 348 | fmt=0x7; |
320 | case V4L2_STD_PAL_Nc: fmt = 0x7; break; | 349 | } else if (std & V4L2_STD_PAL_60) { |
321 | case V4L2_STD_PAL_60: fmt = 0x8; break; | 350 | fmt=0x8; |
322 | case V4L2_STD_SECAM: fmt = 0xc; break; | 351 | } else { |
323 | default: | 352 | /* Then, test against generic ones */ |
324 | return -ERANGE; | 353 | if (std & V4L2_STD_NTSC) { |
354 | fmt=0x1; | ||
355 | } else if (std & V4L2_STD_PAL) { | ||
356 | fmt=0x4; | ||
357 | } else if (std & V4L2_STD_SECAM) { | ||
358 | fmt=0xc; | ||
359 | } | ||
325 | } | 360 | } |
326 | 361 | ||
327 | cx25840_and_or(client, 0x400, ~0xf, fmt); | 362 | cx25840_and_or(client, 0x400, ~0xf, fmt); |
@@ -363,6 +398,7 @@ static int set_v4lctrl(struct i2c_client *client, struct v4l2_control *ctrl) | |||
363 | case CX25840_CID_CARDTYPE: | 398 | case CX25840_CID_CARDTYPE: |
364 | switch (ctrl->value) { | 399 | switch (ctrl->value) { |
365 | case CARDTYPE_PVR150: | 400 | case CARDTYPE_PVR150: |
401 | case CARDTYPE_PVR150_WORKAROUND: | ||
366 | case CARDTYPE_PG600: | 402 | case CARDTYPE_PG600: |
367 | state->cardtype = ctrl->value; | 403 | state->cardtype = ctrl->value; |
368 | break; | 404 | break; |
@@ -714,7 +750,7 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd, | |||
714 | 750 | ||
715 | /* ----------------------------------------------------------------------- */ | 751 | /* ----------------------------------------------------------------------- */ |
716 | 752 | ||
717 | struct i2c_driver i2c_driver_cx25840; | 753 | static struct i2c_driver i2c_driver_cx25840; |
718 | 754 | ||
719 | static int cx25840_detect_client(struct i2c_adapter *adapter, int address, | 755 | static int cx25840_detect_client(struct i2c_adapter *adapter, int address, |
720 | int kind) | 756 | int kind) |
@@ -737,7 +773,6 @@ static int cx25840_detect_client(struct i2c_adapter *adapter, int address, | |||
737 | client->addr = address; | 773 | client->addr = address; |
738 | client->adapter = adapter; | 774 | client->adapter = adapter; |
739 | client->driver = &i2c_driver_cx25840; | 775 | client->driver = &i2c_driver_cx25840; |
740 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
741 | snprintf(client->name, sizeof(client->name) - 1, "cx25840"); | 776 | snprintf(client->name, sizeof(client->name) - 1, "cx25840"); |
742 | 777 | ||
743 | cx25840_dbg("detecting cx25840 client on address 0x%x\n", address << 1); | 778 | cx25840_dbg("detecting cx25840 client on address 0x%x\n", address << 1); |
@@ -807,16 +842,16 @@ static int cx25840_detach_client(struct i2c_client *client) | |||
807 | 842 | ||
808 | /* ----------------------------------------------------------------------- */ | 843 | /* ----------------------------------------------------------------------- */ |
809 | 844 | ||
810 | struct i2c_driver i2c_driver_cx25840 = { | 845 | static struct i2c_driver i2c_driver_cx25840 = { |
811 | .name = "cx25840", | 846 | .driver = { |
847 | .name = "cx25840", | ||
848 | }, | ||
812 | 849 | ||
813 | .id = I2C_DRIVERID_CX25840, | 850 | .id = I2C_DRIVERID_CX25840, |
814 | .flags = I2C_DF_NOTIFY, | ||
815 | 851 | ||
816 | .attach_adapter = cx25840_attach_adapter, | 852 | .attach_adapter = cx25840_attach_adapter, |
817 | .detach_client = cx25840_detach_client, | 853 | .detach_client = cx25840_detach_client, |
818 | .command = cx25840_command, | 854 | .command = cx25840_command, |
819 | .owner = THIS_MODULE, | ||
820 | }; | 855 | }; |
821 | 856 | ||
822 | 857 | ||
diff --git a/drivers/media/video/cx25840/cx25840.h b/drivers/media/video/cx25840/cx25840.h index 5c3f0639fb7..40aa59f9c52 100644 --- a/drivers/media/video/cx25840/cx25840.h +++ b/drivers/media/video/cx25840/cx25840.h | |||
@@ -27,22 +27,30 @@ | |||
27 | extern int cx25840_debug; | 27 | extern int cx25840_debug; |
28 | 28 | ||
29 | #define cx25840_dbg(fmt, arg...) do { if (cx25840_debug) \ | 29 | #define cx25840_dbg(fmt, arg...) do { if (cx25840_debug) \ |
30 | printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \ | 30 | printk(KERN_INFO "%s debug %d-%04x: " fmt, \ |
31 | client->driver->driver.name, \ | ||
31 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 32 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
32 | 33 | ||
33 | #define cx25840_err(fmt, arg...) do { \ | 34 | #define cx25840_err(fmt, arg...) do { \ |
34 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \ | 35 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \ |
35 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 36 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
36 | 37 | ||
37 | #define cx25840_info(fmt, arg...) do { \ | 38 | #define cx25840_info(fmt, arg...) do { \ |
38 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \ | 39 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \ |
39 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 40 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
40 | 41 | ||
41 | #define CX25840_CID_CARDTYPE (V4L2_CID_PRIVATE_BASE+0) | 42 | #define CX25840_CID_CARDTYPE (V4L2_CID_PRIVATE_BASE+0) |
42 | 43 | ||
44 | /* The CARDTYPE_PVR150_WORKAROUND cardtype activates a workaround for a | ||
45 | hardware bug that is present in PVR150 (and possible PVR500) cards that | ||
46 | have certain NTSC tuners (tveeprom model numbers 85, 99 and 112). The | ||
47 | audio autodetect fails on some channels for these models and the workaround | ||
48 | is to select the audio standard explicitly. Many thanks to Hauppauge for | ||
49 | providing this information. */ | ||
43 | enum cx25840_cardtype { | 50 | enum cx25840_cardtype { |
44 | CARDTYPE_PVR150, | 51 | CARDTYPE_PVR150, |
45 | CARDTYPE_PG600 | 52 | CARDTYPE_PG600, |
53 | CARDTYPE_PVR150_WORKAROUND, | ||
46 | }; | 54 | }; |
47 | 55 | ||
48 | enum cx25840_input { | 56 | enum cx25840_input { |
diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig index 41818b6205b..85ba4106dc7 100644 --- a/drivers/media/video/cx88/Kconfig +++ b/drivers/media/video/cx88/Kconfig | |||
@@ -46,8 +46,8 @@ config VIDEO_CX88_DVB_ALL_FRONTENDS | |||
46 | If you are unsure, choose Y. | 46 | If you are unsure, choose Y. |
47 | 47 | ||
48 | config VIDEO_CX88_DVB_MT352 | 48 | config VIDEO_CX88_DVB_MT352 |
49 | tristate "Zarlink MT352 DVB-T Support" | 49 | bool "Zarlink MT352 DVB-T Support" |
50 | default m | 50 | default y |
51 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS | 51 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS |
52 | select DVB_MT352 | 52 | select DVB_MT352 |
53 | ---help--- | 53 | ---help--- |
@@ -55,8 +55,8 @@ config VIDEO_CX88_DVB_MT352 | |||
55 | Connexant 2388x chip and the MT352 demodulator. | 55 | Connexant 2388x chip and the MT352 demodulator. |
56 | 56 | ||
57 | config VIDEO_CX88_DVB_OR51132 | 57 | config VIDEO_CX88_DVB_OR51132 |
58 | tristate "OR51132 ATSC Support" | 58 | bool "OR51132 ATSC Support" |
59 | default m | 59 | default y |
60 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS | 60 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS |
61 | select DVB_OR51132 | 61 | select DVB_OR51132 |
62 | ---help--- | 62 | ---help--- |
@@ -64,8 +64,8 @@ config VIDEO_CX88_DVB_OR51132 | |||
64 | Connexant 2388x chip and the OR51132 demodulator. | 64 | Connexant 2388x chip and the OR51132 demodulator. |
65 | 65 | ||
66 | config VIDEO_CX88_DVB_CX22702 | 66 | config VIDEO_CX88_DVB_CX22702 |
67 | tristate "Conexant CX22702 DVB-T Support" | 67 | bool "Conexant CX22702 DVB-T Support" |
68 | default m | 68 | default y |
69 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS | 69 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS |
70 | select DVB_CX22702 | 70 | select DVB_CX22702 |
71 | ---help--- | 71 | ---help--- |
@@ -73,8 +73,8 @@ config VIDEO_CX88_DVB_CX22702 | |||
73 | Connexant 2388x chip and the CX22702 demodulator. | 73 | Connexant 2388x chip and the CX22702 demodulator. |
74 | 74 | ||
75 | config VIDEO_CX88_DVB_LGDT330X | 75 | config VIDEO_CX88_DVB_LGDT330X |
76 | tristate "LG Electronics DT3302/DT3303 ATSC Support" | 76 | bool "LG Electronics DT3302/DT3303 ATSC Support" |
77 | default m | 77 | default y |
78 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS | 78 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS |
79 | select DVB_LGDT330X | 79 | select DVB_LGDT330X |
80 | ---help--- | 80 | ---help--- |
@@ -82,8 +82,8 @@ config VIDEO_CX88_DVB_LGDT330X | |||
82 | Connexant 2388x chip and the LGDT3302/LGDT3303 demodulator. | 82 | Connexant 2388x chip and the LGDT3302/LGDT3303 demodulator. |
83 | 83 | ||
84 | config VIDEO_CX88_DVB_NXT200X | 84 | config VIDEO_CX88_DVB_NXT200X |
85 | tristate "NXT2002/NXT2004 ATSC Support" | 85 | bool "NXT2002/NXT2004 ATSC Support" |
86 | default m | 86 | default y |
87 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS | 87 | depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS |
88 | select DVB_NXT200X | 88 | select DVB_NXT200X |
89 | ---help--- | 89 | ---help--- |
diff --git a/drivers/media/video/cx88/Makefile b/drivers/media/video/cx88/Makefile index 0df40b77345..54401b02b7c 100644 --- a/drivers/media/video/cx88/Makefile +++ b/drivers/media/video/cx88/Makefile | |||
@@ -9,21 +9,12 @@ obj-$(CONFIG_VIDEO_CX88_DVB) += cx88-dvb.o | |||
9 | EXTRA_CFLAGS += -I$(src)/.. | 9 | EXTRA_CFLAGS += -I$(src)/.. |
10 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core | 10 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core |
11 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/frontends | 11 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/frontends |
12 | ifneq ($(CONFIG_VIDEO_BUF_DVB),n) | 12 | |
13 | EXTRA_CFLAGS += -DHAVE_VIDEO_BUF_DVB=1 | 13 | extra-cflags-$(CONFIG_VIDEO_BUF_DVB) += -DHAVE_VIDEO_BUF_DVB=1 |
14 | endif | 14 | extra-cflags-$(CONFIG_DVB_CX22702) += -DHAVE_CX22702=1 |
15 | ifneq ($(CONFIG_DVB_CX22702),n) | 15 | extra-cflags-$(CONFIG_DVB_OR51132) += -DHAVE_OR51132=1 |
16 | EXTRA_CFLAGS += -DHAVE_CX22702=1 | 16 | extra-cflags-$(CONFIG_DVB_LGDT330X) += -DHAVE_LGDT330X=1 |
17 | endif | 17 | extra-cflags-$(CONFIG_DVB_MT352) += -DHAVE_MT352=1 |
18 | ifneq ($(CONFIG_DVB_OR51132),n) | 18 | extra-cflags-$(CONFIG_DVB_NXT200X) += -DHAVE_NXT200X=1 |
19 | EXTRA_CFLAGS += -DHAVE_OR51132=1 | 19 | |
20 | endif | 20 | EXTRA_CFLAGS += $(extra-cflags-y) $(extra-cflags-m) |
21 | ifneq ($(CONFIG_DVB_LGDT330X),n) | ||
22 | EXTRA_CFLAGS += -DHAVE_LGDT330X=1 | ||
23 | endif | ||
24 | ifneq ($(CONFIG_DVB_MT352),n) | ||
25 | EXTRA_CFLAGS += -DHAVE_MT352=1 | ||
26 | endif | ||
27 | ifneq ($(CONFIG_DVB_NXT200X),n) | ||
28 | EXTRA_CFLAGS += -DHAVE_NXT200X=1 | ||
29 | endif | ||
diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c index 4ae3f78cccf..74e57a53116 100644 --- a/drivers/media/video/cx88/cx88-blackbird.c +++ b/drivers/media/video/cx88/cx88-blackbird.c | |||
@@ -616,6 +616,8 @@ static int blackbird_load_firmware(struct cx8802_dev *dev) | |||
616 | 616 | ||
617 | retval = request_firmware(&firmware, BLACKBIRD_FIRM_ENC_FILENAME, | 617 | retval = request_firmware(&firmware, BLACKBIRD_FIRM_ENC_FILENAME, |
618 | &dev->pci->dev); | 618 | &dev->pci->dev); |
619 | |||
620 | |||
619 | if (retval != 0) { | 621 | if (retval != 0) { |
620 | dprintk(0, "ERROR: Hotplug firmware request failed (%s).\n", | 622 | dprintk(0, "ERROR: Hotplug firmware request failed (%s).\n", |
621 | BLACKBIRD_FIRM_ENC_FILENAME); | 623 | BLACKBIRD_FIRM_ENC_FILENAME); |
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index f2268631b7c..951709aa88b 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
@@ -567,6 +567,7 @@ struct cx88_board cx88_boards[] = { | |||
567 | .radio_type = UNSET, | 567 | .radio_type = UNSET, |
568 | .tuner_addr = ADDR_UNSET, | 568 | .tuner_addr = ADDR_UNSET, |
569 | .radio_addr = ADDR_UNSET, | 569 | .radio_addr = ADDR_UNSET, |
570 | .tda9887_conf = TDA9887_PRESENT, | ||
570 | .input = {{ | 571 | .input = {{ |
571 | .type = CX88_VMUX_TELEVISION, | 572 | .type = CX88_VMUX_TELEVISION, |
572 | .vmux = 0, | 573 | .vmux = 0, |
@@ -711,6 +712,7 @@ struct cx88_board cx88_boards[] = { | |||
711 | .radio_type = UNSET, | 712 | .radio_type = UNSET, |
712 | .tuner_addr = ADDR_UNSET, | 713 | .tuner_addr = ADDR_UNSET, |
713 | .radio_addr = ADDR_UNSET, | 714 | .radio_addr = ADDR_UNSET, |
715 | .tda9887_conf = TDA9887_PRESENT, | ||
714 | .input = {{ | 716 | .input = {{ |
715 | .type = CX88_VMUX_TELEVISION, | 717 | .type = CX88_VMUX_TELEVISION, |
716 | .vmux = 0, | 718 | .vmux = 0, |
@@ -1083,41 +1085,28 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data) | |||
1083 | tveeprom_hauppauge_analog(&core->i2c_client, &tv, eeprom_data); | 1085 | tveeprom_hauppauge_analog(&core->i2c_client, &tv, eeprom_data); |
1084 | core->tuner_type = tv.tuner_type; | 1086 | core->tuner_type = tv.tuner_type; |
1085 | core->has_radio = tv.has_radio; | 1087 | core->has_radio = tv.has_radio; |
1086 | } | ||
1087 | |||
1088 | static int hauppauge_eeprom_dvb(struct cx88_core *core, u8 *ee) | ||
1089 | { | ||
1090 | int model; | ||
1091 | int tuner; | ||
1092 | 1088 | ||
1093 | /* Make sure we support the board model */ | 1089 | /* Make sure we support the board model */ |
1094 | model = ee[0x1f] << 24 | ee[0x1e] << 16 | ee[0x1d] << 8 | ee[0x1c]; | 1090 | switch (tv.model) |
1095 | switch(model) { | 1091 | { |
1096 | case 90002: | 1092 | case 90002: /* Nova-T-PCI (9002) */ |
1097 | case 90500: | 1093 | case 92001: /* Nova-S-Plus (Video and IR) */ |
1098 | case 90501: | 1094 | case 92002: /* Nova-S-Plus (Video and IR) */ |
1095 | case 90003: /* Nova-T-PCI (9002 No RF out) */ | ||
1096 | case 90500: /* Nova-T-PCI (oem) */ | ||
1097 | case 90501: /* Nova-T-PCI (oem/IR) */ | ||
1098 | case 92000: /* Nova-SE2 (OEM, No Video or IR) */ | ||
1099 | |||
1099 | /* known */ | 1100 | /* known */ |
1100 | break; | 1101 | break; |
1101 | default: | 1102 | default: |
1102 | printk("%s: warning: unknown hauppauge model #%d\n", | 1103 | printk("%s: warning: unknown hauppauge model #%d\n", |
1103 | core->name, model); | 1104 | core->name, tv.model); |
1104 | break; | 1105 | break; |
1105 | } | 1106 | } |
1106 | 1107 | ||
1107 | /* Make sure we support the tuner */ | 1108 | printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n", |
1108 | tuner = ee[0x2d]; | 1109 | core->name, tv.model); |
1109 | switch(tuner) { | ||
1110 | case 0x4B: /* dtt 7595 */ | ||
1111 | case 0x4C: /* dtt 7592 */ | ||
1112 | break; | ||
1113 | default: | ||
1114 | printk("%s: error: unknown hauppauge tuner 0x%02x\n", | ||
1115 | core->name, tuner); | ||
1116 | return -ENODEV; | ||
1117 | } | ||
1118 | printk(KERN_INFO "%s: hauppauge eeprom: model=%d, tuner=%d\n", | ||
1119 | core->name, model, tuner); | ||
1120 | return 0; | ||
1121 | } | 1110 | } |
1122 | 1111 | ||
1123 | /* ----------------------------------------------------------------------- */ | 1112 | /* ----------------------------------------------------------------------- */ |
@@ -1201,7 +1190,7 @@ void cx88_card_list(struct cx88_core *core, struct pci_dev *pci) | |||
1201 | 1190 | ||
1202 | void cx88_card_setup(struct cx88_core *core) | 1191 | void cx88_card_setup(struct cx88_core *core) |
1203 | { | 1192 | { |
1204 | static u8 eeprom[128]; | 1193 | static u8 eeprom[256]; |
1205 | 1194 | ||
1206 | if (0 == core->i2c_rc) { | 1195 | if (0 == core->i2c_rc) { |
1207 | core->i2c_client.addr = 0xa0 >> 1; | 1196 | core->i2c_client.addr = 0xa0 >> 1; |
@@ -1224,7 +1213,7 @@ void cx88_card_setup(struct cx88_core *core) | |||
1224 | break; | 1213 | break; |
1225 | case CX88_BOARD_HAUPPAUGE_DVB_T1: | 1214 | case CX88_BOARD_HAUPPAUGE_DVB_T1: |
1226 | if (0 == core->i2c_rc) | 1215 | if (0 == core->i2c_rc) |
1227 | hauppauge_eeprom_dvb(core,eeprom); | 1216 | hauppauge_eeprom(core,eeprom); |
1228 | break; | 1217 | break; |
1229 | case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1: | 1218 | case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1: |
1230 | case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS: | 1219 | case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS: |
diff --git a/drivers/media/video/cx88/cx88-core.c b/drivers/media/video/cx88/cx88-core.c index eb806af1718..bb6eb54e19c 100644 --- a/drivers/media/video/cx88/cx88-core.c +++ b/drivers/media/video/cx88/cx88-core.c | |||
@@ -837,6 +837,29 @@ static int set_pll(struct cx88_core *core, int prescale, u32 ofreq) | |||
837 | return -1; | 837 | return -1; |
838 | } | 838 | } |
839 | 839 | ||
840 | int cx88_start_audio_dma(struct cx88_core *core) | ||
841 | { | ||
842 | /* setup fifo + format */ | ||
843 | cx88_sram_channel_setup(core, &cx88_sram_channels[SRAM_CH25], 128, 0); | ||
844 | cx88_sram_channel_setup(core, &cx88_sram_channels[SRAM_CH26], 128, 0); | ||
845 | |||
846 | cx_write(MO_AUDD_LNGTH, 128); /* fifo bpl size */ | ||
847 | cx_write(MO_AUDR_LNGTH, 128); /* fifo bpl size */ | ||
848 | |||
849 | /* start dma */ | ||
850 | cx_write(MO_AUD_DMACNTRL, 0x0003); /* Up and Down fifo enable */ | ||
851 | |||
852 | return 0; | ||
853 | } | ||
854 | |||
855 | int cx88_stop_audio_dma(struct cx88_core *core) | ||
856 | { | ||
857 | /* stop dma */ | ||
858 | cx_write(MO_AUD_DMACNTRL, 0x0000); | ||
859 | |||
860 | return 0; | ||
861 | } | ||
862 | |||
840 | static int set_tvaudio(struct cx88_core *core) | 863 | static int set_tvaudio(struct cx88_core *core) |
841 | { | 864 | { |
842 | struct cx88_tvnorm *norm = core->tvnorm; | 865 | struct cx88_tvnorm *norm = core->tvnorm; |
@@ -877,12 +900,16 @@ static int set_tvaudio(struct cx88_core *core) | |||
877 | cx88_set_tvaudio(core); | 900 | cx88_set_tvaudio(core); |
878 | /* cx88_set_stereo(dev,V4L2_TUNER_MODE_STEREO); */ | 901 | /* cx88_set_stereo(dev,V4L2_TUNER_MODE_STEREO); */ |
879 | 902 | ||
880 | cx_write(MO_AUDD_LNGTH, 128); /* fifo size */ | 903 | /* |
881 | cx_write(MO_AUDR_LNGTH, 128); /* fifo size */ | 904 | This should be needed only on cx88-alsa. It seems that some cx88 chips have |
882 | cx_write(MO_AUD_DMACNTRL, 0x03); /* need audio fifo */ | 905 | bugs and does require DMA enabled for it to work. |
906 | */ | ||
907 | cx88_start_audio_dma(core); | ||
883 | return 0; | 908 | return 0; |
884 | } | 909 | } |
885 | 910 | ||
911 | |||
912 | |||
886 | int cx88_set_tvnorm(struct cx88_core *core, struct cx88_tvnorm *norm) | 913 | int cx88_set_tvnorm(struct cx88_core *core, struct cx88_tvnorm *norm) |
887 | { | 914 | { |
888 | u32 fsc8; | 915 | u32 fsc8; |
@@ -1204,6 +1231,8 @@ EXPORT_SYMBOL(cx88_set_scale); | |||
1204 | EXPORT_SYMBOL(cx88_vdev_init); | 1231 | EXPORT_SYMBOL(cx88_vdev_init); |
1205 | EXPORT_SYMBOL(cx88_core_get); | 1232 | EXPORT_SYMBOL(cx88_core_get); |
1206 | EXPORT_SYMBOL(cx88_core_put); | 1233 | EXPORT_SYMBOL(cx88_core_put); |
1234 | EXPORT_SYMBOL(cx88_start_audio_dma); | ||
1235 | EXPORT_SYMBOL(cx88_stop_audio_dma); | ||
1207 | 1236 | ||
1208 | /* | 1237 | /* |
1209 | * Local variables: | 1238 | * Local variables: |
diff --git a/drivers/media/video/cx88/cx88-i2c.c b/drivers/media/video/cx88/cx88-i2c.c index 9790d412f19..4a8fb161b16 100644 --- a/drivers/media/video/cx88/cx88-i2c.c +++ b/drivers/media/video/cx88/cx88-i2c.c | |||
@@ -94,7 +94,7 @@ static int attach_inform(struct i2c_client *client) | |||
94 | struct cx88_core *core = i2c_get_adapdata(client->adapter); | 94 | struct cx88_core *core = i2c_get_adapdata(client->adapter); |
95 | 95 | ||
96 | dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n", | 96 | dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n", |
97 | client->driver->name, client->addr, client->name); | 97 | client->driver->driver.name, client->addr, client->name); |
98 | if (!client->driver->command) | 98 | if (!client->driver->command) |
99 | return 0; | 99 | return 0; |
100 | 100 | ||
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c index 38b12ebaa49..461019dca90 100644 --- a/drivers/media/video/cx88/cx88-input.c +++ b/drivers/media/video/cx88/cx88-input.c | |||
@@ -453,7 +453,6 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci) | |||
453 | input_dev->id.product = pci->device; | 453 | input_dev->id.product = pci->device; |
454 | } | 454 | } |
455 | input_dev->cdev.dev = &pci->dev; | 455 | input_dev->cdev.dev = &pci->dev; |
456 | |||
457 | /* record handles to ourself */ | 456 | /* record handles to ourself */ |
458 | ir->core = core; | 457 | ir->core = core; |
459 | core->ir = ir; | 458 | core->ir = ir; |
@@ -586,7 +585,6 @@ void cx88_ir_irq(struct cx88_core *core) | |||
586 | MODULE_AUTHOR("Gerd Knorr, Pavel Machek, Chris Pascoe"); | 585 | MODULE_AUTHOR("Gerd Knorr, Pavel Machek, Chris Pascoe"); |
587 | MODULE_DESCRIPTION("input driver for cx88 GPIO-based IR remote controls"); | 586 | MODULE_DESCRIPTION("input driver for cx88 GPIO-based IR remote controls"); |
588 | MODULE_LICENSE("GPL"); | 587 | MODULE_LICENSE("GPL"); |
589 | |||
590 | /* | 588 | /* |
591 | * Local variables: | 589 | * Local variables: |
592 | * c-basic-offset: 8 | 590 | * c-basic-offset: 8 |
diff --git a/drivers/media/video/cx88/cx88-tvaudio.c b/drivers/media/video/cx88/cx88-tvaudio.c index 6d9bec1c583..a1b120c8a9b 100644 --- a/drivers/media/video/cx88/cx88-tvaudio.c +++ b/drivers/media/video/cx88/cx88-tvaudio.c | |||
@@ -119,13 +119,10 @@ static void set_audio_registers(struct cx88_core *core, const struct rlist *l) | |||
119 | 119 | ||
120 | static void set_audio_start(struct cx88_core *core, u32 mode) | 120 | static void set_audio_start(struct cx88_core *core, u32 mode) |
121 | { | 121 | { |
122 | // mute | 122 | /* mute */ |
123 | cx_write(AUD_VOL_CTL, (1 << 6)); | 123 | cx_write(AUD_VOL_CTL, (1 << 6)); |
124 | 124 | ||
125 | // start programming | 125 | /* start programming */ |
126 | cx_write(MO_AUD_DMACNTRL, 0x0000); | ||
127 | msleep(100); | ||
128 | //cx_write(AUD_CTL, 0x0000); | ||
129 | cx_write(AUD_INIT, mode); | 126 | cx_write(AUD_INIT, mode); |
130 | cx_write(AUD_INIT_LD, 0x0001); | 127 | cx_write(AUD_INIT_LD, 0x0001); |
131 | cx_write(AUD_SOFT_RESET, 0x0001); | 128 | cx_write(AUD_SOFT_RESET, 0x0001); |
@@ -135,17 +132,21 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl) | |||
135 | { | 132 | { |
136 | u32 volume; | 133 | u32 volume; |
137 | 134 | ||
135 | /* restart dma; This avoids buzz in NICAM and is good in others */ | ||
136 | cx88_stop_audio_dma(core); | ||
137 | cx_write(AUD_RATE_THRES_DMD, 0x000000C0); | ||
138 | cx88_start_audio_dma(core); | ||
139 | |||
138 | if (cx88_boards[core->board].blackbird) { | 140 | if (cx88_boards[core->board].blackbird) { |
139 | // sets sound input from external adc | 141 | /* sets sound input from external adc */ |
140 | cx_set(AUD_CTL, EN_I2SIN_ENABLE); | 142 | cx_set(AUD_CTL, EN_I2SIN_ENABLE); |
141 | //cx_write(AUD_I2SINPUTCNTL, 0); | ||
142 | cx_write(AUD_I2SINPUTCNTL, 4); | 143 | cx_write(AUD_I2SINPUTCNTL, 4); |
143 | cx_write(AUD_BAUDRATE, 1); | 144 | cx_write(AUD_BAUDRATE, 1); |
144 | // 'pass-thru mode': this enables the i2s output to the mpeg encoder | 145 | /* 'pass-thru mode': this enables the i2s output to the mpeg encoder */ |
145 | cx_set(AUD_CTL, EN_I2SOUT_ENABLE); | 146 | cx_set(AUD_CTL, EN_I2SOUT_ENABLE); |
146 | cx_write(AUD_I2SOUTPUTCNTL, 1); | 147 | cx_write(AUD_I2SOUTPUTCNTL, 1); |
147 | cx_write(AUD_I2SCNTL, 0); | 148 | cx_write(AUD_I2SCNTL, 0); |
148 | //cx_write(AUD_APB_IN_RATE_ADJ, 0); | 149 | /* cx_write(AUD_APB_IN_RATE_ADJ, 0); */ |
149 | } else { | 150 | } else { |
150 | ctl |= EN_DAC_ENABLE; | 151 | ctl |= EN_DAC_ENABLE; |
151 | cx_write(AUD_CTL, ctl); | 152 | cx_write(AUD_CTL, ctl); |
@@ -153,7 +154,6 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl) | |||
153 | 154 | ||
154 | /* finish programming */ | 155 | /* finish programming */ |
155 | cx_write(AUD_SOFT_RESET, 0x0000); | 156 | cx_write(AUD_SOFT_RESET, 0x0000); |
156 | cx_write(MO_AUD_DMACNTRL, 0x0003); | ||
157 | 157 | ||
158 | /* unmute */ | 158 | /* unmute */ |
159 | volume = cx_sread(SHADOW_AUD_VOL_CTL); | 159 | volume = cx_sread(SHADOW_AUD_VOL_CTL); |
@@ -313,7 +313,6 @@ static void set_audio_standard_NICAM(struct cx88_core *core, u32 mode) | |||
313 | {AUD_RATE_ADJ3, 0x00000100}, | 313 | {AUD_RATE_ADJ3, 0x00000100}, |
314 | {AUD_RATE_ADJ4, 0x00000400}, | 314 | {AUD_RATE_ADJ4, 0x00000400}, |
315 | {AUD_RATE_ADJ5, 0x00001000}, | 315 | {AUD_RATE_ADJ5, 0x00001000}, |
316 | //{ AUD_DMD_RA_DDS, 0x00c0d5ce }, | ||
317 | {AUD_ERRLOGPERIOD_R, 0x00000fff}, | 316 | {AUD_ERRLOGPERIOD_R, 0x00000fff}, |
318 | {AUD_ERRINTRPTTHSHLD1_R, 0x000003ff}, | 317 | {AUD_ERRINTRPTTHSHLD1_R, 0x000003ff}, |
319 | {AUD_ERRINTRPTTHSHLD2_R, 0x000000ff}, | 318 | {AUD_ERRINTRPTTHSHLD2_R, 0x000000ff}, |
@@ -351,12 +350,12 @@ static void set_audio_standard_NICAM(struct cx88_core *core, u32 mode) | |||
351 | set_audio_registers(core, nicam_l); | 350 | set_audio_registers(core, nicam_l); |
352 | break; | 351 | break; |
353 | case WW_I: | 352 | case WW_I: |
354 | dprintk("%s PAL-I NICAM (status: devel)\n", __FUNCTION__); | 353 | dprintk("%s PAL-I NICAM (status: known-good)\n", __FUNCTION__); |
355 | set_audio_registers(core, nicam_bgdki_common); | 354 | set_audio_registers(core, nicam_bgdki_common); |
356 | set_audio_registers(core, nicam_i); | 355 | set_audio_registers(core, nicam_i); |
357 | break; | 356 | break; |
358 | default: | 357 | default: |
359 | dprintk("%s PAL-BGDK NICAM (status: unknown)\n", __FUNCTION__); | 358 | dprintk("%s PAL-BGDK NICAM (status: known-good)\n", __FUNCTION__); |
360 | set_audio_registers(core, nicam_bgdki_common); | 359 | set_audio_registers(core, nicam_bgdki_common); |
361 | set_audio_registers(core, nicam_default); | 360 | set_audio_registers(core, nicam_default); |
362 | break; | 361 | break; |
@@ -715,8 +714,7 @@ int cx88_detect_nicam(struct cx88_core *core) | |||
715 | /* if bit1=1 then nicam is detected */ | 714 | /* if bit1=1 then nicam is detected */ |
716 | j += ((cx_read(AUD_NICAM_STATUS2) & 0x02) >> 1); | 715 | j += ((cx_read(AUD_NICAM_STATUS2) & 0x02) >> 1); |
717 | 716 | ||
718 | /* 3x detected: absolutly sure now */ | 717 | if (j == 1) { |
719 | if (j == 3) { | ||
720 | dprintk("nicam is detected.\n"); | 718 | dprintk("nicam is detected.\n"); |
721 | return 1; | 719 | return 1; |
722 | } | 720 | } |
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h index b19d3a9e229..77beafc5c32 100644 --- a/drivers/media/video/cx88/cx88.h +++ b/drivers/media/video/cx88/cx88.h | |||
@@ -411,7 +411,6 @@ struct cx8802_dev { | |||
411 | struct videobuf_dvb dvb; | 411 | struct videobuf_dvb dvb; |
412 | void* fe_handle; | 412 | void* fe_handle; |
413 | int (*fe_release)(void *handle); | 413 | int (*fe_release)(void *handle); |
414 | |||
415 | /* for switching modulation types */ | 414 | /* for switching modulation types */ |
416 | unsigned char ts_gen_cntrl; | 415 | unsigned char ts_gen_cntrl; |
417 | 416 | ||
@@ -491,6 +490,10 @@ extern struct cx88_core* cx88_core_get(struct pci_dev *pci); | |||
491 | extern void cx88_core_put(struct cx88_core *core, | 490 | extern void cx88_core_put(struct cx88_core *core, |
492 | struct pci_dev *pci); | 491 | struct pci_dev *pci); |
493 | 492 | ||
493 | extern int cx88_start_audio_dma(struct cx88_core *core); | ||
494 | extern int cx88_stop_audio_dma(struct cx88_core *core); | ||
495 | |||
496 | |||
494 | /* ----------------------------------------------------------- */ | 497 | /* ----------------------------------------------------------- */ |
495 | /* cx88-vbi.c */ | 498 | /* cx88-vbi.c */ |
496 | 499 | ||
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c index d54bc012748..0cfe75416ec 100644 --- a/drivers/media/video/em28xx/em28xx-core.c +++ b/drivers/media/video/em28xx/em28xx-core.c | |||
@@ -32,7 +32,7 @@ | |||
32 | 32 | ||
33 | /* #define ENABLE_DEBUG_ISOC_FRAMES */ | 33 | /* #define ENABLE_DEBUG_ISOC_FRAMES */ |
34 | 34 | ||
35 | unsigned int core_debug; | 35 | static unsigned int core_debug; |
36 | module_param(core_debug,int,0644); | 36 | module_param(core_debug,int,0644); |
37 | MODULE_PARM_DESC(core_debug,"enable debug messages [core]"); | 37 | MODULE_PARM_DESC(core_debug,"enable debug messages [core]"); |
38 | 38 | ||
@@ -41,7 +41,7 @@ MODULE_PARM_DESC(core_debug,"enable debug messages [core]"); | |||
41 | printk(KERN_INFO "%s %s :"fmt, \ | 41 | printk(KERN_INFO "%s %s :"fmt, \ |
42 | dev->name, __FUNCTION__ , ##arg); } while (0) | 42 | dev->name, __FUNCTION__ , ##arg); } while (0) |
43 | 43 | ||
44 | unsigned int reg_debug; | 44 | static unsigned int reg_debug; |
45 | module_param(reg_debug,int,0644); | 45 | module_param(reg_debug,int,0644); |
46 | MODULE_PARM_DESC(reg_debug,"enable debug messages [URB reg]"); | 46 | MODULE_PARM_DESC(reg_debug,"enable debug messages [URB reg]"); |
47 | 47 | ||
@@ -50,7 +50,7 @@ MODULE_PARM_DESC(reg_debug,"enable debug messages [URB reg]"); | |||
50 | printk(KERN_INFO "%s %s :"fmt, \ | 50 | printk(KERN_INFO "%s %s :"fmt, \ |
51 | dev->name, __FUNCTION__ , ##arg); } while (0) | 51 | dev->name, __FUNCTION__ , ##arg); } while (0) |
52 | 52 | ||
53 | unsigned int isoc_debug; | 53 | static unsigned int isoc_debug; |
54 | module_param(isoc_debug,int,0644); | 54 | module_param(isoc_debug,int,0644); |
55 | MODULE_PARM_DESC(isoc_debug,"enable debug messages [isoc transfers]"); | 55 | MODULE_PARM_DESC(isoc_debug,"enable debug messages [isoc transfers]"); |
56 | 56 | ||
@@ -116,47 +116,6 @@ void em28xx_print_ioctl(char *name, unsigned int cmd) | |||
116 | } | 116 | } |
117 | } | 117 | } |
118 | 118 | ||
119 | static void *rvmalloc(size_t size) | ||
120 | { | ||
121 | void *mem; | ||
122 | unsigned long adr; | ||
123 | |||
124 | size = PAGE_ALIGN(size); | ||
125 | |||
126 | mem = vmalloc_32((unsigned long)size); | ||
127 | if (!mem) | ||
128 | return NULL; | ||
129 | |||
130 | memset(mem, 0, size); | ||
131 | |||
132 | adr = (unsigned long)mem; | ||
133 | while (size > 0) { | ||
134 | SetPageReserved(vmalloc_to_page((void *)adr)); | ||
135 | adr += PAGE_SIZE; | ||
136 | size -= PAGE_SIZE; | ||
137 | } | ||
138 | |||
139 | return mem; | ||
140 | } | ||
141 | |||
142 | static void rvfree(void *mem, size_t size) | ||
143 | { | ||
144 | unsigned long adr; | ||
145 | |||
146 | if (!mem) | ||
147 | return; | ||
148 | |||
149 | size = PAGE_ALIGN(size); | ||
150 | |||
151 | adr = (unsigned long)mem; | ||
152 | while (size > 0) { | ||
153 | ClearPageReserved(vmalloc_to_page((void *)adr)); | ||
154 | adr += PAGE_SIZE; | ||
155 | size -= PAGE_SIZE; | ||
156 | } | ||
157 | |||
158 | vfree(mem); | ||
159 | } | ||
160 | 119 | ||
161 | /* | 120 | /* |
162 | * em28xx_request_buffers() | 121 | * em28xx_request_buffers() |
@@ -167,14 +126,16 @@ u32 em28xx_request_buffers(struct em28xx *dev, u32 count) | |||
167 | const size_t imagesize = PAGE_ALIGN(dev->frame_size); /*needs to be page aligned cause the buffers can be mapped individually! */ | 126 | const size_t imagesize = PAGE_ALIGN(dev->frame_size); /*needs to be page aligned cause the buffers can be mapped individually! */ |
168 | void *buff = NULL; | 127 | void *buff = NULL; |
169 | u32 i; | 128 | u32 i; |
170 | em28xx_coredbg("requested %i buffers with size %i", count, imagesize); | 129 | em28xx_coredbg("requested %i buffers with size %zd", count, imagesize); |
171 | if (count > EM28XX_NUM_FRAMES) | 130 | if (count > EM28XX_NUM_FRAMES) |
172 | count = EM28XX_NUM_FRAMES; | 131 | count = EM28XX_NUM_FRAMES; |
173 | 132 | ||
174 | dev->num_frames = count; | 133 | dev->num_frames = count; |
175 | while (dev->num_frames > 0) { | 134 | while (dev->num_frames > 0) { |
176 | if ((buff = rvmalloc(dev->num_frames * imagesize))) | 135 | if ((buff = vmalloc_32(dev->num_frames * imagesize))) { |
136 | memset(buff, 0, dev->num_frames * imagesize); | ||
177 | break; | 137 | break; |
138 | } | ||
178 | dev->num_frames--; | 139 | dev->num_frames--; |
179 | } | 140 | } |
180 | 141 | ||
@@ -217,8 +178,7 @@ void em28xx_queue_unusedframes(struct em28xx *dev) | |||
217 | void em28xx_release_buffers(struct em28xx *dev) | 178 | void em28xx_release_buffers(struct em28xx *dev) |
218 | { | 179 | { |
219 | if (dev->num_frames) { | 180 | if (dev->num_frames) { |
220 | rvfree(dev->frame[0].bufmem, | 181 | vfree(dev->frame[0].bufmem); |
221 | dev->num_frames * PAGE_ALIGN(dev->frame[0].buf.length)); | ||
222 | dev->num_frames = 0; | 182 | dev->num_frames = 0; |
223 | } | 183 | } |
224 | } | 184 | } |
diff --git a/drivers/media/video/em28xx/em28xx-i2c.c b/drivers/media/video/em28xx/em28xx-i2c.c index b32d9852f34..d14bcf4ceae 100644 --- a/drivers/media/video/em28xx/em28xx-i2c.c +++ b/drivers/media/video/em28xx/em28xx-i2c.c | |||
@@ -41,7 +41,7 @@ module_param(i2c_debug, int, 0644); | |||
41 | MODULE_PARM_DESC(i2c_debug, "enable debug messages [i2c]"); | 41 | MODULE_PARM_DESC(i2c_debug, "enable debug messages [i2c]"); |
42 | 42 | ||
43 | #define dprintk1(lvl,fmt, args...) if (i2c_debug>=lvl) do {\ | 43 | #define dprintk1(lvl,fmt, args...) if (i2c_debug>=lvl) do {\ |
44 | printk(fmt , ##args); } while (0) | 44 | printk(fmt, ##args); } while (0) |
45 | #define dprintk2(lvl,fmt, args...) if (i2c_debug>=lvl) do{ \ | 45 | #define dprintk2(lvl,fmt, args...) if (i2c_debug>=lvl) do{ \ |
46 | printk(KERN_DEBUG "%s at %s: " fmt, \ | 46 | printk(KERN_DEBUG "%s at %s: " fmt, \ |
47 | dev->name, __FUNCTION__ , ##args); } while (0) | 47 | dev->name, __FUNCTION__ , ##args); } while (0) |
@@ -497,7 +497,6 @@ static struct i2c_adapter em28xx_adap_template = { | |||
497 | 497 | ||
498 | static struct i2c_client em28xx_client_template = { | 498 | static struct i2c_client em28xx_client_template = { |
499 | .name = "em28xx internal", | 499 | .name = "em28xx internal", |
500 | .flags = I2C_CLIENT_ALLOW_USE, | ||
501 | }; | 500 | }; |
502 | 501 | ||
503 | /* ----------------------------------------------------------- */ | 502 | /* ----------------------------------------------------------- */ |
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index 57c1826b928..3a56120397a 100644 --- a/drivers/media/video/em28xx/em28xx-video.c +++ b/drivers/media/video/em28xx/em28xx-video.c | |||
@@ -189,16 +189,6 @@ static DECLARE_RWSEM(em28xx_disconnect); | |||
189 | 189 | ||
190 | /********************* v4l2 interface ******************************************/ | 190 | /********************* v4l2 interface ******************************************/ |
191 | 191 | ||
192 | static inline unsigned long kvirt_to_pa(unsigned long adr) | ||
193 | { | ||
194 | unsigned long kva, ret; | ||
195 | |||
196 | kva = (unsigned long)page_address(vmalloc_to_page((void *)adr)); | ||
197 | kva |= adr & (PAGE_SIZE - 1); | ||
198 | ret = __pa(kva); | ||
199 | return ret; | ||
200 | } | ||
201 | |||
202 | /* | 192 | /* |
203 | * em28xx_config() | 193 | * em28xx_config() |
204 | * inits registers with sane defaults | 194 | * inits registers with sane defaults |
@@ -226,7 +216,7 @@ static int em28xx_config(struct em28xx *dev) | |||
226 | * em28xx_config_i2c() | 216 | * em28xx_config_i2c() |
227 | * configure i2c attached devices | 217 | * configure i2c attached devices |
228 | */ | 218 | */ |
229 | void em28xx_config_i2c(struct em28xx *dev) | 219 | static void em28xx_config_i2c(struct em28xx *dev) |
230 | { | 220 | { |
231 | struct v4l2_frequency f; | 221 | struct v4l2_frequency f; |
232 | struct video_decoder_init em28xx_vdi = {.data = NULL }; | 222 | struct video_decoder_init em28xx_vdi = {.data = NULL }; |
@@ -616,7 +606,8 @@ static struct vm_operations_struct em28xx_vm_ops = { | |||
616 | static int em28xx_v4l2_mmap(struct file *filp, struct vm_area_struct *vma) | 606 | static int em28xx_v4l2_mmap(struct file *filp, struct vm_area_struct *vma) |
617 | { | 607 | { |
618 | unsigned long size = vma->vm_end - vma->vm_start, | 608 | unsigned long size = vma->vm_end - vma->vm_start, |
619 | start = vma->vm_start, pos, page; | 609 | start = vma->vm_start; |
610 | void *pos; | ||
620 | u32 i; | 611 | u32 i; |
621 | 612 | ||
622 | struct em28xx *dev = filp->private_data; | 613 | struct em28xx *dev = filp->private_data; |
@@ -657,12 +648,10 @@ static int em28xx_v4l2_mmap(struct file *filp, struct vm_area_struct *vma) | |||
657 | vma->vm_flags |= VM_IO; | 648 | vma->vm_flags |= VM_IO; |
658 | vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */ | 649 | vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */ |
659 | 650 | ||
660 | pos = (unsigned long)dev->frame[i].bufmem; | 651 | pos = dev->frame[i].bufmem; |
661 | while (size > 0) { /* size is page-aligned */ | 652 | while (size > 0) { /* size is page-aligned */ |
662 | page = vmalloc_to_pfn((void *)pos); | 653 | if (vm_insert_page(vma, start, vmalloc_to_page(pos))) { |
663 | if (remap_pfn_range(vma, start, page, PAGE_SIZE, | 654 | em28xx_videodbg("mmap: vm_insert_page failed\n"); |
664 | vma->vm_page_prot)) { | ||
665 | em28xx_videodbg("mmap: rename page map failed\n"); | ||
666 | up(&dev->fileop_lock); | 655 | up(&dev->fileop_lock); |
667 | return -EAGAIN; | 656 | return -EAGAIN; |
668 | } | 657 | } |
@@ -1895,7 +1884,6 @@ static void em28xx_usb_disconnect(struct usb_interface *interface) | |||
1895 | } | 1884 | } |
1896 | 1885 | ||
1897 | static struct usb_driver em28xx_usb_driver = { | 1886 | static struct usb_driver em28xx_usb_driver = { |
1898 | .owner = THIS_MODULE, | ||
1899 | .name = "em28xx", | 1887 | .name = "em28xx", |
1900 | .probe = em28xx_usb_probe, | 1888 | .probe = em28xx_usb_probe, |
1901 | .disconnect = em28xx_usb_disconnect, | 1889 | .disconnect = em28xx_usb_disconnect, |
diff --git a/drivers/media/video/indycam.c b/drivers/media/video/indycam.c index deeef125eb9..bb5cbecffcc 100644 --- a/drivers/media/video/indycam.c +++ b/drivers/media/video/indycam.c | |||
@@ -451,10 +451,10 @@ static int indycam_command(struct i2c_client *client, unsigned int cmd, | |||
451 | } | 451 | } |
452 | 452 | ||
453 | static struct i2c_driver i2c_driver_indycam = { | 453 | static struct i2c_driver i2c_driver_indycam = { |
454 | .owner = THIS_MODULE, | 454 | .driver = { |
455 | .name = "indycam", | 455 | .name = "indycam", |
456 | }, | ||
456 | .id = I2C_DRIVERID_INDYCAM, | 457 | .id = I2C_DRIVERID_INDYCAM, |
457 | .flags = I2C_DF_NOTIFY, | ||
458 | .attach_adapter = indycam_probe, | 458 | .attach_adapter = indycam_probe, |
459 | .detach_client = indycam_detach, | 459 | .detach_client = indycam_detach, |
460 | .command = indycam_command, | 460 | .command = indycam_command, |
diff --git a/drivers/media/video/ir-kbd-gpio.c b/drivers/media/video/ir-kbd-gpio.c index 6345e29e495..de1385e5d05 100644 --- a/drivers/media/video/ir-kbd-gpio.c +++ b/drivers/media/video/ir-kbd-gpio.c | |||
@@ -291,13 +291,12 @@ struct IR { | |||
291 | u32 mask_keycode; | 291 | u32 mask_keycode; |
292 | u32 mask_keydown; | 292 | u32 mask_keydown; |
293 | u32 mask_keyup; | 293 | u32 mask_keyup; |
294 | u32 polling; | 294 | u32 polling; |
295 | u32 last_gpio; | 295 | u32 last_gpio; |
296 | struct work_struct work; | 296 | struct work_struct work; |
297 | struct timer_list timer; | 297 | struct timer_list timer; |
298 | 298 | ||
299 | /* RC5 gpio */ | 299 | /* RC5 gpio */ |
300 | |||
301 | u32 rc5_gpio; | 300 | u32 rc5_gpio; |
302 | struct timer_list timer_end; /* timer_end for code completion */ | 301 | struct timer_list timer_end; /* timer_end for code completion */ |
303 | struct timer_list timer_keyup; /* timer_end for key release */ | 302 | struct timer_list timer_keyup; /* timer_end for key release */ |
@@ -647,7 +646,7 @@ static int ir_probe(struct device *dev) | |||
647 | driver.any_irq = ir_rc5_irq; | 646 | driver.any_irq = ir_rc5_irq; |
648 | driver.gpio_irq = NULL; | 647 | driver.gpio_irq = NULL; |
649 | ir->rc5_gpio = 1; | 648 | ir->rc5_gpio = 1; |
650 | break; | 649 | break; |
651 | } | 650 | } |
652 | if (NULL == ir_codes) { | 651 | if (NULL == ir_codes) { |
653 | kfree(ir); | 652 | kfree(ir); |
@@ -657,7 +656,7 @@ static int ir_probe(struct device *dev) | |||
657 | 656 | ||
658 | if (ir->rc5_gpio) { | 657 | if (ir->rc5_gpio) { |
659 | u32 gpio; | 658 | u32 gpio; |
660 | /* enable remote irq */ | 659 | /* enable remote irq */ |
661 | bttv_gpio_inout(sub->core, (1 << 4), 1 << 4); | 660 | bttv_gpio_inout(sub->core, (1 << 4), 1 << 4); |
662 | gpio = bttv_gpio_read(sub->core); | 661 | gpio = bttv_gpio_read(sub->core); |
663 | bttv_gpio_write(sub->core, gpio & ~(1 << 4)); | 662 | bttv_gpio_write(sub->core, gpio & ~(1 << 4)); |
@@ -726,6 +725,7 @@ static int ir_remove(struct device *dev) | |||
726 | del_timer(&ir->timer); | 725 | del_timer(&ir->timer); |
727 | flush_scheduled_work(); | 726 | flush_scheduled_work(); |
728 | } | 727 | } |
728 | |||
729 | if (ir->rc5_gpio) { | 729 | if (ir->rc5_gpio) { |
730 | u32 gpio; | 730 | u32 gpio; |
731 | 731 | ||
diff --git a/drivers/media/video/ir-kbd-i2c.c b/drivers/media/video/ir-kbd-i2c.c index 801c736e932..3cc1d6a6019 100644 --- a/drivers/media/video/ir-kbd-i2c.c +++ b/drivers/media/video/ir-kbd-i2c.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <linux/i2c.h> | 40 | #include <linux/i2c.h> |
41 | #include <linux/workqueue.h> | 41 | #include <linux/workqueue.h> |
42 | #include <asm/semaphore.h> | 42 | #include <asm/semaphore.h> |
43 | |||
43 | #include <media/ir-common.h> | 44 | #include <media/ir-common.h> |
44 | #include <media/ir-kbd-i2c.h> | 45 | #include <media/ir-kbd-i2c.h> |
45 | 46 | ||
@@ -277,9 +278,10 @@ static int ir_detach(struct i2c_client *client); | |||
277 | static int ir_probe(struct i2c_adapter *adap); | 278 | static int ir_probe(struct i2c_adapter *adap); |
278 | 279 | ||
279 | static struct i2c_driver driver = { | 280 | static struct i2c_driver driver = { |
280 | .name = "ir remote kbd driver", | 281 | .driver = { |
281 | .id = I2C_DRIVERID_EXP3, /* FIXME */ | 282 | .name = "ir remote kbd driver", |
282 | .flags = I2C_DF_NOTIFY, | 283 | }, |
284 | .id = I2C_DRIVERID_INFRARED, | ||
283 | .attach_adapter = ir_probe, | 285 | .attach_adapter = ir_probe, |
284 | .detach_client = ir_detach, | 286 | .detach_client = ir_detach, |
285 | }; | 287 | }; |
@@ -296,15 +298,15 @@ static int ir_attach(struct i2c_adapter *adap, int addr, | |||
296 | IR_KEYTAB_TYPE *ir_codes = NULL; | 298 | IR_KEYTAB_TYPE *ir_codes = NULL; |
297 | char *name; | 299 | char *name; |
298 | int ir_type; | 300 | int ir_type; |
299 | struct IR_i2c *ir; | 301 | struct IR_i2c *ir; |
300 | struct input_dev *input_dev; | 302 | struct input_dev *input_dev; |
301 | 303 | ||
302 | ir = kzalloc(sizeof(struct IR_i2c), GFP_KERNEL); | 304 | ir = kzalloc(sizeof(struct IR_i2c),GFP_KERNEL); |
303 | input_dev = input_allocate_device(); | 305 | input_dev = input_allocate_device(); |
304 | if (!ir || !input_dev) { | 306 | if (!ir || !input_dev) { |
305 | kfree(ir); | 307 | kfree(ir); |
306 | input_free_device(input_dev); | 308 | input_free_device(input_dev); |
307 | return -ENOMEM; | 309 | return -ENOMEM; |
308 | } | 310 | } |
309 | 311 | ||
310 | ir->c = client_template; | 312 | ir->c = client_template; |
@@ -360,7 +362,7 @@ static int ir_attach(struct i2c_adapter *adap, int addr, | |||
360 | /* register i2c device | 362 | /* register i2c device |
361 | * At device register, IR codes may be changed to be | 363 | * At device register, IR codes may be changed to be |
362 | * board dependent. | 364 | * board dependent. |
363 | */ | 365 | */ |
364 | i2c_attach_client(&ir->c); | 366 | i2c_attach_client(&ir->c); |
365 | 367 | ||
366 | /* If IR not supported or disabled, unregisters driver */ | 368 | /* If IR not supported or disabled, unregisters driver */ |
diff --git a/drivers/media/video/msp3400.c b/drivers/media/video/msp3400.c index a23fb033898..183253e2dd9 100644 --- a/drivers/media/video/msp3400.c +++ b/drivers/media/video/msp3400.c | |||
@@ -59,7 +59,8 @@ | |||
59 | #define msp3400_dbg(fmt, arg...) \ | 59 | #define msp3400_dbg(fmt, arg...) \ |
60 | do { \ | 60 | do { \ |
61 | if (debug) \ | 61 | if (debug) \ |
62 | printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \ | 62 | printk(KERN_INFO "%s debug %d-%04x: " fmt, \ |
63 | client->driver->driver.name, \ | ||
63 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ | 64 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ |
64 | } while (0) | 65 | } while (0) |
65 | 66 | ||
@@ -67,7 +68,8 @@ | |||
67 | #define msp3400_dbg_mediumvol(fmt, arg...) \ | 68 | #define msp3400_dbg_mediumvol(fmt, arg...) \ |
68 | do { \ | 69 | do { \ |
69 | if (debug >= 2) \ | 70 | if (debug >= 2) \ |
70 | printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \ | 71 | printk(KERN_INFO "%s debug %d-%04x: " fmt, \ |
72 | client->driver->driver.name, \ | ||
71 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ | 73 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ |
72 | } while (0) | 74 | } while (0) |
73 | 75 | ||
@@ -75,18 +77,19 @@ | |||
75 | #define msp3400_dbg_highvol(fmt, arg...) \ | 77 | #define msp3400_dbg_highvol(fmt, arg...) \ |
76 | do { \ | 78 | do { \ |
77 | if (debug >= 16) \ | 79 | if (debug >= 16) \ |
78 | printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \ | 80 | printk(KERN_INFO "%s debug %d-%04x: " fmt, \ |
81 | client->driver->driver.name, \ | ||
79 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ | 82 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ |
80 | } while (0) | 83 | } while (0) |
81 | 84 | ||
82 | #define msp3400_err(fmt, arg...) do { \ | 85 | #define msp3400_err(fmt, arg...) do { \ |
83 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \ | 86 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \ |
84 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 87 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
85 | #define msp3400_warn(fmt, arg...) do { \ | 88 | #define msp3400_warn(fmt, arg...) do { \ |
86 | printk(KERN_WARNING "%s %d-%04x: " fmt, client->driver->name, \ | 89 | printk(KERN_WARNING "%s %d-%04x: " fmt, client->driver->driver.name, \ |
87 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 90 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
88 | #define msp3400_info(fmt, arg...) do { \ | 91 | #define msp3400_info(fmt, arg...) do { \ |
89 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \ | 92 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \ |
90 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 93 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
91 | 94 | ||
92 | #define OPMODE_AUTO -1 | 95 | #define OPMODE_AUTO -1 |
@@ -134,7 +137,7 @@ struct msp3400c { | |||
134 | int rxsubchans; | 137 | int rxsubchans; |
135 | 138 | ||
136 | int muted; | 139 | int muted; |
137 | int left, right; /* volume */ | 140 | int left, right; /* volume */ |
138 | int bass, treble; | 141 | int bass, treble; |
139 | 142 | ||
140 | /* shadow register set */ | 143 | /* shadow register set */ |
@@ -882,6 +885,7 @@ static void watch_stereo(struct i2c_client *client) | |||
882 | msp->watch_stereo = 0; | 885 | msp->watch_stereo = 0; |
883 | } | 886 | } |
884 | 887 | ||
888 | |||
885 | static int msp3400c_thread(void *data) | 889 | static int msp3400c_thread(void *data) |
886 | { | 890 | { |
887 | struct i2c_client *client = data; | 891 | struct i2c_client *client = data; |
@@ -889,6 +893,7 @@ static int msp3400c_thread(void *data) | |||
889 | struct CARRIER_DETECT *cd; | 893 | struct CARRIER_DETECT *cd; |
890 | int count, max1,max2,val1,val2, val,this; | 894 | int count, max1,max2,val1,val2, val,this; |
891 | 895 | ||
896 | |||
892 | msp3400_info("msp3400 daemon started\n"); | 897 | msp3400_info("msp3400 daemon started\n"); |
893 | for (;;) { | 898 | for (;;) { |
894 | msp3400_dbg_mediumvol("msp3400 thread: sleep\n"); | 899 | msp3400_dbg_mediumvol("msp3400 thread: sleep\n"); |
@@ -1162,6 +1167,7 @@ static int msp3410d_thread(void *data) | |||
1162 | int mode,val,i,std; | 1167 | int mode,val,i,std; |
1163 | 1168 | ||
1164 | msp3400_info("msp3410 daemon started\n"); | 1169 | msp3400_info("msp3410 daemon started\n"); |
1170 | |||
1165 | for (;;) { | 1171 | for (;;) { |
1166 | msp3400_dbg_mediumvol("msp3410 thread: sleep\n"); | 1172 | msp3400_dbg_mediumvol("msp3410 thread: sleep\n"); |
1167 | msp34xx_sleep(msp,-1); | 1173 | msp34xx_sleep(msp,-1); |
@@ -1384,6 +1390,7 @@ static int msp34xxg_thread(void *data) | |||
1384 | int val, std, i; | 1390 | int val, std, i; |
1385 | 1391 | ||
1386 | msp3400_info("msp34xxg daemon started\n"); | 1392 | msp3400_info("msp34xxg daemon started\n"); |
1393 | |||
1387 | msp->source = 1; /* default */ | 1394 | msp->source = 1; /* default */ |
1388 | for (;;) { | 1395 | for (;;) { |
1389 | msp3400_dbg_mediumvol("msp34xxg thread: sleep\n"); | 1396 | msp3400_dbg_mediumvol("msp34xxg thread: sleep\n"); |
@@ -1557,14 +1564,12 @@ static int msp_resume(struct device * dev); | |||
1557 | static void msp_wake_thread(struct i2c_client *client); | 1564 | static void msp_wake_thread(struct i2c_client *client); |
1558 | 1565 | ||
1559 | static struct i2c_driver driver = { | 1566 | static struct i2c_driver driver = { |
1560 | .owner = THIS_MODULE, | 1567 | .id = I2C_DRIVERID_MSP3400, |
1561 | .name = "msp3400", | 1568 | .attach_adapter = msp_probe, |
1562 | .id = I2C_DRIVERID_MSP3400, | 1569 | .detach_client = msp_detach, |
1563 | .flags = I2C_DF_NOTIFY, | 1570 | .command = msp_command, |
1564 | .attach_adapter = msp_probe, | ||
1565 | .detach_client = msp_detach, | ||
1566 | .command = msp_command, | ||
1567 | .driver = { | 1571 | .driver = { |
1572 | .name = "i2c msp3400 driver", | ||
1568 | .suspend = msp_suspend, | 1573 | .suspend = msp_suspend, |
1569 | .resume = msp_resume, | 1574 | .resume = msp_resume, |
1570 | }, | 1575 | }, |
@@ -1573,8 +1578,7 @@ static struct i2c_driver driver = { | |||
1573 | static struct i2c_client client_template = | 1578 | static struct i2c_client client_template = |
1574 | { | 1579 | { |
1575 | .name = "(unset)", | 1580 | .name = "(unset)", |
1576 | .flags = I2C_CLIENT_ALLOW_USE, | 1581 | .driver = &driver, |
1577 | .driver = &driver, | ||
1578 | }; | 1582 | }; |
1579 | 1583 | ||
1580 | static int msp_attach(struct i2c_adapter *adap, int addr, int kind) | 1584 | static int msp_attach(struct i2c_adapter *adap, int addr, int kind) |
diff --git a/drivers/media/video/ovcamchip/ovcamchip_core.c b/drivers/media/video/ovcamchip/ovcamchip_core.c index 2de34ebf067..428f1bb75ec 100644 --- a/drivers/media/video/ovcamchip/ovcamchip_core.c +++ b/drivers/media/video/ovcamchip/ovcamchip_core.c | |||
@@ -410,11 +410,11 @@ static int ovcamchip_command(struct i2c_client *c, unsigned int cmd, void *arg) | |||
410 | /* ----------------------------------------------------------------------- */ | 410 | /* ----------------------------------------------------------------------- */ |
411 | 411 | ||
412 | static struct i2c_driver driver = { | 412 | static struct i2c_driver driver = { |
413 | .owner = THIS_MODULE, | 413 | .driver = { |
414 | .name = "ovcamchip", | 414 | .name = "ovcamchip", |
415 | }, | ||
415 | .id = I2C_DRIVERID_OVCAMCHIP, | 416 | .id = I2C_DRIVERID_OVCAMCHIP, |
416 | .class = I2C_CLASS_CAM_DIGITAL, | 417 | .class = I2C_CLASS_CAM_DIGITAL, |
417 | .flags = I2C_DF_NOTIFY, | ||
418 | .attach_adapter = ovcamchip_attach, | 418 | .attach_adapter = ovcamchip_attach, |
419 | .detach_client = ovcamchip_detach, | 419 | .detach_client = ovcamchip_detach, |
420 | .command = ovcamchip_command, | 420 | .command = ovcamchip_command, |
diff --git a/drivers/media/video/saa5246a.c b/drivers/media/video/saa5246a.c index b8054da31ff..0aa9e72f632 100644 --- a/drivers/media/video/saa5246a.c +++ b/drivers/media/video/saa5246a.c | |||
@@ -151,25 +151,18 @@ static int saa5246a_detach(struct i2c_client *client) | |||
151 | return 0; | 151 | return 0; |
152 | } | 152 | } |
153 | 153 | ||
154 | static int saa5246a_command(struct i2c_client *device, unsigned int cmd, | ||
155 | void *arg) | ||
156 | { | ||
157 | return -EINVAL; | ||
158 | } | ||
159 | |||
160 | /* | 154 | /* |
161 | * I2C interfaces | 155 | * I2C interfaces |
162 | */ | 156 | */ |
163 | 157 | ||
164 | static struct i2c_driver i2c_driver_videotext = | 158 | static struct i2c_driver i2c_driver_videotext = |
165 | { | 159 | { |
166 | .owner = THIS_MODULE, | 160 | .driver = { |
167 | .name = IF_NAME, /* name */ | 161 | .name = IF_NAME, /* name */ |
162 | }, | ||
168 | .id = I2C_DRIVERID_SAA5249, /* in i2c.h */ | 163 | .id = I2C_DRIVERID_SAA5249, /* in i2c.h */ |
169 | .flags = I2C_DF_NOTIFY, | ||
170 | .attach_adapter = saa5246a_probe, | 164 | .attach_adapter = saa5246a_probe, |
171 | .detach_client = saa5246a_detach, | 165 | .detach_client = saa5246a_detach, |
172 | .command = saa5246a_command | ||
173 | }; | 166 | }; |
174 | 167 | ||
175 | static struct i2c_client client_template = { | 168 | static struct i2c_client client_template = { |
diff --git a/drivers/media/video/saa5249.c b/drivers/media/video/saa5249.c index 7ffa2e9a9bf..a51c7bd9661 100644 --- a/drivers/media/video/saa5249.c +++ b/drivers/media/video/saa5249.c | |||
@@ -226,23 +226,16 @@ static int saa5249_detach(struct i2c_client *client) | |||
226 | return 0; | 226 | return 0; |
227 | } | 227 | } |
228 | 228 | ||
229 | static int saa5249_command(struct i2c_client *device, | ||
230 | unsigned int cmd, void *arg) | ||
231 | { | ||
232 | return -EINVAL; | ||
233 | } | ||
234 | |||
235 | /* new I2C driver support */ | 229 | /* new I2C driver support */ |
236 | 230 | ||
237 | static struct i2c_driver i2c_driver_videotext = | 231 | static struct i2c_driver i2c_driver_videotext = |
238 | { | 232 | { |
239 | .owner = THIS_MODULE, | 233 | .driver = { |
240 | .name = IF_NAME, /* name */ | 234 | .name = IF_NAME, /* name */ |
235 | }, | ||
241 | .id = I2C_DRIVERID_SAA5249, /* in i2c.h */ | 236 | .id = I2C_DRIVERID_SAA5249, /* in i2c.h */ |
242 | .flags = I2C_DF_NOTIFY, | ||
243 | .attach_adapter = saa5249_probe, | 237 | .attach_adapter = saa5249_probe, |
244 | .detach_client = saa5249_detach, | 238 | .detach_client = saa5249_detach, |
245 | .command = saa5249_command | ||
246 | }; | 239 | }; |
247 | 240 | ||
248 | static struct i2c_client client_template = { | 241 | static struct i2c_client client_template = { |
diff --git a/drivers/media/video/saa6588.c b/drivers/media/video/saa6588.c index dca3ddfd510..d60a783e047 100644 --- a/drivers/media/video/saa6588.c +++ b/drivers/media/video/saa6588.c | |||
@@ -422,7 +422,6 @@ static int saa6588_attach(struct i2c_adapter *adap, int addr, int kind) | |||
422 | s->timer.function = saa6588_timer; | 422 | s->timer.function = saa6588_timer; |
423 | s->timer.data = (unsigned long)s; | 423 | s->timer.data = (unsigned long)s; |
424 | schedule_work(&s->work); | 424 | schedule_work(&s->work); |
425 | |||
426 | return 0; | 425 | return 0; |
427 | } | 426 | } |
428 | 427 | ||
@@ -496,10 +495,10 @@ static int saa6588_command(struct i2c_client *client, unsigned int cmd, | |||
496 | /* ----------------------------------------------------------------------- */ | 495 | /* ----------------------------------------------------------------------- */ |
497 | 496 | ||
498 | static struct i2c_driver driver = { | 497 | static struct i2c_driver driver = { |
499 | .owner = THIS_MODULE, | 498 | .driver = { |
500 | .name = "i2c saa6588 driver", | 499 | .name = "i2c saa6588 driver", |
500 | }, | ||
501 | .id = -1, /* FIXME */ | 501 | .id = -1, /* FIXME */ |
502 | .flags = I2C_DF_NOTIFY, | ||
503 | .attach_adapter = saa6588_probe, | 502 | .attach_adapter = saa6588_probe, |
504 | .detach_client = saa6588_detach, | 503 | .detach_client = saa6588_detach, |
505 | .command = saa6588_command, | 504 | .command = saa6588_command, |
@@ -507,7 +506,6 @@ static struct i2c_driver driver = { | |||
507 | 506 | ||
508 | static struct i2c_client client_template = { | 507 | static struct i2c_client client_template = { |
509 | .name = "saa6588", | 508 | .name = "saa6588", |
510 | .flags = I2C_CLIENT_ALLOW_USE, | ||
511 | .driver = &driver, | 509 | .driver = &driver, |
512 | }; | 510 | }; |
513 | 511 | ||
diff --git a/drivers/media/video/saa7110.c b/drivers/media/video/saa7110.c index e116bdbed31..619ff0b7a1f 100644 --- a/drivers/media/video/saa7110.c +++ b/drivers/media/video/saa7110.c | |||
@@ -501,7 +501,6 @@ saa7110_detect_client (struct i2c_adapter *adapter, | |||
501 | client->addr = address; | 501 | client->addr = address; |
502 | client->adapter = adapter; | 502 | client->adapter = adapter; |
503 | client->driver = &i2c_driver_saa7110; | 503 | client->driver = &i2c_driver_saa7110; |
504 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
505 | strlcpy(I2C_NAME(client), "saa7110", sizeof(I2C_NAME(client))); | 504 | strlcpy(I2C_NAME(client), "saa7110", sizeof(I2C_NAME(client))); |
506 | 505 | ||
507 | decoder = kmalloc(sizeof(struct saa7110), GFP_KERNEL); | 506 | decoder = kmalloc(sizeof(struct saa7110), GFP_KERNEL); |
@@ -587,11 +586,11 @@ saa7110_detach_client (struct i2c_client *client) | |||
587 | /* ----------------------------------------------------------------------- */ | 586 | /* ----------------------------------------------------------------------- */ |
588 | 587 | ||
589 | static struct i2c_driver i2c_driver_saa7110 = { | 588 | static struct i2c_driver i2c_driver_saa7110 = { |
590 | .owner = THIS_MODULE, | 589 | .driver = { |
591 | .name = "saa7110", | 590 | .name = "saa7110", |
591 | }, | ||
592 | 592 | ||
593 | .id = I2C_DRIVERID_SAA7110, | 593 | .id = I2C_DRIVERID_SAA7110, |
594 | .flags = I2C_DF_NOTIFY, | ||
595 | 594 | ||
596 | .attach_adapter = saa7110_attach_adapter, | 595 | .attach_adapter = saa7110_attach_adapter, |
597 | .detach_client = saa7110_detach_client, | 596 | .detach_client = saa7110_detach_client, |
diff --git a/drivers/media/video/saa7111.c b/drivers/media/video/saa7111.c index fe8a5e45396..acaeee592b5 100644 --- a/drivers/media/video/saa7111.c +++ b/drivers/media/video/saa7111.c | |||
@@ -518,7 +518,6 @@ saa7111_detect_client (struct i2c_adapter *adapter, | |||
518 | client->addr = address; | 518 | client->addr = address; |
519 | client->adapter = adapter; | 519 | client->adapter = adapter; |
520 | client->driver = &i2c_driver_saa7111; | 520 | client->driver = &i2c_driver_saa7111; |
521 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
522 | strlcpy(I2C_NAME(client), "saa7111", sizeof(I2C_NAME(client))); | 521 | strlcpy(I2C_NAME(client), "saa7111", sizeof(I2C_NAME(client))); |
523 | 522 | ||
524 | decoder = kmalloc(sizeof(struct saa7111), GFP_KERNEL); | 523 | decoder = kmalloc(sizeof(struct saa7111), GFP_KERNEL); |
@@ -590,11 +589,11 @@ saa7111_detach_client (struct i2c_client *client) | |||
590 | /* ----------------------------------------------------------------------- */ | 589 | /* ----------------------------------------------------------------------- */ |
591 | 590 | ||
592 | static struct i2c_driver i2c_driver_saa7111 = { | 591 | static struct i2c_driver i2c_driver_saa7111 = { |
593 | .owner = THIS_MODULE, | 592 | .driver = { |
594 | .name = "saa7111", | 593 | .name = "saa7111", |
594 | }, | ||
595 | 595 | ||
596 | .id = I2C_DRIVERID_SAA7111A, | 596 | .id = I2C_DRIVERID_SAA7111A, |
597 | .flags = I2C_DF_NOTIFY, | ||
598 | 597 | ||
599 | .attach_adapter = saa7111_attach_adapter, | 598 | .attach_adapter = saa7111_attach_adapter, |
600 | .detach_client = saa7111_detach_client, | 599 | .detach_client = saa7111_detach_client, |
diff --git a/drivers/media/video/saa7114.c b/drivers/media/video/saa7114.c index d9f50e2f7b9..b7ac0122f72 100644 --- a/drivers/media/video/saa7114.c +++ b/drivers/media/video/saa7114.c | |||
@@ -859,7 +859,6 @@ saa7114_detect_client (struct i2c_adapter *adapter, | |||
859 | client->addr = address; | 859 | client->addr = address; |
860 | client->adapter = adapter; | 860 | client->adapter = adapter; |
861 | client->driver = &i2c_driver_saa7114; | 861 | client->driver = &i2c_driver_saa7114; |
862 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
863 | strlcpy(I2C_NAME(client), "saa7114", sizeof(I2C_NAME(client))); | 862 | strlcpy(I2C_NAME(client), "saa7114", sizeof(I2C_NAME(client))); |
864 | 863 | ||
865 | decoder = kmalloc(sizeof(struct saa7114), GFP_KERNEL); | 864 | decoder = kmalloc(sizeof(struct saa7114), GFP_KERNEL); |
@@ -1204,11 +1203,11 @@ saa7114_detach_client (struct i2c_client *client) | |||
1204 | /* ----------------------------------------------------------------------- */ | 1203 | /* ----------------------------------------------------------------------- */ |
1205 | 1204 | ||
1206 | static struct i2c_driver i2c_driver_saa7114 = { | 1205 | static struct i2c_driver i2c_driver_saa7114 = { |
1207 | .owner = THIS_MODULE, | 1206 | .driver = { |
1208 | .name = "saa7114", | 1207 | .name = "saa7114", |
1208 | }, | ||
1209 | 1209 | ||
1210 | .id = I2C_DRIVERID_SAA7114, | 1210 | .id = I2C_DRIVERID_SAA7114, |
1211 | .flags = I2C_DF_NOTIFY, | ||
1212 | 1211 | ||
1213 | .attach_adapter = saa7114_attach_adapter, | 1212 | .attach_adapter = saa7114_attach_adapter, |
1214 | .detach_client = saa7114_detach_client, | 1213 | .detach_client = saa7114_detach_client, |
diff --git a/drivers/media/video/saa7115.c b/drivers/media/video/saa7115.c index 0235cef07b3..29e28c742cd 100644 --- a/drivers/media/video/saa7115.c +++ b/drivers/media/video/saa7115.c | |||
@@ -52,15 +52,16 @@ MODULE_PARM_DESC(debug, "Debug level (0-1)"); | |||
52 | #define saa7115_dbg(fmt,arg...) \ | 52 | #define saa7115_dbg(fmt,arg...) \ |
53 | do { \ | 53 | do { \ |
54 | if (debug) \ | 54 | if (debug) \ |
55 | printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \ | 55 | printk(KERN_INFO "%s debug %d-%04x: " fmt, \ |
56 | client->driver->driver.name, \ | ||
56 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ | 57 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ |
57 | } while (0) | 58 | } while (0) |
58 | 59 | ||
59 | #define saa7115_err(fmt, arg...) do { \ | 60 | #define saa7115_err(fmt, arg...) do { \ |
60 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \ | 61 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \ |
61 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 62 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
62 | #define saa7115_info(fmt, arg...) do { \ | 63 | #define saa7115_info(fmt, arg...) do { \ |
63 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \ | 64 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \ |
64 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 65 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
65 | 66 | ||
66 | static unsigned short normal_i2c[] = { 0x42 >> 1, 0x40 >> 1, I2C_CLIENT_END }; | 67 | static unsigned short normal_i2c[] = { 0x42 >> 1, 0x40 >> 1, I2C_CLIENT_END }; |
@@ -771,17 +772,19 @@ static v4l2_std_id saa7115_get_v4lstd(struct i2c_client *client) | |||
771 | 772 | ||
772 | static void saa7115_log_status(struct i2c_client *client) | 773 | static void saa7115_log_status(struct i2c_client *client) |
773 | { | 774 | { |
774 | static const char * const audclk_freq_strs[] = { | ||
775 | "44.1 kHz", | ||
776 | "48 kHz", | ||
777 | "32 kHz" | ||
778 | }; | ||
779 | struct saa7115_state *state = i2c_get_clientdata(client); | 775 | struct saa7115_state *state = i2c_get_clientdata(client); |
776 | char *audfreq = "undefined"; | ||
780 | int reg1e, reg1f; | 777 | int reg1e, reg1f; |
781 | int signalOk; | 778 | int signalOk; |
782 | int vcr; | 779 | int vcr; |
783 | 780 | ||
784 | saa7115_info("Audio frequency: %s\n", audclk_freq_strs[state->audclk_freq]); | 781 | switch (state->audclk_freq) { |
782 | case V4L2_AUDCLK_32_KHZ: audfreq = "32 kHz"; break; | ||
783 | case V4L2_AUDCLK_441_KHZ: audfreq = "44.1 kHz"; break; | ||
784 | case V4L2_AUDCLK_48_KHZ: audfreq = "48 kHz"; break; | ||
785 | } | ||
786 | |||
787 | saa7115_info("Audio frequency: %s\n", audfreq); | ||
785 | if (client->name[6] == '4') { | 788 | if (client->name[6] == '4') { |
786 | /* status for the saa7114 */ | 789 | /* status for the saa7114 */ |
787 | reg1f = saa7115_read(client, 0x1f); | 790 | reg1f = saa7115_read(client, 0x1f); |
@@ -1268,7 +1271,6 @@ static int saa7115_attach(struct i2c_adapter *adapter, int address, int kind) | |||
1268 | client->addr = address; | 1271 | client->addr = address; |
1269 | client->adapter = adapter; | 1272 | client->adapter = adapter; |
1270 | client->driver = &i2c_driver_saa7115; | 1273 | client->driver = &i2c_driver_saa7115; |
1271 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
1272 | snprintf(client->name, sizeof(client->name) - 1, "saa7115"); | 1274 | snprintf(client->name, sizeof(client->name) - 1, "saa7115"); |
1273 | 1275 | ||
1274 | saa7115_dbg("detecting saa7115 client on address 0x%x\n", address << 1); | 1276 | saa7115_dbg("detecting saa7115 client on address 0x%x\n", address << 1); |
@@ -1352,13 +1354,13 @@ static int saa7115_detach(struct i2c_client *client) | |||
1352 | 1354 | ||
1353 | /* i2c implementation */ | 1355 | /* i2c implementation */ |
1354 | static struct i2c_driver i2c_driver_saa7115 = { | 1356 | static struct i2c_driver i2c_driver_saa7115 = { |
1355 | .name = "saa7115", | 1357 | .driver = { |
1358 | .name = "saa7115", | ||
1359 | }, | ||
1356 | .id = I2C_DRIVERID_SAA711X, | 1360 | .id = I2C_DRIVERID_SAA711X, |
1357 | .flags = I2C_DF_NOTIFY, | ||
1358 | .attach_adapter = saa7115_probe, | 1361 | .attach_adapter = saa7115_probe, |
1359 | .detach_client = saa7115_detach, | 1362 | .detach_client = saa7115_detach, |
1360 | .command = saa7115_command, | 1363 | .command = saa7115_command, |
1361 | .owner = THIS_MODULE, | ||
1362 | }; | 1364 | }; |
1363 | 1365 | ||
1364 | 1366 | ||
diff --git a/drivers/media/video/saa711x.c b/drivers/media/video/saa711x.c index 25b30f352d8..8008537391b 100644 --- a/drivers/media/video/saa711x.c +++ b/drivers/media/video/saa711x.c | |||
@@ -59,7 +59,7 @@ MODULE_PARM_DESC(debug, " Set the default Debug level. Default: 0 (Off) - (0-1) | |||
59 | #define dprintk(num, format, args...) \ | 59 | #define dprintk(num, format, args...) \ |
60 | do { \ | 60 | do { \ |
61 | if (debug >= num) \ | 61 | if (debug >= num) \ |
62 | printk(format , ##args); \ | 62 | printk(format, ##args); \ |
63 | } while (0) | 63 | } while (0) |
64 | 64 | ||
65 | /* ----------------------------------------------------------------------- */ | 65 | /* ----------------------------------------------------------------------- */ |
@@ -323,7 +323,7 @@ saa711x_command (struct i2c_client *client, | |||
323 | 323 | ||
324 | case VIDEO_MODE_SECAM: | 324 | case VIDEO_MODE_SECAM: |
325 | saa711x_write(client, 0x08, | 325 | saa711x_write(client, 0x08, |
326 | (decoder->reg[0x0e] & 0x3f) | 0x00); | 326 | (decoder->reg[0x08] & 0x3f) | 0x00); |
327 | saa711x_write(client, 0x0e, | 327 | saa711x_write(client, 0x0e, |
328 | (decoder->reg[0x0e] & 0x8f) | 0x50); | 328 | (decoder->reg[0x0e] & 0x8f) | 0x50); |
329 | break; | 329 | break; |
@@ -494,7 +494,6 @@ saa711x_detect_client (struct i2c_adapter *adapter, | |||
494 | client->addr = address; | 494 | client->addr = address; |
495 | client->adapter = adapter; | 495 | client->adapter = adapter; |
496 | client->driver = &i2c_driver_saa711x; | 496 | client->driver = &i2c_driver_saa711x; |
497 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
498 | strlcpy(I2C_NAME(client), "saa711x", sizeof(I2C_NAME(client))); | 497 | strlcpy(I2C_NAME(client), "saa711x", sizeof(I2C_NAME(client))); |
499 | decoder = kmalloc(sizeof(struct saa711x), GFP_KERNEL); | 498 | decoder = kmalloc(sizeof(struct saa711x), GFP_KERNEL); |
500 | if (decoder == NULL) { | 499 | if (decoder == NULL) { |
@@ -565,11 +564,11 @@ saa711x_detach_client (struct i2c_client *client) | |||
565 | /* ----------------------------------------------------------------------- */ | 564 | /* ----------------------------------------------------------------------- */ |
566 | 565 | ||
567 | static struct i2c_driver i2c_driver_saa711x = { | 566 | static struct i2c_driver i2c_driver_saa711x = { |
568 | .owner = THIS_MODULE, | 567 | .driver = { |
569 | .name = "saa711x", | 568 | .name = "saa711x", |
569 | }, | ||
570 | 570 | ||
571 | .id = I2C_DRIVERID_SAA711X, | 571 | .id = I2C_DRIVERID_SAA711X, |
572 | .flags = I2C_DF_NOTIFY, | ||
573 | 572 | ||
574 | .attach_adapter = saa711x_attach_adapter, | 573 | .attach_adapter = saa711x_attach_adapter, |
575 | .detach_client = saa711x_detach_client, | 574 | .detach_client = saa711x_detach_client, |
diff --git a/drivers/media/video/saa7127.c b/drivers/media/video/saa7127.c index 843431f10e3..bca6ed0e275 100644 --- a/drivers/media/video/saa7127.c +++ b/drivers/media/video/saa7127.c | |||
@@ -69,7 +69,8 @@ MODULE_PARM_DESC(test_image, "test_image (0-1)"); | |||
69 | #define saa7127_dbg(fmt, arg...) \ | 69 | #define saa7127_dbg(fmt, arg...) \ |
70 | do { \ | 70 | do { \ |
71 | if (debug >= 1) \ | 71 | if (debug >= 1) \ |
72 | printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \ | 72 | printk(KERN_INFO "%s debug %d-%04x: " fmt, \ |
73 | client->driver->driver.name, \ | ||
73 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ | 74 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ |
74 | } while (0) | 75 | } while (0) |
75 | 76 | ||
@@ -77,15 +78,16 @@ MODULE_PARM_DESC(test_image, "test_image (0-1)"); | |||
77 | #define saa7127_dbg_highvol(fmt, arg...) \ | 78 | #define saa7127_dbg_highvol(fmt, arg...) \ |
78 | do { \ | 79 | do { \ |
79 | if (debug == 2) \ | 80 | if (debug == 2) \ |
80 | printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \ | 81 | printk(KERN_INFO "%s debug %d-%04x: " fmt, \ |
82 | client->driver->driver.name, \ | ||
81 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ | 83 | i2c_adapter_id(client->adapter), client->addr , ## arg); \ |
82 | } while (0) | 84 | } while (0) |
83 | 85 | ||
84 | #define saa7127_err(fmt, arg...) do { \ | 86 | #define saa7127_err(fmt, arg...) do { \ |
85 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \ | 87 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \ |
86 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 88 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
87 | #define saa7127_info(fmt, arg...) do { \ | 89 | #define saa7127_info(fmt, arg...) do { \ |
88 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \ | 90 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \ |
89 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 91 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
90 | 92 | ||
91 | static unsigned short normal_i2c[] = { 0x88 >> 1, I2C_CLIENT_END }; | 93 | static unsigned short normal_i2c[] = { 0x88 >> 1, I2C_CLIENT_END }; |
@@ -223,7 +225,7 @@ static const struct i2c_reg_value saa7127_init_config_60hz[] = { | |||
223 | }; | 225 | }; |
224 | 226 | ||
225 | #define SAA7127_50HZ_DAC_CONTROL 0x02 | 227 | #define SAA7127_50HZ_DAC_CONTROL 0x02 |
226 | struct i2c_reg_value saa7127_init_config_50hz[] = { | 228 | static struct i2c_reg_value saa7127_init_config_50hz[] = { |
227 | { SAA7127_REG_BURST_START, 0x21 }, | 229 | { SAA7127_REG_BURST_START, 0x21 }, |
228 | /* BURST_END is also used as a chip ID in saa7127_detect_client */ | 230 | /* BURST_END is also used as a chip ID in saa7127_detect_client */ |
229 | { SAA7127_REG_BURST_END, 0x1d }, | 231 | { SAA7127_REG_BURST_END, 0x1d }, |
@@ -389,7 +391,7 @@ static int saa7127_set_vps(struct i2c_client *client, struct v4l2_sliced_vbi_dat | |||
389 | static int saa7127_set_cc(struct i2c_client *client, struct v4l2_sliced_vbi_data *data) | 391 | static int saa7127_set_cc(struct i2c_client *client, struct v4l2_sliced_vbi_data *data) |
390 | { | 392 | { |
391 | struct saa7127_state *state = i2c_get_clientdata(client); | 393 | struct saa7127_state *state = i2c_get_clientdata(client); |
392 | u16 cc = data->data[0] << 8 | data->data[1]; | 394 | u16 cc = data->data[1] << 8 | data->data[0]; |
393 | int enable = (data->line != 0); | 395 | int enable = (data->line != 0); |
394 | 396 | ||
395 | if (enable && (data->field != 0 || data->line != 21)) | 397 | if (enable && (data->field != 0 || data->line != 21)) |
@@ -397,7 +399,7 @@ static int saa7127_set_cc(struct i2c_client *client, struct v4l2_sliced_vbi_data | |||
397 | if (state->cc_enable != enable) { | 399 | if (state->cc_enable != enable) { |
398 | saa7127_dbg("Turn CC %s\n", enable ? "on" : "off"); | 400 | saa7127_dbg("Turn CC %s\n", enable ? "on" : "off"); |
399 | saa7127_write(client, SAA7127_REG_CLOSED_CAPTION, | 401 | saa7127_write(client, SAA7127_REG_CLOSED_CAPTION, |
400 | (enable << 6) | 0x11); | 402 | (state->xds_enable << 7) | (enable << 6) | 0x11); |
401 | state->cc_enable = enable; | 403 | state->cc_enable = enable; |
402 | } | 404 | } |
403 | if (!enable) | 405 | if (!enable) |
@@ -423,7 +425,7 @@ static int saa7127_set_xds(struct i2c_client *client, struct v4l2_sliced_vbi_dat | |||
423 | if (state->xds_enable != enable) { | 425 | if (state->xds_enable != enable) { |
424 | saa7127_dbg("Turn XDS %s\n", enable ? "on" : "off"); | 426 | saa7127_dbg("Turn XDS %s\n", enable ? "on" : "off"); |
425 | saa7127_write(client, SAA7127_REG_CLOSED_CAPTION, | 427 | saa7127_write(client, SAA7127_REG_CLOSED_CAPTION, |
426 | (enable << 7) | 0x11); | 428 | (enable << 7) | (state->cc_enable << 6) | 0x11); |
427 | state->xds_enable = enable; | 429 | state->xds_enable = enable; |
428 | } | 430 | } |
429 | if (!enable) | 431 | if (!enable) |
@@ -696,7 +698,7 @@ static int saa7127_command(struct i2c_client *client, | |||
696 | 698 | ||
697 | /* ----------------------------------------------------------------------- */ | 699 | /* ----------------------------------------------------------------------- */ |
698 | 700 | ||
699 | struct i2c_driver i2c_driver_saa7127; | 701 | static struct i2c_driver i2c_driver_saa7127; |
700 | 702 | ||
701 | /* ----------------------------------------------------------------------- */ | 703 | /* ----------------------------------------------------------------------- */ |
702 | 704 | ||
@@ -719,7 +721,6 @@ static int saa7127_attach(struct i2c_adapter *adapter, int address, int kind) | |||
719 | client->addr = address; | 721 | client->addr = address; |
720 | client->adapter = adapter; | 722 | client->adapter = adapter; |
721 | client->driver = &i2c_driver_saa7127; | 723 | client->driver = &i2c_driver_saa7127; |
722 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
723 | snprintf(client->name, sizeof(client->name) - 1, "saa7127"); | 724 | snprintf(client->name, sizeof(client->name) - 1, "saa7127"); |
724 | 725 | ||
725 | saa7127_dbg("detecting saa7127 client on address 0x%x\n", address << 1); | 726 | saa7127_dbg("detecting saa7127 client on address 0x%x\n", address << 1); |
@@ -818,14 +819,14 @@ static int saa7127_detach(struct i2c_client *client) | |||
818 | 819 | ||
819 | /* ----------------------------------------------------------------------- */ | 820 | /* ----------------------------------------------------------------------- */ |
820 | 821 | ||
821 | struct i2c_driver i2c_driver_saa7127 = { | 822 | static struct i2c_driver i2c_driver_saa7127 = { |
822 | .name = "saa7127", | 823 | .driver = { |
824 | .name = "saa7127", | ||
825 | }, | ||
823 | .id = I2C_DRIVERID_SAA7127, | 826 | .id = I2C_DRIVERID_SAA7127, |
824 | .flags = I2C_DF_NOTIFY, | ||
825 | .attach_adapter = saa7127_probe, | 827 | .attach_adapter = saa7127_probe, |
826 | .detach_client = saa7127_detach, | 828 | .detach_client = saa7127_detach, |
827 | .command = saa7127_command, | 829 | .command = saa7127_command, |
828 | .owner = THIS_MODULE, | ||
829 | }; | 830 | }; |
830 | 831 | ||
831 | 832 | ||
diff --git a/drivers/media/video/saa7134/Kconfig b/drivers/media/video/saa7134/Kconfig index 7bdeabe638c..8a5c3e71b37 100644 --- a/drivers/media/video/saa7134/Kconfig +++ b/drivers/media/video/saa7134/Kconfig | |||
@@ -1,11 +1,10 @@ | |||
1 | config VIDEO_SAA7134 | 1 | config VIDEO_SAA7134 |
2 | tristate "Philips SAA7134 support" | 2 | tristate "Philips SAA7134 support" |
3 | depends on VIDEO_DEV && PCI && I2C && SOUND && SND | 3 | depends on VIDEO_DEV && PCI && I2C |
4 | select VIDEO_BUF | 4 | select VIDEO_BUF |
5 | select VIDEO_IR | 5 | select VIDEO_IR |
6 | select VIDEO_TUNER | 6 | select VIDEO_TUNER |
7 | select CRC32 | 7 | select CRC32 |
8 | select SND_PCM_OSS | ||
9 | ---help--- | 8 | ---help--- |
10 | This is a video4linux driver for Philips SAA713x based | 9 | This is a video4linux driver for Philips SAA713x based |
11 | TV cards. | 10 | TV cards. |
@@ -13,6 +12,29 @@ config VIDEO_SAA7134 | |||
13 | To compile this driver as a module, choose M here: the | 12 | To compile this driver as a module, choose M here: the |
14 | module will be called saa7134. | 13 | module will be called saa7134. |
15 | 14 | ||
15 | config VIDEO_SAA7134_ALSA | ||
16 | tristate "Philips SAA7134 DMA audio support" | ||
17 | depends on VIDEO_SAA7134 && SND | ||
18 | select SND_PCM_OSS | ||
19 | ---help--- | ||
20 | This is a video4linux driver for direct (DMA) audio in | ||
21 | Philips SAA713x based TV cards using ALSA | ||
22 | |||
23 | To compile this driver as a module, choose M here: the | ||
24 | module will be called saa7134-alsa. | ||
25 | |||
26 | config VIDEO_SAA7134_OSS | ||
27 | tristate "Philips SAA7134 DMA audio support (OSS, DEPRECATED)" | ||
28 | depends on VIDEO_SAA7134 && SOUND_PRIME && !VIDEO_SAA7134_ALSA | ||
29 | ---help--- | ||
30 | This is a video4linux driver for direct (DMA) audio in | ||
31 | Philips SAA713x based TV cards using OSS | ||
32 | |||
33 | This is deprecated in favor of the ALSA module | ||
34 | |||
35 | To compile this driver as a module, choose M here: the | ||
36 | module will be called saa7134-oss. | ||
37 | |||
16 | config VIDEO_SAA7134_DVB | 38 | config VIDEO_SAA7134_DVB |
17 | tristate "DVB/ATSC Support for saa7134 based TV cards" | 39 | tristate "DVB/ATSC Support for saa7134 based TV cards" |
18 | depends on VIDEO_SAA7134 && DVB_CORE | 40 | depends on VIDEO_SAA7134 && DVB_CORE |
@@ -42,8 +64,8 @@ config VIDEO_SAA7134_DVB_ALL_FRONTENDS | |||
42 | If you are unsure, choose Y. | 64 | If you are unsure, choose Y. |
43 | 65 | ||
44 | config VIDEO_SAA7134_DVB_MT352 | 66 | config VIDEO_SAA7134_DVB_MT352 |
45 | tristate "Zarlink MT352 DVB-T Support" | 67 | bool "Zarlink MT352 DVB-T Support" |
46 | default m | 68 | default y |
47 | depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS | 69 | depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS |
48 | select DVB_MT352 | 70 | select DVB_MT352 |
49 | ---help--- | 71 | ---help--- |
@@ -51,8 +73,8 @@ config VIDEO_SAA7134_DVB_MT352 | |||
51 | Philips saa7134 chip and the MT352 demodulator. | 73 | Philips saa7134 chip and the MT352 demodulator. |
52 | 74 | ||
53 | config VIDEO_SAA7134_DVB_TDA1004X | 75 | config VIDEO_SAA7134_DVB_TDA1004X |
54 | tristate "Phillips TDA10045H/TDA10046H DVB-T Support" | 76 | bool "Phillips TDA10045H/TDA10046H DVB-T Support" |
55 | default m | 77 | default y |
56 | depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS | 78 | depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS |
57 | select DVB_TDA1004X | 79 | select DVB_TDA1004X |
58 | ---help--- | 80 | ---help--- |
@@ -60,8 +82,8 @@ config VIDEO_SAA7134_DVB_TDA1004X | |||
60 | Philips saa7134 chip and the TDA10045H/TDA10046H demodulator. | 82 | Philips saa7134 chip and the TDA10045H/TDA10046H demodulator. |
61 | 83 | ||
62 | config VIDEO_SAA7134_DVB_NXT200X | 84 | config VIDEO_SAA7134_DVB_NXT200X |
63 | tristate "NXT2002/NXT2004 ATSC Support" | 85 | bool "NXT2002/NXT2004 ATSC Support" |
64 | default m | 86 | default y |
65 | depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS | 87 | depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS |
66 | select DVB_NXT200X | 88 | select DVB_NXT200X |
67 | ---help--- | 89 | ---help--- |
diff --git a/drivers/media/video/saa7134/Makefile b/drivers/media/video/saa7134/Makefile index 4226b61cc61..1ba998424bb 100644 --- a/drivers/media/video/saa7134/Makefile +++ b/drivers/media/video/saa7134/Makefile | |||
@@ -4,22 +4,20 @@ saa7134-objs := saa7134-cards.o saa7134-core.o saa7134-i2c.o \ | |||
4 | saa7134-video.o saa7134-input.o | 4 | saa7134-video.o saa7134-input.o |
5 | 5 | ||
6 | obj-$(CONFIG_VIDEO_SAA7134) += saa7134.o saa7134-empress.o \ | 6 | obj-$(CONFIG_VIDEO_SAA7134) += saa7134.o saa7134-empress.o \ |
7 | saa6752hs.o saa7134-alsa.o \ | 7 | saa6752hs.o |
8 | saa7134-oss.o | 8 | |
9 | obj-$(CONFIG_VIDEO_SAA7134_ALSA) += saa7134-alsa.o | ||
10 | obj-$(CONFIG_VIDEO_SAA7134_OSS) += saa7134-oss.o | ||
11 | |||
9 | obj-$(CONFIG_VIDEO_SAA7134_DVB) += saa7134-dvb.o | 12 | obj-$(CONFIG_VIDEO_SAA7134_DVB) += saa7134-dvb.o |
10 | 13 | ||
11 | EXTRA_CFLAGS += -I$(src)/.. | 14 | EXTRA_CFLAGS += -I$(src)/.. |
12 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core | 15 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core |
13 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/frontends | 16 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/frontends |
14 | ifneq ($(CONFIG_VIDEO_BUF_DVB),n) | 17 | |
15 | EXTRA_CFLAGS += -DHAVE_VIDEO_BUF_DVB=1 | 18 | extra-cflags-$(CONFIG_VIDEO_BUF_DVB) += -DHAVE_VIDEO_BUF_DVB=1 |
16 | endif | 19 | extra-cflags-$(CONFIG_DVB_MT352) += -DHAVE_MT352=1 |
17 | ifneq ($(CONFIG_DVB_MT352),n) | 20 | extra-cflags-$(CONFIG_DVB_TDA1004X) += -DHAVE_TDA1004X=1 |
18 | EXTRA_CFLAGS += -DHAVE_MT352=1 | 21 | extra-cflags-$(CONFIG_DVB_NXT200X) += -DHAVE_NXT200X=1 |
19 | endif | 22 | |
20 | ifneq ($(CONFIG_DVB_TDA1004X),n) | 23 | EXTRA_CFLAGS += $(extra-cflags-y) $(extra-cflags-m) |
21 | EXTRA_CFLAGS += -DHAVE_TDA1004X=1 | ||
22 | endif | ||
23 | ifneq ($(CONFIG_DVB_NXT200X),n) | ||
24 | EXTRA_CFLAGS += -DHAVE_NXT200X=1 | ||
25 | endif | ||
diff --git a/drivers/media/video/saa7134/saa6752hs.c b/drivers/media/video/saa7134/saa6752hs.c index cdd1ed9c806..4615a982ac6 100644 --- a/drivers/media/video/saa7134/saa6752hs.c +++ b/drivers/media/video/saa7134/saa6752hs.c | |||
@@ -523,7 +523,8 @@ static int saa6752hs_attach(struct i2c_adapter *adap, int addr, int kind) | |||
523 | h->standard = 0; | 523 | h->standard = 0; |
524 | 524 | ||
525 | i2c_set_clientdata(&h->client, h); | 525 | i2c_set_clientdata(&h->client, h); |
526 | i2c_attach_client(&h->client); | 526 | i2c_attach_client(&h->client); |
527 | |||
527 | return 0; | 528 | return 0; |
528 | } | 529 | } |
529 | 530 | ||
@@ -596,20 +597,19 @@ saa6752hs_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
596 | /* ----------------------------------------------------------------------- */ | 597 | /* ----------------------------------------------------------------------- */ |
597 | 598 | ||
598 | static struct i2c_driver driver = { | 599 | static struct i2c_driver driver = { |
599 | .owner = THIS_MODULE, | 600 | .driver = { |
600 | .name = "i2c saa6752hs MPEG encoder", | 601 | .name = "i2c saa6752hs MPEG encoder", |
601 | .id = I2C_DRIVERID_SAA6752HS, | 602 | }, |
602 | .flags = I2C_DF_NOTIFY, | 603 | .id = I2C_DRIVERID_SAA6752HS, |
603 | .attach_adapter = saa6752hs_probe, | 604 | .attach_adapter = saa6752hs_probe, |
604 | .detach_client = saa6752hs_detach, | 605 | .detach_client = saa6752hs_detach, |
605 | .command = saa6752hs_command, | 606 | .command = saa6752hs_command, |
606 | }; | 607 | }; |
607 | 608 | ||
608 | static struct i2c_client client_template = | 609 | static struct i2c_client client_template = |
609 | { | 610 | { |
610 | .name = "saa6752hs", | 611 | .name = "saa6752hs", |
611 | .flags = I2C_CLIENT_ALLOW_USE, | 612 | .driver = &driver, |
612 | .driver = &driver, | ||
613 | }; | 613 | }; |
614 | 614 | ||
615 | static int __init saa6752hs_init_module(void) | 615 | static int __init saa6752hs_init_module(void) |
diff --git a/drivers/media/video/saa7134/saa7134-alsa.c b/drivers/media/video/saa7134/saa7134-alsa.c index 5707c666660..ade05f75fdb 100644 --- a/drivers/media/video/saa7134/saa7134-alsa.c +++ b/drivers/media/video/saa7134/saa7134-alsa.c | |||
@@ -51,6 +51,7 @@ MODULE_PARM_DESC(debug,"enable debug messages [alsa]"); | |||
51 | #define MIXER_ADDR_LINE2 2 | 51 | #define MIXER_ADDR_LINE2 2 |
52 | #define MIXER_ADDR_LAST 2 | 52 | #define MIXER_ADDR_LAST 2 |
53 | 53 | ||
54 | |||
54 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ | 55 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ |
55 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ | 56 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ |
56 | static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0}; | 57 | static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0}; |
@@ -58,14 +59,15 @@ static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0}; | |||
58 | module_param_array(index, int, NULL, 0444); | 59 | module_param_array(index, int, NULL, 0444); |
59 | MODULE_PARM_DESC(index, "Index value for SAA7134 capture interface(s)."); | 60 | MODULE_PARM_DESC(index, "Index value for SAA7134 capture interface(s)."); |
60 | 61 | ||
61 | int position; | ||
62 | |||
63 | #define dprintk(fmt, arg...) if (debug) \ | 62 | #define dprintk(fmt, arg...) if (debug) \ |
64 | printk(KERN_DEBUG "%s/alsa: " fmt, dev->name , ## arg) | 63 | printk(KERN_DEBUG "%s/alsa: " fmt, dev->name , ##arg) |
64 | |||
65 | |||
65 | 66 | ||
66 | /* | 67 | /* |
67 | * Main chip structure | 68 | * Main chip structure |
68 | */ | 69 | */ |
70 | |||
69 | typedef struct snd_card_saa7134 { | 71 | typedef struct snd_card_saa7134 { |
70 | snd_card_t *card; | 72 | snd_card_t *card; |
71 | spinlock_t mixer_lock; | 73 | spinlock_t mixer_lock; |
@@ -140,7 +142,8 @@ static void saa7134_dma_start(struct saa7134_dev *dev) | |||
140 | * | 142 | * |
141 | */ | 143 | */ |
142 | 144 | ||
143 | void saa7134_irq_alsa_done(struct saa7134_dev *dev, unsigned long status) | 145 | static void saa7134_irq_alsa_done(struct saa7134_dev *dev, |
146 | unsigned long status) | ||
144 | { | 147 | { |
145 | int next_blk, reg = 0; | 148 | int next_blk, reg = 0; |
146 | 149 | ||
@@ -209,8 +212,8 @@ void saa7134_irq_alsa_done(struct saa7134_dev *dev, unsigned long status) | |||
209 | 212 | ||
210 | static irqreturn_t saa7134_alsa_irq(int irq, void *dev_id, struct pt_regs *regs) | 213 | static irqreturn_t saa7134_alsa_irq(int irq, void *dev_id, struct pt_regs *regs) |
211 | { | 214 | { |
212 | struct saa7134_dmasound *dmasound = dev_id; | 215 | struct saa7134_dmasound *dmasound = dev_id; |
213 | struct saa7134_dev *dev = dmasound->priv_data; | 216 | struct saa7134_dev *dev = dmasound->priv_data; |
214 | 217 | ||
215 | unsigned long report, status; | 218 | unsigned long report, status; |
216 | int loop, handled = 0; | 219 | int loop, handled = 0; |
@@ -881,7 +884,7 @@ static void snd_saa7134_free(snd_card_t * card) | |||
881 | * | 884 | * |
882 | */ | 885 | */ |
883 | 886 | ||
884 | int alsa_card_saa7134_create(struct saa7134_dev *dev, int devnum) | 887 | static int alsa_card_saa7134_create(struct saa7134_dev *dev, int devnum) |
885 | { | 888 | { |
886 | 889 | ||
887 | snd_card_t *card; | 890 | snd_card_t *card; |
@@ -945,6 +948,8 @@ int alsa_card_saa7134_create(struct saa7134_dev *dev, int devnum) | |||
945 | sprintf(card->longname, "%s at 0x%lx irq %d", | 948 | sprintf(card->longname, "%s at 0x%lx irq %d", |
946 | chip->dev->name, chip->iobase, chip->irq); | 949 | chip->dev->name, chip->iobase, chip->irq); |
947 | 950 | ||
951 | printk(KERN_INFO "%s/alsa: %s registered as card %d\n",dev->name,card->longname,index[devnum]); | ||
952 | |||
948 | if ((err = snd_card_register(card)) == 0) { | 953 | if ((err = snd_card_register(card)) == 0) { |
949 | snd_saa7134_cards[devnum] = card; | 954 | snd_saa7134_cards[devnum] = card; |
950 | return 0; | 955 | return 0; |
@@ -955,6 +960,22 @@ __nodev: | |||
955 | return err; | 960 | return err; |
956 | } | 961 | } |
957 | 962 | ||
963 | |||
964 | static int alsa_device_init(struct saa7134_dev *dev) | ||
965 | { | ||
966 | dev->dmasound.priv_data = dev; | ||
967 | alsa_card_saa7134_create(dev,dev->nr); | ||
968 | return 1; | ||
969 | } | ||
970 | |||
971 | static int alsa_device_exit(struct saa7134_dev *dev) | ||
972 | { | ||
973 | |||
974 | snd_card_free(snd_saa7134_cards[dev->nr]); | ||
975 | snd_saa7134_cards[dev->nr] = NULL; | ||
976 | return 1; | ||
977 | } | ||
978 | |||
958 | /* | 979 | /* |
959 | * Module initializer | 980 | * Module initializer |
960 | * | 981 | * |
@@ -968,16 +989,20 @@ static int saa7134_alsa_init(void) | |||
968 | struct saa7134_dev *dev = NULL; | 989 | struct saa7134_dev *dev = NULL; |
969 | struct list_head *list; | 990 | struct list_head *list; |
970 | 991 | ||
971 | position = 0; | 992 | if (!dmasound_init && !dmasound_exit) { |
993 | dmasound_init = alsa_device_init; | ||
994 | dmasound_exit = alsa_device_exit; | ||
995 | } else { | ||
996 | printk(KERN_WARNING "saa7134 ALSA: can't load, DMA sound handler already assigned (probably to OSS)\n"); | ||
997 | return -EBUSY; | ||
998 | } | ||
972 | 999 | ||
973 | printk(KERN_INFO "saa7134 ALSA driver for DMA sound loaded\n"); | 1000 | printk(KERN_INFO "saa7134 ALSA driver for DMA sound loaded\n"); |
974 | 1001 | ||
975 | list_for_each(list,&saa7134_devlist) { | 1002 | list_for_each(list,&saa7134_devlist) { |
976 | dev = list_entry(list, struct saa7134_dev, devlist); | 1003 | dev = list_entry(list, struct saa7134_dev, devlist); |
977 | if (dev->dmasound.priv_data == NULL) { | 1004 | if (dev->dmasound.priv_data == NULL) { |
978 | dev->dmasound.priv_data = dev; | 1005 | alsa_device_init(dev); |
979 | alsa_card_saa7134_create(dev,position); | ||
980 | position++; | ||
981 | } else { | 1006 | } else { |
982 | printk(KERN_ERR "saa7134 ALSA: DMA sound is being handled by OSS. ignoring %s\n",dev->name); | 1007 | printk(KERN_ERR "saa7134 ALSA: DMA sound is being handled by OSS. ignoring %s\n",dev->name); |
983 | return -EBUSY; | 1008 | return -EBUSY; |
@@ -988,13 +1013,14 @@ static int saa7134_alsa_init(void) | |||
988 | printk(KERN_INFO "saa7134 ALSA: no saa7134 cards found\n"); | 1013 | printk(KERN_INFO "saa7134 ALSA: no saa7134 cards found\n"); |
989 | 1014 | ||
990 | return 0; | 1015 | return 0; |
1016 | |||
991 | } | 1017 | } |
992 | 1018 | ||
993 | /* | 1019 | /* |
994 | * Module destructor | 1020 | * Module destructor |
995 | */ | 1021 | */ |
996 | 1022 | ||
997 | void saa7134_alsa_exit(void) | 1023 | static void saa7134_alsa_exit(void) |
998 | { | 1024 | { |
999 | int idx; | 1025 | int idx; |
1000 | 1026 | ||
@@ -1002,12 +1028,18 @@ void saa7134_alsa_exit(void) | |||
1002 | snd_card_free(snd_saa7134_cards[idx]); | 1028 | snd_card_free(snd_saa7134_cards[idx]); |
1003 | } | 1029 | } |
1004 | 1030 | ||
1031 | dmasound_init = NULL; | ||
1032 | dmasound_exit = NULL; | ||
1005 | printk(KERN_INFO "saa7134 ALSA driver for DMA sound unloaded\n"); | 1033 | printk(KERN_INFO "saa7134 ALSA driver for DMA sound unloaded\n"); |
1006 | 1034 | ||
1007 | return; | 1035 | return; |
1008 | } | 1036 | } |
1009 | 1037 | ||
1010 | module_init(saa7134_alsa_init); | 1038 | /* We initialize this late, to make sure the sound system is up and running */ |
1039 | late_initcall(saa7134_alsa_init); | ||
1011 | module_exit(saa7134_alsa_exit); | 1040 | module_exit(saa7134_alsa_exit); |
1012 | MODULE_LICENSE("GPL"); | 1041 | MODULE_LICENSE("GPL"); |
1013 | MODULE_AUTHOR("Ricardo Cerqueira"); | 1042 | MODULE_AUTHOR("Ricardo Cerqueira"); |
1043 | |||
1044 | |||
1045 | |||
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 75abc20b0cc..672fb205959 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -976,7 +976,7 @@ struct saa7134_board saa7134_boards[] = { | |||
976 | .radio_type = UNSET, | 976 | .radio_type = UNSET, |
977 | .tuner_addr = ADDR_UNSET, | 977 | .tuner_addr = ADDR_UNSET, |
978 | .radio_addr = ADDR_UNSET, | 978 | .radio_addr = ADDR_UNSET, |
979 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER, | 979 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_ACTIVE, |
980 | .inputs = {{ | 980 | .inputs = {{ |
981 | .name = name_tv, | 981 | .name = name_tv, |
982 | .vmux = 3, | 982 | .vmux = 3, |
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index 4275d2ddb86..23d8747338e 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c | |||
@@ -71,6 +71,7 @@ static unsigned int radio_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; | |||
71 | static unsigned int tuner[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; | 71 | static unsigned int tuner[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; |
72 | static unsigned int card[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; | 72 | static unsigned int card[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; |
73 | 73 | ||
74 | |||
74 | module_param_array(video_nr, int, NULL, 0444); | 75 | module_param_array(video_nr, int, NULL, 0444); |
75 | module_param_array(vbi_nr, int, NULL, 0444); | 76 | module_param_array(vbi_nr, int, NULL, 0444); |
76 | module_param_array(radio_nr, int, NULL, 0444); | 77 | module_param_array(radio_nr, int, NULL, 0444); |
@@ -88,6 +89,9 @@ LIST_HEAD(saa7134_devlist); | |||
88 | static LIST_HEAD(mops_list); | 89 | static LIST_HEAD(mops_list); |
89 | static unsigned int saa7134_devcount; | 90 | static unsigned int saa7134_devcount; |
90 | 91 | ||
92 | int (*dmasound_init)(struct saa7134_dev *dev); | ||
93 | int (*dmasound_exit)(struct saa7134_dev *dev); | ||
94 | |||
91 | #define dprintk(fmt, arg...) if (core_debug) \ | 95 | #define dprintk(fmt, arg...) if (core_debug) \ |
92 | printk(KERN_DEBUG "%s/core: " fmt, dev->name , ## arg) | 96 | printk(KERN_DEBUG "%s/core: " fmt, dev->name , ## arg) |
93 | 97 | ||
@@ -184,8 +188,7 @@ void saa7134_track_gpio(struct saa7134_dev *dev, char *msg) | |||
184 | /* ----------------------------------------------------------- */ | 188 | /* ----------------------------------------------------------- */ |
185 | /* delayed request_module */ | 189 | /* delayed request_module */ |
186 | 190 | ||
187 | #ifdef CONFIG_MODULES | 191 | #if defined(CONFIG_MODULES) && defined(MODULE) |
188 | |||
189 | static int need_empress; | 192 | static int need_empress; |
190 | static int need_dvb; | 193 | static int need_dvb; |
191 | static int need_alsa; | 194 | static int need_alsa; |
@@ -234,9 +237,7 @@ static void request_module_depend(char *name, int *flag) | |||
234 | } | 237 | } |
235 | 238 | ||
236 | #else | 239 | #else |
237 | |||
238 | #define request_module_depend(name,flag) | 240 | #define request_module_depend(name,flag) |
239 | |||
240 | #endif /* CONFIG_MODULES */ | 241 | #endif /* CONFIG_MODULES */ |
241 | 242 | ||
242 | /* ------------------------------------------------------------------ */ | 243 | /* ------------------------------------------------------------------ */ |
@@ -1017,6 +1018,10 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
1017 | /* check for signal */ | 1018 | /* check for signal */ |
1018 | saa7134_irq_video_intl(dev); | 1019 | saa7134_irq_video_intl(dev); |
1019 | 1020 | ||
1021 | if (dmasound_init && !dev->dmasound.priv_data) { | ||
1022 | dmasound_init(dev); | ||
1023 | } | ||
1024 | |||
1020 | return 0; | 1025 | return 0; |
1021 | 1026 | ||
1022 | fail4: | 1027 | fail4: |
@@ -1040,6 +1045,11 @@ static void __devexit saa7134_finidev(struct pci_dev *pci_dev) | |||
1040 | struct list_head *item; | 1045 | struct list_head *item; |
1041 | struct saa7134_mpeg_ops *mops; | 1046 | struct saa7134_mpeg_ops *mops; |
1042 | 1047 | ||
1048 | /* Release DMA sound modules if present */ | ||
1049 | if (dmasound_exit && dev->dmasound.priv_data) { | ||
1050 | dmasound_exit(dev); | ||
1051 | } | ||
1052 | |||
1043 | /* debugging ... */ | 1053 | /* debugging ... */ |
1044 | if (irq_debug) { | 1054 | if (irq_debug) { |
1045 | u32 report = saa_readl(SAA7134_IRQ_REPORT); | 1055 | u32 report = saa_readl(SAA7134_IRQ_REPORT); |
@@ -1071,6 +1081,7 @@ static void __devexit saa7134_finidev(struct pci_dev *pci_dev) | |||
1071 | saa7134_i2c_unregister(dev); | 1081 | saa7134_i2c_unregister(dev); |
1072 | saa7134_unregister_video(dev); | 1082 | saa7134_unregister_video(dev); |
1073 | 1083 | ||
1084 | |||
1074 | /* the DMA sound modules should be unloaded before reaching | 1085 | /* the DMA sound modules should be unloaded before reaching |
1075 | this, but just in case they are still present... */ | 1086 | this, but just in case they are still present... */ |
1076 | if (dev->dmasound.priv_data != NULL) { | 1087 | if (dev->dmasound.priv_data != NULL) { |
@@ -1078,6 +1089,7 @@ static void __devexit saa7134_finidev(struct pci_dev *pci_dev) | |||
1078 | dev->dmasound.priv_data = NULL; | 1089 | dev->dmasound.priv_data = NULL; |
1079 | } | 1090 | } |
1080 | 1091 | ||
1092 | |||
1081 | /* release resources */ | 1093 | /* release resources */ |
1082 | free_irq(pci_dev->irq, dev); | 1094 | free_irq(pci_dev->irq, dev); |
1083 | iounmap(dev->lmmio); | 1095 | iounmap(dev->lmmio); |
@@ -1149,10 +1161,10 @@ static int saa7134_init(void) | |||
1149 | 1161 | ||
1150 | static void saa7134_fini(void) | 1162 | static void saa7134_fini(void) |
1151 | { | 1163 | { |
1152 | #ifdef CONFIG_MODULES | 1164 | #if defined(CONFIG_MODULES) && defined(MODULE) |
1153 | if (pending_registered) | 1165 | if (pending_registered) |
1154 | unregister_module_notifier(&pending_notifier); | 1166 | unregister_module_notifier(&pending_notifier); |
1155 | #endif | 1167 | #endif /* CONFIG_MODULES */ |
1156 | pci_unregister_driver(&saa7134_pci_driver); | 1168 | pci_unregister_driver(&saa7134_pci_driver); |
1157 | } | 1169 | } |
1158 | 1170 | ||
@@ -1168,6 +1180,8 @@ EXPORT_SYMBOL(saa7134_boards); | |||
1168 | 1180 | ||
1169 | /* ----------------- for the DMA sound modules --------------- */ | 1181 | /* ----------------- for the DMA sound modules --------------- */ |
1170 | 1182 | ||
1183 | EXPORT_SYMBOL(dmasound_init); | ||
1184 | EXPORT_SYMBOL(dmasound_exit); | ||
1171 | EXPORT_SYMBOL(saa7134_pgtable_free); | 1185 | EXPORT_SYMBOL(saa7134_pgtable_free); |
1172 | EXPORT_SYMBOL(saa7134_pgtable_build); | 1186 | EXPORT_SYMBOL(saa7134_pgtable_build); |
1173 | EXPORT_SYMBOL(saa7134_pgtable_alloc); | 1187 | EXPORT_SYMBOL(saa7134_pgtable_alloc); |
diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c index e9ec69efb4c..575f3e835f9 100644 --- a/drivers/media/video/saa7134/saa7134-empress.c +++ b/drivers/media/video/saa7134/saa7134-empress.c | |||
@@ -36,6 +36,7 @@ MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); | |||
36 | MODULE_LICENSE("GPL"); | 36 | MODULE_LICENSE("GPL"); |
37 | 37 | ||
38 | static unsigned int empress_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; | 38 | static unsigned int empress_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; |
39 | |||
39 | module_param_array(empress_nr, int, NULL, 0444); | 40 | module_param_array(empress_nr, int, NULL, 0444); |
40 | MODULE_PARM_DESC(empress_nr,"ts device number"); | 41 | MODULE_PARM_DESC(empress_nr,"ts device number"); |
41 | 42 | ||
diff --git a/drivers/media/video/saa7134/saa7134-i2c.c b/drivers/media/video/saa7134/saa7134-i2c.c index 7575043f087..1792d03d621 100644 --- a/drivers/media/video/saa7134/saa7134-i2c.c +++ b/drivers/media/video/saa7134/saa7134-i2c.c | |||
@@ -333,7 +333,7 @@ static int attach_inform(struct i2c_client *client) | |||
333 | struct tuner_setup tun_setup; | 333 | struct tuner_setup tun_setup; |
334 | 334 | ||
335 | d1printk( "%s i2c attach [addr=0x%x,client=%s]\n", | 335 | d1printk( "%s i2c attach [addr=0x%x,client=%s]\n", |
336 | client->driver->name, client->addr, client->name); | 336 | client->driver->driver.name, client->addr, client->name); |
337 | 337 | ||
338 | /* Am I an i2c remote control? */ | 338 | /* Am I an i2c remote control? */ |
339 | 339 | ||
@@ -343,7 +343,7 @@ static int attach_inform(struct i2c_client *client) | |||
343 | { | 343 | { |
344 | struct IR_i2c *ir = i2c_get_clientdata(client); | 344 | struct IR_i2c *ir = i2c_get_clientdata(client); |
345 | d1printk("%s i2c IR detected (%s).\n", | 345 | d1printk("%s i2c IR detected (%s).\n", |
346 | client->driver->name,ir->phys); | 346 | client->driver->driver.name, ir->phys); |
347 | saa7134_set_i2c_ir(dev,ir); | 347 | saa7134_set_i2c_ir(dev,ir); |
348 | break; | 348 | break; |
349 | } | 349 | } |
diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c index fd9ed11ab1e..8badd2a9cb2 100644 --- a/drivers/media/video/saa7134/saa7134-oss.c +++ b/drivers/media/video/saa7134/saa7134-oss.c | |||
@@ -782,36 +782,36 @@ struct file_operations saa7134_mixer_fops = { | |||
782 | 782 | ||
783 | static irqreturn_t saa7134_oss_irq(int irq, void *dev_id, struct pt_regs *regs) | 783 | static irqreturn_t saa7134_oss_irq(int irq, void *dev_id, struct pt_regs *regs) |
784 | { | 784 | { |
785 | struct saa7134_dmasound *dmasound = dev_id; | 785 | struct saa7134_dmasound *dmasound = dev_id; |
786 | struct saa7134_dev *dev = dmasound->priv_data; | 786 | struct saa7134_dev *dev = dmasound->priv_data; |
787 | unsigned long report, status; | 787 | unsigned long report, status; |
788 | int loop, handled = 0; | 788 | int loop, handled = 0; |
789 | 789 | ||
790 | for (loop = 0; loop < 10; loop++) { | 790 | for (loop = 0; loop < 10; loop++) { |
791 | report = saa_readl(SAA7134_IRQ_REPORT); | 791 | report = saa_readl(SAA7134_IRQ_REPORT); |
792 | status = saa_readl(SAA7134_IRQ_STATUS); | 792 | status = saa_readl(SAA7134_IRQ_STATUS); |
793 | 793 | ||
794 | if (report & SAA7134_IRQ_REPORT_DONE_RA3) { | 794 | if (report & SAA7134_IRQ_REPORT_DONE_RA3) { |
795 | handled = 1; | 795 | handled = 1; |
796 | saa_writel(SAA7134_IRQ_REPORT,report); | 796 | saa_writel(SAA7134_IRQ_REPORT,report); |
797 | saa7134_irq_oss_done(dev, status); | 797 | saa7134_irq_oss_done(dev, status); |
798 | } else { | 798 | } else { |
799 | goto out; | 799 | goto out; |
800 | } | 800 | } |
801 | } | 801 | } |
802 | 802 | ||
803 | if (loop == 10) { | 803 | if (loop == 10) { |
804 | dprintk("error! looping IRQ!"); | 804 | dprintk("error! looping IRQ!"); |
805 | } | 805 | } |
806 | out: | 806 | out: |
807 | return IRQ_RETVAL(handled); | 807 | return IRQ_RETVAL(handled); |
808 | } | 808 | } |
809 | 809 | ||
810 | int saa7134_oss_init1(struct saa7134_dev *dev) | 810 | int saa7134_oss_init1(struct saa7134_dev *dev) |
811 | { | 811 | { |
812 | 812 | ||
813 | if ((request_irq(dev->pci->irq, saa7134_oss_irq, | 813 | if ((request_irq(dev->pci->irq, saa7134_oss_irq, |
814 | SA_SHIRQ | SA_INTERRUPT, dev->name, | 814 | SA_SHIRQ | SA_INTERRUPT, dev->name, |
815 | (void*) &dev->dmasound)) < 0) | 815 | (void*) &dev->dmasound)) < 0) |
816 | return -1; | 816 | return -1; |
817 | 817 | ||
@@ -899,94 +899,120 @@ void saa7134_irq_oss_done(struct saa7134_dev *dev, unsigned long status) | |||
899 | spin_unlock(&dev->slock); | 899 | spin_unlock(&dev->slock); |
900 | } | 900 | } |
901 | 901 | ||
902 | int saa7134_dsp_create(struct saa7134_dev *dev) | 902 | static int saa7134_dsp_create(struct saa7134_dev *dev) |
903 | { | 903 | { |
904 | int err; | 904 | int err; |
905 | 905 | ||
906 | err = dev->dmasound.minor_dsp = | 906 | err = dev->dmasound.minor_dsp = |
907 | register_sound_dsp(&saa7134_dsp_fops, | 907 | register_sound_dsp(&saa7134_dsp_fops, |
908 | dsp_nr[dev->nr]); | 908 | dsp_nr[dev->nr]); |
909 | if (err < 0) { | 909 | if (err < 0) { |
910 | goto fail; | 910 | goto fail; |
911 | } | 911 | } |
912 | printk(KERN_INFO "%s: registered device dsp%d\n", | 912 | printk(KERN_INFO "%s: registered device dsp%d\n", |
913 | dev->name,dev->dmasound.minor_dsp >> 4); | 913 | dev->name,dev->dmasound.minor_dsp >> 4); |
914 | 914 | ||
915 | err = dev->dmasound.minor_mixer = | 915 | err = dev->dmasound.minor_mixer = |
916 | register_sound_mixer(&saa7134_mixer_fops, | 916 | register_sound_mixer(&saa7134_mixer_fops, |
917 | mixer_nr[dev->nr]); | 917 | mixer_nr[dev->nr]); |
918 | if (err < 0) | 918 | if (err < 0) |
919 | goto fail; | 919 | goto fail; |
920 | printk(KERN_INFO "%s: registered device mixer%d\n", | 920 | printk(KERN_INFO "%s: registered device mixer%d\n", |
921 | dev->name,dev->dmasound.minor_mixer >> 4); | 921 | dev->name,dev->dmasound.minor_mixer >> 4); |
922 | 922 | ||
923 | return 0; | 923 | return 0; |
924 | 924 | ||
925 | fail: | 925 | fail: |
926 | unregister_sound_dsp(dev->dmasound.minor_dsp); | 926 | unregister_sound_dsp(dev->dmasound.minor_dsp); |
927 | return 0; | 927 | return 0; |
928 | 928 | ||
929 | 929 | ||
930 | } | 930 | } |
931 | 931 | ||
932 | static int oss_device_init(struct saa7134_dev *dev) | ||
933 | { | ||
934 | dev->dmasound.priv_data = dev; | ||
935 | saa7134_oss_init1(dev); | ||
936 | saa7134_dsp_create(dev); | ||
937 | return 1; | ||
938 | } | ||
939 | |||
940 | static int oss_device_exit(struct saa7134_dev *dev) | ||
941 | { | ||
942 | |||
943 | unregister_sound_mixer(dev->dmasound.minor_mixer); | ||
944 | unregister_sound_dsp(dev->dmasound.minor_dsp); | ||
945 | |||
946 | saa7134_oss_fini(dev); | ||
947 | |||
948 | if (dev->pci->irq > 0) { | ||
949 | synchronize_irq(dev->pci->irq); | ||
950 | free_irq(dev->pci->irq,&dev->dmasound); | ||
951 | } | ||
952 | |||
953 | dev->dmasound.priv_data = NULL; | ||
954 | return 1; | ||
955 | } | ||
956 | |||
932 | static int saa7134_oss_init(void) | 957 | static int saa7134_oss_init(void) |
933 | { | 958 | { |
934 | struct saa7134_dev *dev = NULL; | 959 | struct saa7134_dev *dev = NULL; |
935 | struct list_head *list; | 960 | struct list_head *list; |
961 | |||
962 | if (!dmasound_init && !dmasound_exit) { | ||
963 | dmasound_init = oss_device_init; | ||
964 | dmasound_exit = oss_device_exit; | ||
965 | } else { | ||
966 | printk(KERN_WARNING "saa7134 OSS: can't load, DMA sound handler already assigned (probably to ALSA)\n"); | ||
967 | return -EBUSY; | ||
968 | } | ||
936 | 969 | ||
937 | printk(KERN_INFO "saa7134 OSS driver for DMA sound loaded\n"); | 970 | printk(KERN_INFO "saa7134 OSS driver for DMA sound loaded\n"); |
938 | 971 | ||
939 | list_for_each(list,&saa7134_devlist) { | 972 | |
940 | dev = list_entry(list, struct saa7134_dev, devlist); | 973 | list_for_each(list,&saa7134_devlist) { |
974 | dev = list_entry(list, struct saa7134_dev, devlist); | ||
941 | if (dev->dmasound.priv_data == NULL) { | 975 | if (dev->dmasound.priv_data == NULL) { |
942 | dev->dmasound.priv_data = dev; | 976 | oss_device_init(dev); |
943 | saa7134_oss_init1(dev); | ||
944 | saa7134_dsp_create(dev); | ||
945 | } else { | 977 | } else { |
946 | printk(KERN_ERR "saa7134 OSS: DMA sound is being handled by ALSA, ignoring %s\n",dev->name); | 978 | printk(KERN_ERR "saa7134 OSS: DMA sound is being handled by ALSA, ignoring %s\n",dev->name); |
947 | return -EBUSY; | 979 | return -EBUSY; |
948 | } | 980 | } |
949 | } | 981 | } |
950 | 982 | ||
951 | if (dev == NULL) | 983 | if (dev == NULL) |
952 | printk(KERN_INFO "saa7134 OSS: no saa7134 cards found\n"); | 984 | printk(KERN_INFO "saa7134 OSS: no saa7134 cards found\n"); |
953 | 985 | ||
954 | return 0; | 986 | return 0; |
955 | 987 | ||
956 | } | 988 | } |
957 | 989 | ||
958 | void saa7134_oss_exit(void) | 990 | static void saa7134_oss_exit(void) |
959 | { | 991 | { |
960 | struct saa7134_dev *dev = NULL; | 992 | struct saa7134_dev *dev = NULL; |
961 | struct list_head *list; | 993 | struct list_head *list; |
962 | 994 | ||
963 | list_for_each(list,&saa7134_devlist) { | 995 | list_for_each(list,&saa7134_devlist) { |
964 | dev = list_entry(list, struct saa7134_dev, devlist); | 996 | dev = list_entry(list, struct saa7134_dev, devlist); |
965 | 997 | ||
966 | /* Device isn't registered by OSS, probably ALSA's */ | 998 | /* Device isn't registered by OSS, probably ALSA's */ |
967 | if (!dev->dmasound.minor_dsp) | 999 | if (!dev->dmasound.minor_dsp) |
968 | continue; | 1000 | continue; |
969 | 1001 | ||
970 | unregister_sound_mixer(dev->dmasound.minor_mixer); | 1002 | oss_device_exit(dev); |
971 | unregister_sound_dsp(dev->dmasound.minor_dsp); | ||
972 | 1003 | ||
973 | saa7134_oss_fini(dev); | 1004 | } |
974 | |||
975 | if (dev->pci->irq > 0) { | ||
976 | synchronize_irq(dev->pci->irq); | ||
977 | free_irq(dev->pci->irq,&dev->dmasound); | ||
978 | } | ||
979 | |||
980 | dev->dmasound.priv_data = NULL; | ||
981 | 1005 | ||
982 | } | 1006 | dmasound_init = NULL; |
1007 | dmasound_exit = NULL; | ||
983 | 1008 | ||
984 | printk(KERN_INFO "saa7134 OSS driver for DMA sound unloaded\n"); | 1009 | printk(KERN_INFO "saa7134 OSS driver for DMA sound unloaded\n"); |
985 | 1010 | ||
986 | return; | 1011 | return; |
987 | } | 1012 | } |
988 | 1013 | ||
989 | module_init(saa7134_oss_init); | 1014 | /* We initialize this late, to make sure the sound system is up and running */ |
1015 | late_initcall(saa7134_oss_init); | ||
990 | module_exit(saa7134_oss_exit); | 1016 | module_exit(saa7134_oss_exit); |
991 | MODULE_LICENSE("GPL"); | 1017 | MODULE_LICENSE("GPL"); |
992 | MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); | 1018 | MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index 244e1973081..add49db1ad4 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -571,6 +571,10 @@ void saa7134_dma_free(struct saa7134_dev *dev,struct saa7134_buf *buf); | |||
571 | 571 | ||
572 | int saa7134_set_dmabits(struct saa7134_dev *dev); | 572 | int saa7134_set_dmabits(struct saa7134_dev *dev); |
573 | 573 | ||
574 | extern int (*dmasound_init)(struct saa7134_dev *dev); | ||
575 | extern int (*dmasound_exit)(struct saa7134_dev *dev); | ||
576 | |||
577 | |||
574 | /* ----------------------------------------------------------- */ | 578 | /* ----------------------------------------------------------- */ |
575 | /* saa7134-cards.c */ | 579 | /* saa7134-cards.c */ |
576 | 580 | ||
diff --git a/drivers/media/video/saa7185.c b/drivers/media/video/saa7185.c index 132aa7943c1..f72a9f79620 100644 --- a/drivers/media/video/saa7185.c +++ b/drivers/media/video/saa7185.c | |||
@@ -415,7 +415,6 @@ saa7185_detect_client (struct i2c_adapter *adapter, | |||
415 | client->addr = address; | 415 | client->addr = address; |
416 | client->adapter = adapter; | 416 | client->adapter = adapter; |
417 | client->driver = &i2c_driver_saa7185; | 417 | client->driver = &i2c_driver_saa7185; |
418 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
419 | strlcpy(I2C_NAME(client), "saa7185", sizeof(I2C_NAME(client))); | 418 | strlcpy(I2C_NAME(client), "saa7185", sizeof(I2C_NAME(client))); |
420 | 419 | ||
421 | encoder = kmalloc(sizeof(struct saa7185), GFP_KERNEL); | 420 | encoder = kmalloc(sizeof(struct saa7185), GFP_KERNEL); |
@@ -487,11 +486,11 @@ saa7185_detach_client (struct i2c_client *client) | |||
487 | /* ----------------------------------------------------------------------- */ | 486 | /* ----------------------------------------------------------------------- */ |
488 | 487 | ||
489 | static struct i2c_driver i2c_driver_saa7185 = { | 488 | static struct i2c_driver i2c_driver_saa7185 = { |
490 | .owner = THIS_MODULE, | 489 | .driver = { |
491 | .name = "saa7185", /* name */ | 490 | .name = "saa7185", /* name */ |
491 | }, | ||
492 | 492 | ||
493 | .id = I2C_DRIVERID_SAA7185B, | 493 | .id = I2C_DRIVERID_SAA7185B, |
494 | .flags = I2C_DF_NOTIFY, | ||
495 | 494 | ||
496 | .attach_adapter = saa7185_attach_adapter, | 495 | .attach_adapter = saa7185_attach_adapter, |
497 | .detach_client = saa7185_detach_client, | 496 | .detach_client = saa7185_detach_client, |
diff --git a/drivers/media/video/saa7191.c b/drivers/media/video/saa7191.c index cbca896e8cf..41f6f05a043 100644 --- a/drivers/media/video/saa7191.c +++ b/drivers/media/video/saa7191.c | |||
@@ -788,10 +788,10 @@ static int saa7191_command(struct i2c_client *client, unsigned int cmd, | |||
788 | } | 788 | } |
789 | 789 | ||
790 | static struct i2c_driver i2c_driver_saa7191 = { | 790 | static struct i2c_driver i2c_driver_saa7191 = { |
791 | .owner = THIS_MODULE, | 791 | .driver = { |
792 | .name = "saa7191", | 792 | .name = "saa7191", |
793 | }, | ||
793 | .id = I2C_DRIVERID_SAA7191, | 794 | .id = I2C_DRIVERID_SAA7191, |
794 | .flags = I2C_DF_NOTIFY, | ||
795 | .attach_adapter = saa7191_probe, | 795 | .attach_adapter = saa7191_probe, |
796 | .detach_client = saa7191_detach, | 796 | .detach_client = saa7191_detach, |
797 | .command = saa7191_command | 797 | .command = saa7191_command |
diff --git a/drivers/media/video/tda7432.c b/drivers/media/video/tda7432.c index d32737dd214..549c9929f10 100644 --- a/drivers/media/video/tda7432.c +++ b/drivers/media/video/tda7432.c | |||
@@ -501,10 +501,10 @@ static int tda7432_command(struct i2c_client *client, | |||
501 | } | 501 | } |
502 | 502 | ||
503 | static struct i2c_driver driver = { | 503 | static struct i2c_driver driver = { |
504 | .owner = THIS_MODULE, | 504 | .driver = { |
505 | .name = "i2c tda7432 driver", | 505 | .name = "i2c tda7432 driver", |
506 | }, | ||
506 | .id = I2C_DRIVERID_TDA7432, | 507 | .id = I2C_DRIVERID_TDA7432, |
507 | .flags = I2C_DF_NOTIFY, | ||
508 | .attach_adapter = tda7432_probe, | 508 | .attach_adapter = tda7432_probe, |
509 | .detach_client = tda7432_detach, | 509 | .detach_client = tda7432_detach, |
510 | .command = tda7432_command, | 510 | .command = tda7432_command, |
diff --git a/drivers/media/video/tda9840.c b/drivers/media/video/tda9840.c index 1794686612c..ed4c04119cc 100644 --- a/drivers/media/video/tda9840.c +++ b/drivers/media/video/tda9840.c | |||
@@ -34,7 +34,7 @@ static int debug = 0; /* insmod parameter */ | |||
34 | module_param(debug, int, 0644); | 34 | module_param(debug, int, 0644); |
35 | MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off)."); | 35 | MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off)."); |
36 | #define dprintk(args...) \ | 36 | #define dprintk(args...) \ |
37 | do { if (debug) { printk("%s: %s()[%d]: ",__stringify(KBUILD_MODNAME), __FUNCTION__, __LINE__); printk(args); } } while (0) | 37 | do { if (debug) { printk("%s: %s()[%d]: ", KBUILD_MODNAME, __FUNCTION__, __LINE__); printk(args); } } while (0) |
38 | 38 | ||
39 | #define SWITCH 0x00 | 39 | #define SWITCH 0x00 |
40 | #define LEVEL_ADJUST 0x02 | 40 | #define LEVEL_ADJUST 0x02 |
@@ -221,10 +221,10 @@ static int detach(struct i2c_client *client) | |||
221 | } | 221 | } |
222 | 222 | ||
223 | static struct i2c_driver driver = { | 223 | static struct i2c_driver driver = { |
224 | .owner = THIS_MODULE, | 224 | .driver = { |
225 | .name = "tda9840", | 225 | .name = "tda9840", |
226 | }, | ||
226 | .id = I2C_DRIVERID_TDA9840, | 227 | .id = I2C_DRIVERID_TDA9840, |
227 | .flags = I2C_DF_NOTIFY, | ||
228 | .attach_adapter = attach, | 228 | .attach_adapter = attach, |
229 | .detach_client = detach, | 229 | .detach_client = detach, |
230 | .command = command, | 230 | .command = command, |
diff --git a/drivers/media/video/tda9875.c b/drivers/media/video/tda9875.c index a5e37dc91f3..9c3ecf7a0fe 100644 --- a/drivers/media/video/tda9875.c +++ b/drivers/media/video/tda9875.c | |||
@@ -372,10 +372,10 @@ static int tda9875_command(struct i2c_client *client, | |||
372 | 372 | ||
373 | 373 | ||
374 | static struct i2c_driver driver = { | 374 | static struct i2c_driver driver = { |
375 | .owner = THIS_MODULE, | 375 | .driver = { |
376 | .name = "i2c tda9875 driver", | 376 | .name = "i2c tda9875 driver", |
377 | }, | ||
377 | .id = I2C_DRIVERID_TDA9875, | 378 | .id = I2C_DRIVERID_TDA9875, |
378 | .flags = I2C_DF_NOTIFY, | ||
379 | .attach_adapter = tda9875_probe, | 379 | .attach_adapter = tda9875_probe, |
380 | .detach_client = tda9875_detach, | 380 | .detach_client = tda9875_detach, |
381 | .command = tda9875_command, | 381 | .command = tda9875_command, |
diff --git a/drivers/media/video/tda9887.c b/drivers/media/video/tda9887.c index 4249127c0a1..7165a1b9625 100644 --- a/drivers/media/video/tda9887.c +++ b/drivers/media/video/tda9887.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <media/audiochip.h> | 12 | #include <media/audiochip.h> |
13 | #include <media/tuner.h> | 13 | #include <media/tuner.h> |
14 | 14 | ||
15 | |||
15 | /* Chips: | 16 | /* Chips: |
16 | TDA9885 (PAL, NTSC) | 17 | TDA9885 (PAL, NTSC) |
17 | TDA9886 (PAL, SECAM, NTSC) | 18 | TDA9886 (PAL, SECAM, NTSC) |
@@ -818,14 +819,12 @@ static int tda9887_resume(struct device * dev) | |||
818 | /* ----------------------------------------------------------------------- */ | 819 | /* ----------------------------------------------------------------------- */ |
819 | 820 | ||
820 | static struct i2c_driver driver = { | 821 | static struct i2c_driver driver = { |
821 | .owner = THIS_MODULE, | 822 | .id = -1, /* FIXME */ |
822 | .name = "i2c tda9887 driver", | 823 | .attach_adapter = tda9887_probe, |
823 | .id = -1, /* FIXME */ | 824 | .detach_client = tda9887_detach, |
824 | .flags = I2C_DF_NOTIFY, | 825 | .command = tda9887_command, |
825 | .attach_adapter = tda9887_probe, | ||
826 | .detach_client = tda9887_detach, | ||
827 | .command = tda9887_command, | ||
828 | .driver = { | 826 | .driver = { |
827 | .name = "i2c tda9887 driver", | ||
829 | .suspend = tda9887_suspend, | 828 | .suspend = tda9887_suspend, |
830 | .resume = tda9887_resume, | 829 | .resume = tda9887_resume, |
831 | }, | 830 | }, |
@@ -833,8 +832,7 @@ static struct i2c_driver driver = { | |||
833 | static struct i2c_client client_template = | 832 | static struct i2c_client client_template = |
834 | { | 833 | { |
835 | .name = "tda9887", | 834 | .name = "tda9887", |
836 | .flags = I2C_CLIENT_ALLOW_USE, | 835 | .driver = &driver, |
837 | .driver = &driver, | ||
838 | }; | 836 | }; |
839 | 837 | ||
840 | static int __init tda9887_init_module(void) | 838 | static int __init tda9887_init_module(void) |
diff --git a/drivers/media/video/tea6415c.c b/drivers/media/video/tea6415c.c index ee3688348b6..bb35844e384 100644 --- a/drivers/media/video/tea6415c.c +++ b/drivers/media/video/tea6415c.c | |||
@@ -36,7 +36,7 @@ static int debug = 0; /* insmod parameter */ | |||
36 | module_param(debug, int, 0644); | 36 | module_param(debug, int, 0644); |
37 | MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off)."); | 37 | MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off)."); |
38 | #define dprintk(args...) \ | 38 | #define dprintk(args...) \ |
39 | do { if (debug) { printk("%s: %s()[%d]: ",__stringify(KBUILD_MODNAME), __FUNCTION__, __LINE__); printk(args); } } while (0) | 39 | do { if (debug) { printk("%s: %s()[%d]: ", KBUILD_MODNAME, __FUNCTION__, __LINE__); printk(args); } } while (0) |
40 | 40 | ||
41 | #define TEA6415C_NUM_INPUTS 8 | 41 | #define TEA6415C_NUM_INPUTS 8 |
42 | #define TEA6415C_NUM_OUTPUTS 6 | 42 | #define TEA6415C_NUM_OUTPUTS 6 |
@@ -190,10 +190,10 @@ static int command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
190 | } | 190 | } |
191 | 191 | ||
192 | static struct i2c_driver driver = { | 192 | static struct i2c_driver driver = { |
193 | .owner = THIS_MODULE, | 193 | .driver = { |
194 | .name = "tea6415c", | 194 | .name = "tea6415c", |
195 | }, | ||
195 | .id = I2C_DRIVERID_TEA6415C, | 196 | .id = I2C_DRIVERID_TEA6415C, |
196 | .flags = I2C_DF_NOTIFY, | ||
197 | .attach_adapter = attach, | 197 | .attach_adapter = attach, |
198 | .detach_client = detach, | 198 | .detach_client = detach, |
199 | .command = command, | 199 | .command = command, |
diff --git a/drivers/media/video/tea6420.c b/drivers/media/video/tea6420.c index 17975c19da5..c4ba3742f5c 100644 --- a/drivers/media/video/tea6420.c +++ b/drivers/media/video/tea6420.c | |||
@@ -36,7 +36,7 @@ static int debug = 0; /* insmod parameter */ | |||
36 | module_param(debug, int, 0644); | 36 | module_param(debug, int, 0644); |
37 | MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off)."); | 37 | MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off)."); |
38 | #define dprintk(args...) \ | 38 | #define dprintk(args...) \ |
39 | do { if (debug) { printk("%s: %s()[%d]: ",__stringify(KBUILD_MODNAME), __FUNCTION__, __LINE__); printk(args); } } while (0) | 39 | do { if (debug) { printk("%s: %s()[%d]: ", KBUILD_MODNAME, __FUNCTION__, __LINE__); printk(args); } } while (0) |
40 | 40 | ||
41 | /* addresses to scan, found only at 0x4c and/or 0x4d (7-Bit) */ | 41 | /* addresses to scan, found only at 0x4c and/or 0x4d (7-Bit) */ |
42 | static unsigned short normal_i2c[] = { I2C_TEA6420_1, I2C_TEA6420_2, I2C_CLIENT_END }; | 42 | static unsigned short normal_i2c[] = { I2C_TEA6420_1, I2C_TEA6420_2, I2C_CLIENT_END }; |
@@ -167,10 +167,10 @@ static int command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
167 | } | 167 | } |
168 | 168 | ||
169 | static struct i2c_driver driver = { | 169 | static struct i2c_driver driver = { |
170 | .owner = THIS_MODULE, | 170 | .driver = { |
171 | .name = "tea6420", | 171 | .name = "tea6420", |
172 | }, | ||
172 | .id = I2C_DRIVERID_TEA6420, | 173 | .id = I2C_DRIVERID_TEA6420, |
173 | .flags = I2C_DF_NOTIFY, | ||
174 | .attach_adapter = attach, | 174 | .attach_adapter = attach, |
175 | .detach_client = detach, | 175 | .detach_client = detach, |
176 | .command = command, | 176 | .command = command, |
diff --git a/drivers/media/video/tuner-3036.c b/drivers/media/video/tuner-3036.c index 79203595b9c..d97f66804c3 100644 --- a/drivers/media/video/tuner-3036.c +++ b/drivers/media/video/tuner-3036.c | |||
@@ -175,10 +175,10 @@ tuner_probe(struct i2c_adapter *adap) | |||
175 | static struct i2c_driver | 175 | static struct i2c_driver |
176 | i2c_driver_tuner = | 176 | i2c_driver_tuner = |
177 | { | 177 | { |
178 | .owner = THIS_MODULE, | 178 | .driver = { |
179 | .name = "sab3036", | 179 | .name = "sab3036", |
180 | }, | ||
180 | .id = I2C_DRIVERID_SAB3036, | 181 | .id = I2C_DRIVERID_SAB3036, |
181 | .flags = I2C_DF_NOTIFY, | ||
182 | .attach_adapter = tuner_probe, | 182 | .attach_adapter = tuner_probe, |
183 | .detach_client = tuner_detach, | 183 | .detach_client = tuner_detach, |
184 | .command = tuner_command | 184 | .command = tuner_command |
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c index e58abdfcaab..c13c7b95ef3 100644 --- a/drivers/media/video/tuner-core.c +++ b/drivers/media/video/tuner-core.c | |||
@@ -206,7 +206,7 @@ static void set_type(struct i2c_client *c, unsigned int type, | |||
206 | 206 | ||
207 | set_freq(c, t->freq); | 207 | set_freq(c, t->freq); |
208 | tuner_dbg("%s %s I2C addr 0x%02x with type %d used for 0x%02x\n", | 208 | tuner_dbg("%s %s I2C addr 0x%02x with type %d used for 0x%02x\n", |
209 | c->adapter->name, c->driver->name, c->addr << 1, type, | 209 | c->adapter->name, c->driver->driver.name, c->addr << 1, type, |
210 | t->mode_mask); | 210 | t->mode_mask); |
211 | } | 211 | } |
212 | 212 | ||
@@ -742,21 +742,18 @@ static int tuner_resume(struct device *dev) | |||
742 | /* ----------------------------------------------------------------------- */ | 742 | /* ----------------------------------------------------------------------- */ |
743 | 743 | ||
744 | static struct i2c_driver driver = { | 744 | static struct i2c_driver driver = { |
745 | .owner = THIS_MODULE, | ||
746 | .name = "tuner", | ||
747 | .id = I2C_DRIVERID_TUNER, | 745 | .id = I2C_DRIVERID_TUNER, |
748 | .flags = I2C_DF_NOTIFY, | ||
749 | .attach_adapter = tuner_probe, | 746 | .attach_adapter = tuner_probe, |
750 | .detach_client = tuner_detach, | 747 | .detach_client = tuner_detach, |
751 | .command = tuner_command, | 748 | .command = tuner_command, |
752 | .driver = { | 749 | .driver = { |
750 | .name = "tuner", | ||
753 | .suspend = tuner_suspend, | 751 | .suspend = tuner_suspend, |
754 | .resume = tuner_resume, | 752 | .resume = tuner_resume, |
755 | }, | 753 | }, |
756 | }; | 754 | }; |
757 | static struct i2c_client client_template = { | 755 | static struct i2c_client client_template = { |
758 | .name = "(tuner unset)", | 756 | .name = "(tuner unset)", |
759 | .flags = I2C_CLIENT_ALLOW_USE, | ||
760 | .driver = &driver, | 757 | .driver = &driver, |
761 | }; | 758 | }; |
762 | 759 | ||
diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c index c31bf28b73f..0292c5abf14 100644 --- a/drivers/media/video/tvaudio.c +++ b/drivers/media/video/tvaudio.c | |||
@@ -188,7 +188,7 @@ static int chip_write(struct CHIPSTATE *chip, int subaddr, int val) | |||
188 | buffer[1] = val; | 188 | buffer[1] = val; |
189 | if (2 != i2c_master_send(&chip->c,buffer,2)) { | 189 | if (2 != i2c_master_send(&chip->c,buffer,2)) { |
190 | tvaudio_warn("%s: I/O error (write reg%d=0x%x)\n", | 190 | tvaudio_warn("%s: I/O error (write reg%d=0x%x)\n", |
191 | chip->c.name, subaddr, val); | 191 | chip->c.name, subaddr, val); |
192 | return -1; | 192 | return -1; |
193 | } | 193 | } |
194 | } | 194 | } |
@@ -216,7 +216,7 @@ static int chip_read(struct CHIPSTATE *chip) | |||
216 | chip->c.name); | 216 | chip->c.name); |
217 | return -1; | 217 | return -1; |
218 | } | 218 | } |
219 | tvaudio_dbg("%s: chip_read: 0x%x\n",chip->c.name,buffer); | 219 | tvaudio_dbg("%s: chip_read: 0x%x\n",chip->c.name, buffer); |
220 | return buffer; | 220 | return buffer; |
221 | } | 221 | } |
222 | 222 | ||
@@ -235,7 +235,7 @@ static int chip_read2(struct CHIPSTATE *chip, int subaddr) | |||
235 | return -1; | 235 | return -1; |
236 | } | 236 | } |
237 | tvaudio_dbg("%s: chip_read2: reg%d=0x%x\n", | 237 | tvaudio_dbg("%s: chip_read2: reg%d=0x%x\n", |
238 | chip->c.name,subaddr,read[0]); | 238 | chip->c.name, subaddr,read[0]); |
239 | return read[0]; | 239 | return read[0]; |
240 | } | 240 | } |
241 | 241 | ||
@@ -248,7 +248,7 @@ static int chip_cmd(struct CHIPSTATE *chip, char *name, audiocmd *cmd) | |||
248 | 248 | ||
249 | /* update our shadow register set; print bytes if (debug > 0) */ | 249 | /* update our shadow register set; print bytes if (debug > 0) */ |
250 | tvaudio_dbg("%s: chip_cmd(%s): reg=%d, data:", | 250 | tvaudio_dbg("%s: chip_cmd(%s): reg=%d, data:", |
251 | chip->c.name,name,cmd->bytes[0]); | 251 | chip->c.name, name,cmd->bytes[0]); |
252 | for (i = 1; i < cmd->count; i++) { | 252 | for (i = 1; i < cmd->count; i++) { |
253 | if (debug) | 253 | if (debug) |
254 | printk(" 0x%x",cmd->bytes[i]); | 254 | printk(" 0x%x",cmd->bytes[i]); |
@@ -322,7 +322,7 @@ static void generic_checkmode(struct CHIPSTATE *chip) | |||
322 | int mode = desc->getmode(chip); | 322 | int mode = desc->getmode(chip); |
323 | 323 | ||
324 | if (mode == chip->prevmode) | 324 | if (mode == chip->prevmode) |
325 | return; | 325 | return; |
326 | 326 | ||
327 | tvaudio_dbg("%s: thread checkmode\n", chip->c.name); | 327 | tvaudio_dbg("%s: thread checkmode\n", chip->c.name); |
328 | chip->prevmode = mode; | 328 | chip->prevmode = mode; |
@@ -1506,18 +1506,18 @@ static int chip_attach(struct i2c_adapter *adap, int addr, int kind) | |||
1506 | return -EIO; | 1506 | return -EIO; |
1507 | } | 1507 | } |
1508 | tvaudio_info("%s found @ 0x%x (%s)\n", desc->name, addr<<1, adap->name); | 1508 | tvaudio_info("%s found @ 0x%x (%s)\n", desc->name, addr<<1, adap->name); |
1509 | if (desc->flags) { | 1509 | if (desc->flags) { |
1510 | tvaudio_dbg("matches:%s%s%s.\n", | 1510 | tvaudio_dbg("matches:%s%s%s.\n", |
1511 | (desc->flags & CHIP_HAS_VOLUME) ? " volume" : "", | 1511 | (desc->flags & CHIP_HAS_VOLUME) ? " volume" : "", |
1512 | (desc->flags & CHIP_HAS_BASSTREBLE) ? " bass/treble" : "", | 1512 | (desc->flags & CHIP_HAS_BASSTREBLE) ? " bass/treble" : "", |
1513 | (desc->flags & CHIP_HAS_INPUTSEL) ? " audiomux" : ""); | 1513 | (desc->flags & CHIP_HAS_INPUTSEL) ? " audiomux" : ""); |
1514 | } | 1514 | } |
1515 | 1515 | ||
1516 | /* fill required data structures */ | 1516 | /* fill required data structures */ |
1517 | strcpy(chip->c.name,desc->name); | 1517 | strcpy(chip->c.name, desc->name); |
1518 | chip->type = desc-chiplist; | 1518 | chip->type = desc-chiplist; |
1519 | chip->shadow.count = desc->registers+1; | 1519 | chip->shadow.count = desc->registers+1; |
1520 | chip->prevmode = -1; | 1520 | chip->prevmode = -1; |
1521 | /* register */ | 1521 | /* register */ |
1522 | i2c_attach_client(&chip->c); | 1522 | i2c_attach_client(&chip->c); |
1523 | 1523 | ||
@@ -1604,7 +1604,7 @@ static int chip_command(struct i2c_client *client, | |||
1604 | struct CHIPSTATE *chip = i2c_get_clientdata(client); | 1604 | struct CHIPSTATE *chip = i2c_get_clientdata(client); |
1605 | struct CHIPDESC *desc = chiplist + chip->type; | 1605 | struct CHIPDESC *desc = chiplist + chip->type; |
1606 | 1606 | ||
1607 | tvaudio_dbg("%s: chip_command 0x%x\n",chip->c.name,cmd); | 1607 | tvaudio_dbg("%s: chip_command 0x%x\n", chip->c.name, cmd); |
1608 | 1608 | ||
1609 | switch (cmd) { | 1609 | switch (cmd) { |
1610 | case AUDC_SET_INPUT: | 1610 | case AUDC_SET_INPUT: |
@@ -1624,7 +1624,7 @@ static int chip_command(struct i2c_client *client, | |||
1624 | 1624 | ||
1625 | /* --- v4l ioctls --- */ | 1625 | /* --- v4l ioctls --- */ |
1626 | /* take care: bttv does userspace copying, we'll get a | 1626 | /* take care: bttv does userspace copying, we'll get a |
1627 | kernel pointer here... */ | 1627 | kernel pointer here... */ |
1628 | case VIDIOCGAUDIO: | 1628 | case VIDIOCGAUDIO: |
1629 | { | 1629 | { |
1630 | struct video_audio *va = arg; | 1630 | struct video_audio *va = arg; |
@@ -1702,10 +1702,10 @@ static int chip_command(struct i2c_client *client, | |||
1702 | 1702 | ||
1703 | 1703 | ||
1704 | static struct i2c_driver driver = { | 1704 | static struct i2c_driver driver = { |
1705 | .owner = THIS_MODULE, | 1705 | .driver = { |
1706 | .name = "generic i2c audio driver", | 1706 | .name = "generic i2c audio driver", |
1707 | }, | ||
1707 | .id = I2C_DRIVERID_TVAUDIO, | 1708 | .id = I2C_DRIVERID_TVAUDIO, |
1708 | .flags = I2C_DF_NOTIFY, | ||
1709 | .attach_adapter = chip_probe, | 1709 | .attach_adapter = chip_probe, |
1710 | .detach_client = chip_detach, | 1710 | .detach_client = chip_detach, |
1711 | .command = chip_command, | 1711 | .command = chip_command, |
@@ -1714,7 +1714,6 @@ static struct i2c_driver driver = { | |||
1714 | static struct i2c_client client_template = | 1714 | static struct i2c_client client_template = |
1715 | { | 1715 | { |
1716 | .name = "(unset)", | 1716 | .name = "(unset)", |
1717 | .flags = I2C_CLIENT_ALLOW_USE, | ||
1718 | .driver = &driver, | 1717 | .driver = &driver, |
1719 | }; | 1718 | }; |
1720 | 1719 | ||
diff --git a/drivers/media/video/tveeprom.c b/drivers/media/video/tveeprom.c index 72e8741e8b5..8ac4cb82a45 100644 --- a/drivers/media/video/tveeprom.c +++ b/drivers/media/video/tveeprom.c | |||
@@ -81,7 +81,7 @@ hauppauge_tuner_fmt[] = | |||
81 | { 0x00000010, " PAL(I)" }, | 81 | { 0x00000010, " PAL(I)" }, |
82 | { 0x00400000, " SECAM(L/L')" }, | 82 | { 0x00400000, " SECAM(L/L')" }, |
83 | { 0x00000e00, " PAL(D/K)" }, | 83 | { 0x00000e00, " PAL(D/K)" }, |
84 | { 0x03000000, " ATSC Digital" }, | 84 | { 0x03000000, " ATSC/DVB Digital" }, |
85 | }; | 85 | }; |
86 | 86 | ||
87 | /* This is the full list of possible tuners. Many thanks to Hauppauge for | 87 | /* This is the full list of possible tuners. Many thanks to Hauppauge for |
@@ -206,16 +206,30 @@ hauppauge_tuner[] = | |||
206 | { TUNER_ABSENT, "TCL 2002MI_3H"}, | 206 | { TUNER_ABSENT, "TCL 2002MI_3H"}, |
207 | { TUNER_TCL_2002N, "TCL 2002N 5H"}, | 207 | { TUNER_TCL_2002N, "TCL 2002N 5H"}, |
208 | /* 100-109 */ | 208 | /* 100-109 */ |
209 | { TUNER_ABSENT, "Philips FMD1216ME"}, | 209 | { TUNER_PHILIPS_FMD1216ME_MK3, "Philips FMD1216ME"}, |
210 | { TUNER_TEA5767, "Philips TEA5768HL FM Radio"}, | 210 | { TUNER_TEA5767, "Philips TEA5768HL FM Radio"}, |
211 | { TUNER_ABSENT, "Panasonic ENV57H12D5"}, | 211 | { TUNER_ABSENT, "Panasonic ENV57H12D5"}, |
212 | { TUNER_ABSENT, "TCL MFNM05-4"}, | 212 | { TUNER_PHILIPS_FM1236_MK3, "TCL MFNM05-4"}, |
213 | { TUNER_ABSENT, "TCL MNM05-4"}, | 213 | { TUNER_ABSENT, "TCL MNM05-4"}, |
214 | { TUNER_PHILIPS_FM1216ME_MK3, "TCL MPE05-2"}, | 214 | { TUNER_PHILIPS_FM1216ME_MK3, "TCL MPE05-2"}, |
215 | { TUNER_ABSENT, "TCL MQNM05-4"}, | 215 | { TUNER_ABSENT, "TCL MQNM05-4"}, |
216 | { TUNER_ABSENT, "LG TAPC-W701D"}, | 216 | { TUNER_ABSENT, "LG TAPC-W701D"}, |
217 | { TUNER_ABSENT, "TCL 9886P-WM"}, | 217 | { TUNER_ABSENT, "TCL 9886P-WM"}, |
218 | { TUNER_ABSENT, "TCL 1676NM-WM"}, | 218 | { TUNER_ABSENT, "TCL 1676NM-WM"}, |
219 | /* 110-119 */ | ||
220 | { TUNER_ABSENT, "Thompson DTT75105"}, | ||
221 | { TUNER_ABSENT, "Conexant_CX24109"}, | ||
222 | { TUNER_ABSENT, "TCL M2523_5N_E"}, | ||
223 | { TUNER_ABSENT, "TCL M2523_3DB_E"}, | ||
224 | { TUNER_ABSENT, "Philips 8275A"}, | ||
225 | { TUNER_ABSENT, "Microtune MT2060"}, | ||
226 | { TUNER_ABSENT, "Philips FM1236 MK5"}, | ||
227 | { TUNER_ABSENT, "Philips FM1216ME MK5"}, | ||
228 | { TUNER_ABSENT, "TCL M2523_3DI_E"}, | ||
229 | { TUNER_ABSENT, "Samsung THPD5222FG30A"}, | ||
230 | /* 120-129 */ | ||
231 | { TUNER_ABSENT, "Xceive XC3028"}, | ||
232 | { TUNER_ABSENT, "Philips FQ1216LME MK5"}, | ||
219 | }; | 233 | }; |
220 | 234 | ||
221 | static struct HAUPPAUGE_AUDIOIC | 235 | static struct HAUPPAUGE_AUDIOIC |
@@ -325,6 +339,7 @@ static int hasRadioTuner(int tunerType) | |||
325 | case 78: //PNPEnv_TUNER_TDA8275C1_8290_FM: | 339 | case 78: //PNPEnv_TUNER_TDA8275C1_8290_FM: |
326 | case 89: //PNPEnv_TUNER_TCL_MFPE05_2: | 340 | case 89: //PNPEnv_TUNER_TCL_MFPE05_2: |
327 | case 92: //PNPEnv_TUNER_PHILIPS_FQ1236A_MK4: | 341 | case 92: //PNPEnv_TUNER_PHILIPS_FQ1236A_MK4: |
342 | case 105: | ||
328 | return 1; | 343 | return 1; |
329 | } | 344 | } |
330 | return 0; | 345 | return 0; |
@@ -368,10 +383,15 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee, | |||
368 | memset(tvee, 0, sizeof(*tvee)); | 383 | memset(tvee, 0, sizeof(*tvee)); |
369 | done = len = beenhere = 0; | 384 | done = len = beenhere = 0; |
370 | 385 | ||
371 | /* Hack for processing eeprom for em28xx */ | 386 | /* Hack for processing eeprom for em28xx and cx 2388x*/ |
372 | if ((eeprom_data[0]==0x1a)&&(eeprom_data[1]==0xeb)&& | 387 | if ((eeprom_data[0] == 0x1a) && (eeprom_data[1] == 0xeb) && |
373 | (eeprom_data[2]==0x67)&&(eeprom_data[3]==0x95)) | 388 | (eeprom_data[2] == 0x67) && (eeprom_data[3] == 0x95)) |
374 | start=0xa0; | 389 | start=0xa0; /* Generic em28xx offset */ |
390 | else if (((eeprom_data[0] & 0xf0) == 0x10) && | ||
391 | (eeprom_data[1] == 0x00) && | ||
392 | (eeprom_data[2] == 0x00) && | ||
393 | (eeprom_data[8] == 0x84)) | ||
394 | start=8; /* Generic cx2388x offset */ | ||
375 | else | 395 | else |
376 | start=0; | 396 | start=0; |
377 | 397 | ||
@@ -448,6 +468,17 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee, | |||
448 | eeprom_data[i+5] + | 468 | eeprom_data[i+5] + |
449 | (eeprom_data[i+6] << 8) + | 469 | (eeprom_data[i+6] << 8) + |
450 | (eeprom_data[i+7] << 16); | 470 | (eeprom_data[i+7] << 16); |
471 | |||
472 | if ( (eeprom_data[i + 8] && 0xf0) && | ||
473 | (tvee->serial_number < 0xffffff) ) { | ||
474 | tvee->MAC_address[0] = 0x00; | ||
475 | tvee->MAC_address[1] = 0x0D; | ||
476 | tvee->MAC_address[2] = 0xFE; | ||
477 | tvee->MAC_address[3] = eeprom_data[i + 7]; | ||
478 | tvee->MAC_address[4] = eeprom_data[i + 6]; | ||
479 | tvee->MAC_address[5] = eeprom_data[i + 5]; | ||
480 | tvee->has_MAC_address = 1; | ||
481 | } | ||
451 | break; | 482 | break; |
452 | 483 | ||
453 | case 0x05: | 484 | case 0x05: |
@@ -466,11 +497,14 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee, | |||
466 | case 0x06: | 497 | case 0x06: |
467 | /* tag 'ModelRev' */ | 498 | /* tag 'ModelRev' */ |
468 | tvee->model = | 499 | tvee->model = |
469 | eeprom_data[i+1] + | 500 | eeprom_data[i + 1] + |
470 | (eeprom_data[i+2] << 8); | 501 | (eeprom_data[i + 2] << 8) + |
471 | tvee->revision = eeprom_data[i+5] + | 502 | (eeprom_data[i + 3] << 16) + |
472 | (eeprom_data[i+6] << 8) + | 503 | (eeprom_data[i + 4] << 24); |
473 | (eeprom_data[i+7] << 16); | 504 | tvee->revision = |
505 | eeprom_data[i +5 ] + | ||
506 | (eeprom_data[i + 6] << 8) + | ||
507 | (eeprom_data[i + 7] << 16); | ||
474 | break; | 508 | break; |
475 | 509 | ||
476 | case 0x07: | 510 | case 0x07: |
@@ -563,6 +597,8 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee, | |||
563 | t_name2 = "unknown"; | 597 | t_name2 = "unknown"; |
564 | } | 598 | } |
565 | 599 | ||
600 | tvee->tuner_hauppauge_model = tuner1; | ||
601 | tvee->tuner2_hauppauge_model = tuner2; | ||
566 | tvee->tuner_formats = 0; | 602 | tvee->tuner_formats = 0; |
567 | tvee->tuner2_formats = 0; | 603 | tvee->tuner2_formats = 0; |
568 | for (i = j = 0; i < 8; i++) { | 604 | for (i = j = 0; i < 8; i++) { |
@@ -578,6 +614,12 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee, | |||
578 | 614 | ||
579 | tveeprom_info("Hauppauge model %d, rev %s, serial# %d\n", | 615 | tveeprom_info("Hauppauge model %d, rev %s, serial# %d\n", |
580 | tvee->model, tvee->rev_str, tvee->serial_number); | 616 | tvee->model, tvee->rev_str, tvee->serial_number); |
617 | if (tvee->has_MAC_address == 1) { | ||
618 | tveeprom_info("MAC address is %02X-%02X-%02X-%02X-%02X-%02X\n", | ||
619 | tvee->MAC_address[0], tvee->MAC_address[1], | ||
620 | tvee->MAC_address[2], tvee->MAC_address[3], | ||
621 | tvee->MAC_address[4], tvee->MAC_address[5]); | ||
622 | } | ||
581 | tveeprom_info("tuner model is %s (idx %d, type %d)\n", | 623 | tveeprom_info("tuner model is %s (idx %d, type %d)\n", |
582 | t_name1, tuner1, tvee->tuner_type); | 624 | t_name1, tuner1, tvee->tuner_type); |
583 | tveeprom_info("TV standards%s%s%s%s%s%s%s%s (eeprom 0x%02x)\n", | 625 | tveeprom_info("TV standards%s%s%s%s%s%s%s%s (eeprom 0x%02x)\n", |
@@ -709,9 +751,9 @@ tveeprom_detect_client(struct i2c_adapter *adapter, | |||
709 | client->addr = address; | 751 | client->addr = address; |
710 | client->adapter = adapter; | 752 | client->adapter = adapter; |
711 | client->driver = &i2c_driver_tveeprom; | 753 | client->driver = &i2c_driver_tveeprom; |
712 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
713 | snprintf(client->name, sizeof(client->name), "tveeprom"); | 754 | snprintf(client->name, sizeof(client->name), "tveeprom"); |
714 | i2c_attach_client(client); | 755 | i2c_attach_client(client); |
756 | |||
715 | return 0; | 757 | return 0; |
716 | } | 758 | } |
717 | 759 | ||
@@ -736,10 +778,10 @@ tveeprom_detach_client (struct i2c_client *client) | |||
736 | } | 778 | } |
737 | 779 | ||
738 | static struct i2c_driver i2c_driver_tveeprom = { | 780 | static struct i2c_driver i2c_driver_tveeprom = { |
739 | .owner = THIS_MODULE, | 781 | .driver = { |
740 | .name = "tveeprom", | 782 | .name = "tveeprom", |
783 | }, | ||
741 | .id = I2C_DRIVERID_TVEEPROM, | 784 | .id = I2C_DRIVERID_TVEEPROM, |
742 | .flags = I2C_DF_NOTIFY, | ||
743 | .attach_adapter = tveeprom_attach_adapter, | 785 | .attach_adapter = tveeprom_attach_adapter, |
744 | .detach_client = tveeprom_detach_client, | 786 | .detach_client = tveeprom_detach_client, |
745 | .command = tveeprom_command, | 787 | .command = tveeprom_command, |
diff --git a/drivers/media/video/tvmixer.c b/drivers/media/video/tvmixer.c index 8318bd1aad0..e837f9f7fed 100644 --- a/drivers/media/video/tvmixer.c +++ b/drivers/media/video/tvmixer.c | |||
@@ -228,16 +228,14 @@ static int tvmixer_release(struct inode *inode, struct file *file) | |||
228 | 228 | ||
229 | static struct i2c_driver driver = { | 229 | static struct i2c_driver driver = { |
230 | #ifdef I2C_PEC | 230 | #ifdef I2C_PEC |
231 | .owner = THIS_MODULE, | 231 | .driver = { |
232 | #endif | 232 | .name = "tv card mixer driver", |
233 | }, | ||
234 | #else | ||
233 | .name = "tv card mixer driver", | 235 | .name = "tv card mixer driver", |
236 | #endif | ||
234 | .id = I2C_DRIVERID_TVMIXER, | 237 | .id = I2C_DRIVERID_TVMIXER, |
235 | #ifdef I2C_DF_DUMMY | ||
236 | .flags = I2C_DF_DUMMY, | ||
237 | #else | ||
238 | .flags = I2C_DF_NOTIFY, | ||
239 | .detach_adapter = tvmixer_adapters, | 238 | .detach_adapter = tvmixer_adapters, |
240 | #endif | ||
241 | .attach_adapter = tvmixer_adapters, | 239 | .attach_adapter = tvmixer_adapters, |
242 | .detach_client = tvmixer_clients, | 240 | .detach_client = tvmixer_clients, |
243 | }; | 241 | }; |
diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c index 81e6d4494e7..a60442ea4f9 100644 --- a/drivers/media/video/tvp5150.c +++ b/drivers/media/video/tvp5150.c | |||
@@ -31,7 +31,7 @@ MODULE_PARM_DESC(debug, "Debug level (0-1)"); | |||
31 | #define dprintk(num, format, args...) \ | 31 | #define dprintk(num, format, args...) \ |
32 | do { \ | 32 | do { \ |
33 | if (debug >= num) \ | 33 | if (debug >= num) \ |
34 | printk(format , ##args); \ | 34 | printk(format, ##args); \ |
35 | } while (0) | 35 | } while (0) |
36 | 36 | ||
37 | /* supported controls */ | 37 | /* supported controls */ |
@@ -714,7 +714,6 @@ static struct i2c_driver driver; | |||
714 | 714 | ||
715 | static struct i2c_client client_template = { | 715 | static struct i2c_client client_template = { |
716 | .name = "(unset)", | 716 | .name = "(unset)", |
717 | .flags = I2C_CLIENT_ALLOW_USE, | ||
718 | .driver = &driver, | 717 | .driver = &driver, |
719 | }; | 718 | }; |
720 | 719 | ||
@@ -770,7 +769,6 @@ static int tvp5150_detect_client(struct i2c_adapter *adapter, | |||
770 | 769 | ||
771 | if (debug > 1) | 770 | if (debug > 1) |
772 | dump_reg(client); | 771 | dump_reg(client); |
773 | |||
774 | return 0; | 772 | return 0; |
775 | } | 773 | } |
776 | 774 | ||
@@ -802,12 +800,12 @@ static int tvp5150_detach_client(struct i2c_client *client) | |||
802 | /* ----------------------------------------------------------------------- */ | 800 | /* ----------------------------------------------------------------------- */ |
803 | 801 | ||
804 | static struct i2c_driver driver = { | 802 | static struct i2c_driver driver = { |
805 | .owner = THIS_MODULE, | 803 | .driver = { |
806 | .name = "tvp5150", | 804 | .name = "tvp5150", |
805 | }, | ||
807 | 806 | ||
808 | /* FIXME */ | 807 | /* FIXME */ |
809 | .id = I2C_DRIVERID_SAA7110, | 808 | .id = I2C_DRIVERID_SAA7110, |
810 | .flags = I2C_DF_NOTIFY, | ||
811 | 809 | ||
812 | .attach_adapter = tvp5150_attach_adapter, | 810 | .attach_adapter = tvp5150_attach_adapter, |
813 | .detach_client = tvp5150_detach_client, | 811 | .detach_client = tvp5150_detach_client, |
diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c index 597b8db35a1..62a7d636ef1 100644 --- a/drivers/media/video/v4l2-common.c +++ b/drivers/media/video/v4l2-common.c | |||
@@ -191,9 +191,7 @@ char *v4l2_type_names[] = { | |||
191 | }; | 191 | }; |
192 | 192 | ||
193 | char *v4l2_ioctl_names[256] = { | 193 | char *v4l2_ioctl_names[256] = { |
194 | #if __GNUC__ >= 3 | ||
195 | [0 ... 255] = "UNKNOWN", | 194 | [0 ... 255] = "UNKNOWN", |
196 | #endif | ||
197 | [_IOC_NR(VIDIOC_QUERYCAP)] = "VIDIOC_QUERYCAP", | 195 | [_IOC_NR(VIDIOC_QUERYCAP)] = "VIDIOC_QUERYCAP", |
198 | [_IOC_NR(VIDIOC_RESERVED)] = "VIDIOC_RESERVED", | 196 | [_IOC_NR(VIDIOC_RESERVED)] = "VIDIOC_RESERVED", |
199 | [_IOC_NR(VIDIOC_ENUM_FMT)] = "VIDIOC_ENUM_FMT", | 197 | [_IOC_NR(VIDIOC_ENUM_FMT)] = "VIDIOC_ENUM_FMT", |
diff --git a/drivers/media/video/video-buf-dvb.c b/drivers/media/video/video-buf-dvb.c index 55f129e964e..0a4004a4393 100644 --- a/drivers/media/video/video-buf-dvb.c +++ b/drivers/media/video/video-buf-dvb.c | |||
@@ -13,6 +13,7 @@ | |||
13 | * (at your option) any later version. | 13 | * (at your option) any later version. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | |||
16 | #include <linux/module.h> | 17 | #include <linux/module.h> |
17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
18 | #include <linux/device.h> | 19 | #include <linux/device.h> |
@@ -247,3 +248,4 @@ EXPORT_SYMBOL(videobuf_dvb_unregister); | |||
247 | * compile-command: "make DVB=1" | 248 | * compile-command: "make DVB=1" |
248 | * End: | 249 | * End: |
249 | */ | 250 | */ |
251 | |||
diff --git a/drivers/media/video/video-buf.c b/drivers/media/video/video-buf.c index acfd3a103f3..9a6bf287e26 100644 --- a/drivers/media/video/video-buf.c +++ b/drivers/media/video/video-buf.c | |||
@@ -753,10 +753,9 @@ videobuf_read_zerocopy(struct videobuf_queue *q, char __user *data, | |||
753 | int retval; | 753 | int retval; |
754 | 754 | ||
755 | /* setup stuff */ | 755 | /* setup stuff */ |
756 | retval = -ENOMEM; | ||
757 | q->read_buf = videobuf_alloc(q->msize); | 756 | q->read_buf = videobuf_alloc(q->msize); |
758 | if (NULL == q->read_buf) | 757 | if (NULL == q->read_buf) |
759 | goto done; | 758 | return -ENOMEM; |
760 | 759 | ||
761 | q->read_buf->memory = V4L2_MEMORY_USERPTR; | 760 | q->read_buf->memory = V4L2_MEMORY_USERPTR; |
762 | q->read_buf->baddr = (unsigned long)data; | 761 | q->read_buf->baddr = (unsigned long)data; |
@@ -817,10 +816,14 @@ ssize_t videobuf_read_one(struct videobuf_queue *q, | |||
817 | if (NULL == q->read_buf) | 816 | if (NULL == q->read_buf) |
818 | goto done; | 817 | goto done; |
819 | q->read_buf->memory = V4L2_MEMORY_USERPTR; | 818 | q->read_buf->memory = V4L2_MEMORY_USERPTR; |
819 | q->read_buf->bsize = count; /* preferred size */ | ||
820 | field = videobuf_next_field(q); | 820 | field = videobuf_next_field(q); |
821 | retval = q->ops->buf_prepare(q,q->read_buf,field); | 821 | retval = q->ops->buf_prepare(q,q->read_buf,field); |
822 | if (0 != retval) | 822 | if (0 != retval) { |
823 | kfree (q->read_buf); | ||
824 | q->read_buf = NULL; | ||
823 | goto done; | 825 | goto done; |
826 | } | ||
824 | spin_lock_irqsave(q->irqlock,flags); | 827 | spin_lock_irqsave(q->irqlock,flags); |
825 | q->ops->buf_queue(q,q->read_buf); | 828 | q->ops->buf_queue(q,q->read_buf); |
826 | spin_unlock_irqrestore(q->irqlock,flags); | 829 | spin_unlock_irqrestore(q->irqlock,flags); |
diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c index 83c49f9610d..6de5b0094b8 100644 --- a/drivers/media/video/videodev.c +++ b/drivers/media/video/videodev.c | |||
@@ -76,14 +76,14 @@ static void video_release(struct class_device *cd) | |||
76 | } | 76 | } |
77 | 77 | ||
78 | static struct class video_class = { | 78 | static struct class video_class = { |
79 | .name = VIDEO_NAME, | 79 | .name = VIDEO_NAME, |
80 | .release = video_release, | 80 | .release = video_release, |
81 | }; | 81 | }; |
82 | 82 | ||
83 | /* | 83 | /* |
84 | * Active devices | 84 | * Active devices |
85 | */ | 85 | */ |
86 | 86 | ||
87 | static struct video_device *video_device[VIDEO_NUM_DEVICES]; | 87 | static struct video_device *video_device[VIDEO_NUM_DEVICES]; |
88 | static DECLARE_MUTEX(videodev_lock); | 88 | static DECLARE_MUTEX(videodev_lock); |
89 | 89 | ||
@@ -101,7 +101,7 @@ static int video_open(struct inode *inode, struct file *file) | |||
101 | int err = 0; | 101 | int err = 0; |
102 | struct video_device *vfl; | 102 | struct video_device *vfl; |
103 | struct file_operations *old_fops; | 103 | struct file_operations *old_fops; |
104 | 104 | ||
105 | if(minor>=VIDEO_NUM_DEVICES) | 105 | if(minor>=VIDEO_NUM_DEVICES) |
106 | return -ENODEV; | 106 | return -ENODEV; |
107 | down(&videodev_lock); | 107 | down(&videodev_lock); |
@@ -189,7 +189,7 @@ video_usercopy(struct inode *inode, struct file *file, | |||
189 | return -ENOMEM; | 189 | return -ENOMEM; |
190 | parg = mbuf; | 190 | parg = mbuf; |
191 | } | 191 | } |
192 | 192 | ||
193 | err = -EFAULT; | 193 | err = -EFAULT; |
194 | if (_IOC_DIR(cmd) & _IOC_WRITE) | 194 | if (_IOC_DIR(cmd) & _IOC_WRITE) |
195 | if (copy_from_user(parg, (void __user *)arg, _IOC_SIZE(cmd))) | 195 | if (copy_from_user(parg, (void __user *)arg, _IOC_SIZE(cmd))) |
@@ -240,7 +240,7 @@ int video_exclusive_open(struct inode *inode, struct file *file) | |||
240 | int video_exclusive_release(struct inode *inode, struct file *file) | 240 | int video_exclusive_release(struct inode *inode, struct file *file) |
241 | { | 241 | { |
242 | struct video_device *vfl = video_devdata(file); | 242 | struct video_device *vfl = video_devdata(file); |
243 | 243 | ||
244 | vfl->users--; | 244 | vfl->users--; |
245 | return 0; | 245 | return 0; |
246 | } | 246 | } |
@@ -253,7 +253,7 @@ static struct file_operations video_fops; | |||
253 | * @type: type of device to register | 253 | * @type: type of device to register |
254 | * @nr: which device number (0 == /dev/video0, 1 == /dev/video1, ... | 254 | * @nr: which device number (0 == /dev/video0, 1 == /dev/video1, ... |
255 | * -1 == first free) | 255 | * -1 == first free) |
256 | * | 256 | * |
257 | * The registration code assigns minor numbers based on the type | 257 | * The registration code assigns minor numbers based on the type |
258 | * requested. -ENFILE is returned in all the device slots for this | 258 | * requested. -ENFILE is returned in all the device slots for this |
259 | * category are full. If not then the minor field is set and the | 259 | * category are full. If not then the minor field is set and the |
@@ -269,7 +269,7 @@ static struct file_operations video_fops; | |||
269 | * | 269 | * |
270 | * %VFL_TYPE_VBI - Vertical blank data (undecoded) | 270 | * %VFL_TYPE_VBI - Vertical blank data (undecoded) |
271 | * | 271 | * |
272 | * %VFL_TYPE_RADIO - A radio card | 272 | * %VFL_TYPE_RADIO - A radio card |
273 | */ | 273 | */ |
274 | 274 | ||
275 | int video_register_device(struct video_device *vfd, int type, int nr) | 275 | int video_register_device(struct video_device *vfd, int type, int nr) |
@@ -278,7 +278,7 @@ int video_register_device(struct video_device *vfd, int type, int nr) | |||
278 | int base; | 278 | int base; |
279 | int end; | 279 | int end; |
280 | char *name_base; | 280 | char *name_base; |
281 | 281 | ||
282 | switch(type) | 282 | switch(type) |
283 | { | 283 | { |
284 | case VFL_TYPE_GRABBER: | 284 | case VFL_TYPE_GRABBER: |
@@ -293,7 +293,7 @@ int video_register_device(struct video_device *vfd, int type, int nr) | |||
293 | break; | 293 | break; |
294 | case VFL_TYPE_VBI: | 294 | case VFL_TYPE_VBI: |
295 | base=224; | 295 | base=224; |
296 | end=240; | 296 | end=256; |
297 | name_base = "vbi"; | 297 | name_base = "vbi"; |
298 | break; | 298 | break; |
299 | case VFL_TYPE_RADIO: | 299 | case VFL_TYPE_RADIO: |
@@ -334,7 +334,7 @@ int video_register_device(struct video_device *vfd, int type, int nr) | |||
334 | init_MUTEX(&vfd->lock); | 334 | init_MUTEX(&vfd->lock); |
335 | 335 | ||
336 | /* sysfs class */ | 336 | /* sysfs class */ |
337 | memset(&vfd->class_dev, 0x00, sizeof(vfd->class_dev)); | 337 | memset(&vfd->class_dev, 0x00, sizeof(vfd->class_dev)); |
338 | if (vfd->dev) | 338 | if (vfd->dev) |
339 | vfd->class_dev.dev = vfd->dev; | 339 | vfd->class_dev.dev = vfd->dev; |
340 | vfd->class_dev.class = &video_class; | 340 | vfd->class_dev.class = &video_class; |
@@ -360,7 +360,7 @@ int video_register_device(struct video_device *vfd, int type, int nr) | |||
360 | * This unregisters the passed device and deassigns the minor | 360 | * This unregisters the passed device and deassigns the minor |
361 | * number. Future open calls will be met with errors. | 361 | * number. Future open calls will be met with errors. |
362 | */ | 362 | */ |
363 | 363 | ||
364 | void video_unregister_device(struct video_device *vfd) | 364 | void video_unregister_device(struct video_device *vfd) |
365 | { | 365 | { |
366 | down(&videodev_lock); | 366 | down(&videodev_lock); |
@@ -384,7 +384,7 @@ static struct file_operations video_fops= | |||
384 | /* | 384 | /* |
385 | * Initialise video for linux | 385 | * Initialise video for linux |
386 | */ | 386 | */ |
387 | 387 | ||
388 | static int __init videodev_init(void) | 388 | static int __init videodev_init(void) |
389 | { | 389 | { |
390 | int ret; | 390 | int ret; |
diff --git a/drivers/media/video/vpx3220.c b/drivers/media/video/vpx3220.c index 137b58f2c66..8dcee8b60e2 100644 --- a/drivers/media/video/vpx3220.c +++ b/drivers/media/video/vpx3220.c | |||
@@ -631,7 +631,6 @@ vpx3220_detect_client (struct i2c_adapter *adapter, | |||
631 | client->addr = address; | 631 | client->addr = address; |
632 | client->adapter = adapter; | 632 | client->adapter = adapter; |
633 | client->driver = &vpx3220_i2c_driver; | 633 | client->driver = &vpx3220_i2c_driver; |
634 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
635 | 634 | ||
636 | /* Check for manufacture ID and part number */ | 635 | /* Check for manufacture ID and part number */ |
637 | if (kind < 0) { | 636 | if (kind < 0) { |
@@ -722,11 +721,11 @@ vpx3220_attach_adapter (struct i2c_adapter *adapter) | |||
722 | */ | 721 | */ |
723 | 722 | ||
724 | static struct i2c_driver vpx3220_i2c_driver = { | 723 | static struct i2c_driver vpx3220_i2c_driver = { |
725 | .owner = THIS_MODULE, | 724 | .driver = { |
726 | .name = "vpx3220", | 725 | .name = "vpx3220", |
726 | }, | ||
727 | 727 | ||
728 | .id = I2C_DRIVERID_VPX3220, | 728 | .id = I2C_DRIVERID_VPX3220, |
729 | .flags = I2C_DF_NOTIFY, | ||
730 | 729 | ||
731 | .attach_adapter = vpx3220_attach_adapter, | 730 | .attach_adapter = vpx3220_attach_adapter, |
732 | .detach_client = vpx3220_detach_client, | 731 | .detach_client = vpx3220_detach_client, |
diff --git a/drivers/media/video/wm8775.c b/drivers/media/video/wm8775.c index a6936ad74fc..bbfd55cd994 100644 --- a/drivers/media/video/wm8775.c +++ b/drivers/media/video/wm8775.c | |||
@@ -40,10 +40,10 @@ MODULE_AUTHOR("Ulf Eklund, Hans Verkuil"); | |||
40 | MODULE_LICENSE("GPL"); | 40 | MODULE_LICENSE("GPL"); |
41 | 41 | ||
42 | #define wm8775_err(fmt, arg...) do { \ | 42 | #define wm8775_err(fmt, arg...) do { \ |
43 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \ | 43 | printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \ |
44 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 44 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
45 | #define wm8775_info(fmt, arg...) do { \ | 45 | #define wm8775_info(fmt, arg...) do { \ |
46 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \ | 46 | printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \ |
47 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) | 47 | i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0) |
48 | 48 | ||
49 | 49 | ||
@@ -168,7 +168,6 @@ static int wm8775_attach(struct i2c_adapter *adapter, int address, int kind) | |||
168 | client->addr = address; | 168 | client->addr = address; |
169 | client->adapter = adapter; | 169 | client->adapter = adapter; |
170 | client->driver = &i2c_driver; | 170 | client->driver = &i2c_driver; |
171 | client->flags = I2C_CLIENT_ALLOW_USE; | ||
172 | snprintf(client->name, sizeof(client->name) - 1, "wm8775"); | 171 | snprintf(client->name, sizeof(client->name) - 1, "wm8775"); |
173 | 172 | ||
174 | wm8775_info("chip found @ 0x%x (%s)\n", address << 1, adapter->name); | 173 | wm8775_info("chip found @ 0x%x (%s)\n", address << 1, adapter->name); |
@@ -233,15 +232,15 @@ static int wm8775_detach(struct i2c_client *client) | |||
233 | 232 | ||
234 | /* i2c implementation */ | 233 | /* i2c implementation */ |
235 | static struct i2c_driver i2c_driver = { | 234 | static struct i2c_driver i2c_driver = { |
236 | .name = "wm8775", | 235 | .driver = { |
236 | .name = "wm8775", | ||
237 | }, | ||
237 | 238 | ||
238 | .id = I2C_DRIVERID_WM8775, | 239 | .id = I2C_DRIVERID_WM8775, |
239 | .flags = I2C_DF_NOTIFY, | ||
240 | 240 | ||
241 | .attach_adapter = wm8775_probe, | 241 | .attach_adapter = wm8775_probe, |
242 | .detach_client = wm8775_detach, | 242 | .detach_client = wm8775_detach, |
243 | .command = wm8775_command, | 243 | .command = wm8775_command, |
244 | .owner = THIS_MODULE, | ||
245 | }; | 244 | }; |
246 | 245 | ||
247 | 246 | ||
diff --git a/drivers/media/video/zoran_driver.c b/drivers/media/video/zoran_driver.c index 07bde9acd67..4034f1b4536 100644 --- a/drivers/media/video/zoran_driver.c +++ b/drivers/media/video/zoran_driver.c | |||
@@ -1311,7 +1311,7 @@ zoran_open (struct inode *inode, | |||
1311 | res = -ENODEV; | 1311 | res = -ENODEV; |
1312 | goto open_unlock_and_return; | 1312 | goto open_unlock_and_return; |
1313 | } | 1313 | } |
1314 | if (!try_module_get(zr->decoder->driver->owner)) { | 1314 | if (!try_module_get(zr->decoder->driver->driver.owner)) { |
1315 | dprintk(1, | 1315 | dprintk(1, |
1316 | KERN_ERR | 1316 | KERN_ERR |
1317 | "%s: failed to grab ownership of i2c decoder\n", | 1317 | "%s: failed to grab ownership of i2c decoder\n", |
@@ -1321,13 +1321,13 @@ zoran_open (struct inode *inode, | |||
1321 | goto open_unlock_and_return; | 1321 | goto open_unlock_and_return; |
1322 | } | 1322 | } |
1323 | if (zr->encoder && | 1323 | if (zr->encoder && |
1324 | !try_module_get(zr->encoder->driver->owner)) { | 1324 | !try_module_get(zr->encoder->driver->driver.owner)) { |
1325 | dprintk(1, | 1325 | dprintk(1, |
1326 | KERN_ERR | 1326 | KERN_ERR |
1327 | "%s: failed to grab ownership of i2c encoder\n", | 1327 | "%s: failed to grab ownership of i2c encoder\n", |
1328 | ZR_DEVNAME(zr)); | 1328 | ZR_DEVNAME(zr)); |
1329 | res = -EIO; | 1329 | res = -EIO; |
1330 | module_put(zr->decoder->driver->owner); | 1330 | module_put(zr->decoder->driver->driver.owner); |
1331 | module_put(THIS_MODULE); | 1331 | module_put(THIS_MODULE); |
1332 | goto open_unlock_and_return; | 1332 | goto open_unlock_and_return; |
1333 | } | 1333 | } |
@@ -1393,9 +1393,9 @@ zoran_open (struct inode *inode, | |||
1393 | open_unlock_and_return: | 1393 | open_unlock_and_return: |
1394 | /* if we grabbed locks, release them accordingly */ | 1394 | /* if we grabbed locks, release them accordingly */ |
1395 | if (have_module_locks) { | 1395 | if (have_module_locks) { |
1396 | module_put(zr->decoder->driver->owner); | 1396 | module_put(zr->decoder->driver->driver.owner); |
1397 | if (zr->encoder) { | 1397 | if (zr->encoder) { |
1398 | module_put(zr->encoder->driver->owner); | 1398 | module_put(zr->encoder->driver->driver.owner); |
1399 | } | 1399 | } |
1400 | module_put(THIS_MODULE); | 1400 | module_put(THIS_MODULE); |
1401 | } | 1401 | } |
@@ -1461,9 +1461,9 @@ zoran_close (struct inode *inode, | |||
1461 | kfree(fh); | 1461 | kfree(fh); |
1462 | 1462 | ||
1463 | /* release locks on the i2c modules */ | 1463 | /* release locks on the i2c modules */ |
1464 | module_put(zr->decoder->driver->owner); | 1464 | module_put(zr->decoder->driver->driver.owner); |
1465 | if (zr->encoder) { | 1465 | if (zr->encoder) { |
1466 | module_put(zr->encoder->driver->owner); | 1466 | module_put(zr->encoder->driver->driver.owner); |
1467 | } | 1467 | } |
1468 | module_put(THIS_MODULE); | 1468 | module_put(THIS_MODULE); |
1469 | 1469 | ||