diff options
author | Dmitry Torokhov <dtor_core@ameritech.net> | 2005-12-20 23:03:50 -0500 |
---|---|---|
committer | Dmitry Torokhov <dtor_core@ameritech.net> | 2005-12-20 23:03:50 -0500 |
commit | 041387d98460b3947587929ef3a4773b8c48538f (patch) | |
tree | 3330eebba3fa1aa7c13479e527f07b03d7fb53ed /drivers | |
parent | 56f0356321a876a1a356712f2486d6188a3b4992 (diff) | |
parent | b05948d9b7167e23af88cc65b9ffa4687eaf1f0d (diff) |
Manual merge with Linus (conflict in drivers/input/misc/wistron_bnts.c)
Diffstat (limited to 'drivers')
190 files changed, 4200 insertions, 4460 deletions
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index 82292b77e5c6..78927c0f1551 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c | |||
@@ -316,7 +316,7 @@ static int acpi_pci_link_set(struct acpi_pci_link *link, int irq) | |||
316 | if (!link || !irq) | 316 | if (!link || !irq) |
317 | return_VALUE(-EINVAL); | 317 | return_VALUE(-EINVAL); |
318 | 318 | ||
319 | resource = kmalloc(sizeof(*resource) + 1, GFP_KERNEL); | 319 | resource = kmalloc(sizeof(*resource) + 1, GFP_ATOMIC); |
320 | if (!resource) | 320 | if (!resource) |
321 | return_VALUE(-ENOMEM); | 321 | return_VALUE(-ENOMEM); |
322 | 322 | ||
diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c index d15c194be44a..d1387cfe2d30 100644 --- a/drivers/atm/adummy.c +++ b/drivers/atm/adummy.c | |||
@@ -123,7 +123,7 @@ static int __init adummy_init(void) | |||
123 | } | 123 | } |
124 | memset(adummy_dev, 0, sizeof(struct adummy_dev)); | 124 | memset(adummy_dev, 0, sizeof(struct adummy_dev)); |
125 | 125 | ||
126 | atm_dev = atm_dev_register(DEV_LABEL, &adummy_ops, -1, 0); | 126 | atm_dev = atm_dev_register(DEV_LABEL, &adummy_ops, -1, NULL); |
127 | if (!atm_dev) { | 127 | if (!atm_dev) { |
128 | printk(KERN_ERR DEV_LABEL ": atm_dev_register() failed\n"); | 128 | printk(KERN_ERR DEV_LABEL ": atm_dev_register() failed\n"); |
129 | err = -ENODEV; | 129 | err = -ENODEV; |
diff --git a/drivers/base/memory.c b/drivers/base/memory.c index b7ddd651d664..bc3ca6a656b2 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c | |||
@@ -28,7 +28,6 @@ | |||
28 | static struct sysdev_class memory_sysdev_class = { | 28 | static struct sysdev_class memory_sysdev_class = { |
29 | set_kset_name(MEMORY_CLASS_NAME), | 29 | set_kset_name(MEMORY_CLASS_NAME), |
30 | }; | 30 | }; |
31 | EXPORT_SYMBOL(memory_sysdev_class); | ||
32 | 31 | ||
33 | static char *memory_hotplug_name(struct kset *kset, struct kobject *kobj) | 32 | static char *memory_hotplug_name(struct kset *kset, struct kobject *kobj) |
34 | { | 33 | { |
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index a9e33db46e68..c3441b3f086e 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c | |||
@@ -1146,7 +1146,6 @@ static int revalidate_allvol(ctlr_info_t *host) | |||
1146 | del_gendisk(disk); | 1146 | del_gendisk(disk); |
1147 | if (q) | 1147 | if (q) |
1148 | blk_cleanup_queue(q); | 1148 | blk_cleanup_queue(q); |
1149 | put_disk(disk); | ||
1150 | } | 1149 | } |
1151 | } | 1150 | } |
1152 | 1151 | ||
@@ -1465,9 +1464,10 @@ static int deregister_disk(struct gendisk *disk, drive_info_struct *drv, | |||
1465 | request_queue_t *q = disk->queue; | 1464 | request_queue_t *q = disk->queue; |
1466 | if (disk->flags & GENHD_FL_UP) | 1465 | if (disk->flags & GENHD_FL_UP) |
1467 | del_gendisk(disk); | 1466 | del_gendisk(disk); |
1468 | if (q) | 1467 | if (q) { |
1469 | blk_cleanup_queue(q); | 1468 | blk_cleanup_queue(q); |
1470 | put_disk(disk); | 1469 | drv->queue = NULL; |
1470 | } | ||
1471 | } | 1471 | } |
1472 | } | 1472 | } |
1473 | 1473 | ||
@@ -3243,7 +3243,6 @@ static void __devexit cciss_remove_one (struct pci_dev *pdev) | |||
3243 | del_gendisk(disk); | 3243 | del_gendisk(disk); |
3244 | if (q) | 3244 | if (q) |
3245 | blk_cleanup_queue(q); | 3245 | blk_cleanup_queue(q); |
3246 | put_disk(disk); | ||
3247 | } | 3246 | } |
3248 | } | 3247 | } |
3249 | 3248 | ||
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 970f70d498f4..696f72787fe8 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig | |||
@@ -687,7 +687,7 @@ config NVRAM | |||
687 | 687 | ||
688 | config RTC | 688 | config RTC |
689 | tristate "Enhanced Real Time Clock Support" | 689 | tristate "Enhanced Real Time Clock Support" |
690 | depends on !PPC32 && !PARISC && !IA64 && !M68K | 690 | depends on !PPC32 && !PARISC && !IA64 && !M68K && (!(SPARC32 || SPARC64) || PCI) |
691 | ---help--- | 691 | ---help--- |
692 | If you say Y here and create a character special file /dev/rtc with | 692 | If you say Y here and create a character special file /dev/rtc with |
693 | major number 10 and minor number 135 using mknod ("man mknod"), you | 693 | major number 10 and minor number 135 using mknod ("man mknod"), you |
@@ -943,6 +943,15 @@ config RAW_DRIVER | |||
943 | Applications should simply open the device (eg /dev/hda1) | 943 | Applications should simply open the device (eg /dev/hda1) |
944 | with the O_DIRECT flag. | 944 | with the O_DIRECT flag. |
945 | 945 | ||
946 | config MAX_RAW_DEVS | ||
947 | int "Maximum number of RAW devices to support (1-8192)" | ||
948 | depends on RAW_DRIVER | ||
949 | default "256" | ||
950 | help | ||
951 | The maximum number of RAW devices that are supported. | ||
952 | Default is 256. Increase this number in case you need lots of | ||
953 | raw devices. | ||
954 | |||
946 | config HPET | 955 | config HPET |
947 | bool "HPET - High Precision Event Timer" if (X86 || IA64) | 956 | bool "HPET - High Precision Event Timer" if (X86 || IA64) |
948 | default n | 957 | default n |
@@ -974,15 +983,6 @@ config HPET_MMAP | |||
974 | exposed to the user. If this applies to your hardware, | 983 | exposed to the user. If this applies to your hardware, |
975 | say N here. | 984 | say N here. |
976 | 985 | ||
977 | config MAX_RAW_DEVS | ||
978 | int "Maximum number of RAW devices to support (1-8192)" | ||
979 | depends on RAW_DRIVER | ||
980 | default "256" | ||
981 | help | ||
982 | The maximum number of RAW devices that are supported. | ||
983 | Default is 256. Increase this number in case you need lots of | ||
984 | raw devices. | ||
985 | |||
986 | config HANGCHECK_TIMER | 986 | config HANGCHECK_TIMER |
987 | tristate "Hangcheck timer" | 987 | tristate "Hangcheck timer" |
988 | depends on X86 || IA64 || PPC64 || ARCH_S390 | 988 | depends on X86 || IA64 || PPC64 || ARCH_S390 |
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index 03839ea31092..501e557cbc86 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c | |||
@@ -1311,7 +1311,9 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on) | |||
1311 | 1311 | ||
1312 | static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) | 1312 | static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) |
1313 | { | 1313 | { |
1314 | drm_radeon_private_t *dev_priv = dev->dev_private;; | 1314 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1315 | unsigned int mem_size; | ||
1316 | |||
1315 | DRM_DEBUG("\n"); | 1317 | DRM_DEBUG("\n"); |
1316 | 1318 | ||
1317 | dev_priv->is_pci = init->is_pci; | 1319 | dev_priv->is_pci = init->is_pci; |
@@ -1521,8 +1523,11 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) | |||
1521 | + dev_priv->fb_location) >> 10)); | 1523 | + dev_priv->fb_location) >> 10)); |
1522 | 1524 | ||
1523 | dev_priv->gart_size = init->gart_size; | 1525 | dev_priv->gart_size = init->gart_size; |
1524 | dev_priv->gart_vm_start = dev_priv->fb_location | 1526 | |
1525 | + RADEON_READ(RADEON_CONFIG_APER_SIZE); | 1527 | mem_size = RADEON_READ(RADEON_CONFIG_MEMSIZE); |
1528 | if (mem_size == 0) | ||
1529 | mem_size = 0x800000; | ||
1530 | dev_priv->gart_vm_start = dev_priv->fb_location + mem_size; | ||
1526 | 1531 | ||
1527 | #if __OS_HAS_AGP | 1532 | #if __OS_HAS_AGP |
1528 | if (!dev_priv->is_pci) | 1533 | if (!dev_priv->is_pci) |
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h index 7bda7e33d2bd..d92ccee3e54c 100644 --- a/drivers/char/drm/radeon_drv.h +++ b/drivers/char/drm/radeon_drv.h | |||
@@ -379,6 +379,7 @@ extern int r300_do_cp_cmdbuf(drm_device_t * dev, DRMFILE filp, | |||
379 | # define RADEON_PLL_WR_EN (1 << 7) | 379 | # define RADEON_PLL_WR_EN (1 << 7) |
380 | #define RADEON_CLOCK_CNTL_INDEX 0x0008 | 380 | #define RADEON_CLOCK_CNTL_INDEX 0x0008 |
381 | #define RADEON_CONFIG_APER_SIZE 0x0108 | 381 | #define RADEON_CONFIG_APER_SIZE 0x0108 |
382 | #define RADEON_CONFIG_MEMSIZE 0x00f8 | ||
382 | #define RADEON_CRTC_OFFSET 0x0224 | 383 | #define RADEON_CRTC_OFFSET 0x0224 |
383 | #define RADEON_CRTC_OFFSET_CNTL 0x0228 | 384 | #define RADEON_CRTC_OFFSET_CNTL 0x0228 |
384 | # define RADEON_CRTC_TILE_EN (1 << 15) | 385 | # define RADEON_CRTC_TILE_EN (1 << 15) |
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c index 6b302a930e5f..1f56b4cf0f58 100644 --- a/drivers/char/ipmi/ipmi_msghandler.c +++ b/drivers/char/ipmi/ipmi_msghandler.c | |||
@@ -2986,7 +2986,7 @@ static void send_panic_events(char *str) | |||
2986 | msg.cmd = 2; /* Platform event command. */ | 2986 | msg.cmd = 2; /* Platform event command. */ |
2987 | msg.data = data; | 2987 | msg.data = data; |
2988 | msg.data_len = 8; | 2988 | msg.data_len = 8; |
2989 | data[0] = 0x21; /* Kernel generator ID, IPMI table 5-4 */ | 2989 | data[0] = 0x41; /* Kernel generator ID, IPMI table 5-4 */ |
2990 | data[1] = 0x03; /* This is for IPMI 1.0. */ | 2990 | data[1] = 0x03; /* This is for IPMI 1.0. */ |
2991 | data[2] = 0x20; /* OS Critical Stop, IPMI table 36-3 */ | 2991 | data[2] = 0x20; /* OS Critical Stop, IPMI table 36-3 */ |
2992 | data[4] = 0x6f; /* Sensor specific, IPMI table 36-1 */ | 2992 | data[4] = 0x6f; /* Sensor specific, IPMI table 36-1 */ |
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 01a1f6badb53..beea450ee4b2 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
@@ -2399,7 +2399,8 @@ static int init_one_smi(int intf_num, struct smi_info **smi) | |||
2399 | new_smi->handlers->cleanup(new_smi->si_sm); | 2399 | new_smi->handlers->cleanup(new_smi->si_sm); |
2400 | kfree(new_smi->si_sm); | 2400 | kfree(new_smi->si_sm); |
2401 | } | 2401 | } |
2402 | new_smi->io_cleanup(new_smi); | 2402 | if (new_smi->io_cleanup) |
2403 | new_smi->io_cleanup(new_smi); | ||
2403 | 2404 | ||
2404 | return rv; | 2405 | return rv; |
2405 | } | 2406 | } |
@@ -2518,7 +2519,8 @@ static void __exit cleanup_one_si(struct smi_info *to_clean) | |||
2518 | 2519 | ||
2519 | kfree(to_clean->si_sm); | 2520 | kfree(to_clean->si_sm); |
2520 | 2521 | ||
2521 | to_clean->io_cleanup(to_clean); | 2522 | if (to_clean->io_cleanup) |
2523 | to_clean->io_cleanup(to_clean); | ||
2522 | } | 2524 | } |
2523 | 2525 | ||
2524 | static __exit void cleanup_ipmi_si(void) | 2526 | static __exit void cleanup_ipmi_si(void) |
diff --git a/drivers/char/mwave/mwavepub.h b/drivers/char/mwave/mwavepub.h index f1f9da7a65c1..60c961ae23b4 100644 --- a/drivers/char/mwave/mwavepub.h +++ b/drivers/char/mwave/mwavepub.h | |||
@@ -69,7 +69,7 @@ typedef struct _MW_ABILITIES { | |||
69 | typedef struct _MW_READWRITE { | 69 | typedef struct _MW_READWRITE { |
70 | unsigned short usDspAddress; /* The dsp address */ | 70 | unsigned short usDspAddress; /* The dsp address */ |
71 | unsigned long ulDataLength; /* The size in bytes of the data or user buffer */ | 71 | unsigned long ulDataLength; /* The size in bytes of the data or user buffer */ |
72 | void *pBuf; /* Input:variable sized buffer */ | 72 | void __user *pBuf; /* Input:variable sized buffer */ |
73 | } MW_READWRITE, *pMW_READWRITE; | 73 | } MW_READWRITE, *pMW_READWRITE; |
74 | 74 | ||
75 | #define IOCTL_MW_RESET _IO(MWAVE_MINOR,1) | 75 | #define IOCTL_MW_RESET _IO(MWAVE_MINOR,1) |
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c index ef011ef5dc46..61681c9f3f72 100644 --- a/drivers/char/pcmcia/cm4000_cs.c +++ b/drivers/char/pcmcia/cm4000_cs.c | |||
@@ -1444,6 +1444,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1444 | dev_link_t *link; | 1444 | dev_link_t *link; |
1445 | int size; | 1445 | int size; |
1446 | int rc; | 1446 | int rc; |
1447 | void __user *argp = (void __user *)arg; | ||
1447 | #ifdef PCMCIA_DEBUG | 1448 | #ifdef PCMCIA_DEBUG |
1448 | char *ioctl_names[CM_IOC_MAXNR + 1] = { | 1449 | char *ioctl_names[CM_IOC_MAXNR + 1] = { |
1449 | [_IOC_NR(CM_IOCGSTATUS)] "CM_IOCGSTATUS", | 1450 | [_IOC_NR(CM_IOCGSTATUS)] "CM_IOCGSTATUS", |
@@ -1481,11 +1482,11 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1481 | _IOC_DIR(cmd), _IOC_READ, _IOC_WRITE, size, cmd); | 1482 | _IOC_DIR(cmd), _IOC_READ, _IOC_WRITE, size, cmd); |
1482 | 1483 | ||
1483 | if (_IOC_DIR(cmd) & _IOC_READ) { | 1484 | if (_IOC_DIR(cmd) & _IOC_READ) { |
1484 | if (!access_ok(VERIFY_WRITE, (void *)arg, size)) | 1485 | if (!access_ok(VERIFY_WRITE, argp, size)) |
1485 | return -EFAULT; | 1486 | return -EFAULT; |
1486 | } | 1487 | } |
1487 | if (_IOC_DIR(cmd) & _IOC_WRITE) { | 1488 | if (_IOC_DIR(cmd) & _IOC_WRITE) { |
1488 | if (!access_ok(VERIFY_READ, (void *)arg, size)) | 1489 | if (!access_ok(VERIFY_READ, argp, size)) |
1489 | return -EFAULT; | 1490 | return -EFAULT; |
1490 | } | 1491 | } |
1491 | 1492 | ||
@@ -1506,14 +1507,14 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1506 | status |= CM_NO_READER; | 1507 | status |= CM_NO_READER; |
1507 | if (test_bit(IS_BAD_CARD, &dev->flags)) | 1508 | if (test_bit(IS_BAD_CARD, &dev->flags)) |
1508 | status |= CM_BAD_CARD; | 1509 | status |= CM_BAD_CARD; |
1509 | if (copy_to_user((int *)arg, &status, sizeof(int))) | 1510 | if (copy_to_user(argp, &status, sizeof(int))) |
1510 | return -EFAULT; | 1511 | return -EFAULT; |
1511 | } | 1512 | } |
1512 | return 0; | 1513 | return 0; |
1513 | case CM_IOCGATR: | 1514 | case CM_IOCGATR: |
1514 | DEBUGP(4, dev, "... in CM_IOCGATR\n"); | 1515 | DEBUGP(4, dev, "... in CM_IOCGATR\n"); |
1515 | { | 1516 | { |
1516 | struct atreq *atreq = (struct atreq *) arg; | 1517 | struct atreq __user *atreq = argp; |
1517 | int tmp; | 1518 | int tmp; |
1518 | /* allow nonblocking io and being interrupted */ | 1519 | /* allow nonblocking io and being interrupted */ |
1519 | if (wait_event_interruptible | 1520 | if (wait_event_interruptible |
@@ -1597,7 +1598,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1597 | { | 1598 | { |
1598 | struct ptsreq krnptsreq; | 1599 | struct ptsreq krnptsreq; |
1599 | 1600 | ||
1600 | if (copy_from_user(&krnptsreq, (struct ptsreq *) arg, | 1601 | if (copy_from_user(&krnptsreq, argp, |
1601 | sizeof(struct ptsreq))) | 1602 | sizeof(struct ptsreq))) |
1602 | return -EFAULT; | 1603 | return -EFAULT; |
1603 | 1604 | ||
@@ -1641,7 +1642,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1641 | int old_pc_debug = 0; | 1642 | int old_pc_debug = 0; |
1642 | 1643 | ||
1643 | old_pc_debug = pc_debug; | 1644 | old_pc_debug = pc_debug; |
1644 | if (copy_from_user(&pc_debug, (int *)arg, sizeof(int))) | 1645 | if (copy_from_user(&pc_debug, argp, sizeof(int))) |
1645 | return -EFAULT; | 1646 | return -EFAULT; |
1646 | 1647 | ||
1647 | if (old_pc_debug != pc_debug) | 1648 | if (old_pc_debug != pc_debug) |
diff --git a/drivers/char/watchdog/booke_wdt.c b/drivers/char/watchdog/booke_wdt.c index 65830ec71042..b6640606b44d 100644 --- a/drivers/char/watchdog/booke_wdt.c +++ b/drivers/char/watchdog/booke_wdt.c | |||
@@ -72,7 +72,7 @@ static __inline__ void booke_wdt_ping(void) | |||
72 | /* | 72 | /* |
73 | * booke_wdt_write: | 73 | * booke_wdt_write: |
74 | */ | 74 | */ |
75 | static ssize_t booke_wdt_write (struct file *file, const char *buf, | 75 | static ssize_t booke_wdt_write (struct file *file, const char __user *buf, |
76 | size_t count, loff_t *ppos) | 76 | size_t count, loff_t *ppos) |
77 | { | 77 | { |
78 | booke_wdt_ping(); | 78 | booke_wdt_ping(); |
@@ -92,14 +92,15 @@ static int booke_wdt_ioctl (struct inode *inode, struct file *file, | |||
92 | unsigned int cmd, unsigned long arg) | 92 | unsigned int cmd, unsigned long arg) |
93 | { | 93 | { |
94 | u32 tmp = 0; | 94 | u32 tmp = 0; |
95 | u32 __user *p = (u32 __user *)arg; | ||
95 | 96 | ||
96 | switch (cmd) { | 97 | switch (cmd) { |
97 | case WDIOC_GETSUPPORT: | 98 | case WDIOC_GETSUPPORT: |
98 | if (copy_to_user ((struct watchdog_info *) arg, &ident, | 99 | if (copy_to_user ((struct watchdog_info __user *) arg, &ident, |
99 | sizeof(struct watchdog_info))) | 100 | sizeof(struct watchdog_info))) |
100 | return -EFAULT; | 101 | return -EFAULT; |
101 | case WDIOC_GETSTATUS: | 102 | case WDIOC_GETSTATUS: |
102 | return put_user(ident.options, (u32 *) arg); | 103 | return put_user(ident.options, p); |
103 | case WDIOC_GETBOOTSTATUS: | 104 | case WDIOC_GETBOOTSTATUS: |
104 | /* XXX: something is clearing TSR */ | 105 | /* XXX: something is clearing TSR */ |
105 | tmp = mfspr(SPRN_TSR) & TSR_WRS(3); | 106 | tmp = mfspr(SPRN_TSR) & TSR_WRS(3); |
@@ -109,14 +110,14 @@ static int booke_wdt_ioctl (struct inode *inode, struct file *file, | |||
109 | booke_wdt_ping(); | 110 | booke_wdt_ping(); |
110 | return 0; | 111 | return 0; |
111 | case WDIOC_SETTIMEOUT: | 112 | case WDIOC_SETTIMEOUT: |
112 | if (get_user(booke_wdt_period, (u32 *) arg)) | 113 | if (get_user(booke_wdt_period, p)) |
113 | return -EFAULT; | 114 | return -EFAULT; |
114 | mtspr(SPRN_TCR, (mfspr(SPRN_TCR)&~WDTP(0))|WDTP(booke_wdt_period)); | 115 | mtspr(SPRN_TCR, (mfspr(SPRN_TCR)&~WDTP(0))|WDTP(booke_wdt_period)); |
115 | return 0; | 116 | return 0; |
116 | case WDIOC_GETTIMEOUT: | 117 | case WDIOC_GETTIMEOUT: |
117 | return put_user(booke_wdt_period, (u32 *) arg); | 118 | return put_user(booke_wdt_period, p); |
118 | case WDIOC_SETOPTIONS: | 119 | case WDIOC_SETOPTIONS: |
119 | if (get_user(tmp, (u32 *) arg)) | 120 | if (get_user(tmp, p)) |
120 | return -EINVAL; | 121 | return -EINVAL; |
121 | if (tmp == WDIOS_ENABLECARD) { | 122 | if (tmp == WDIOS_ENABLECARD) { |
122 | booke_wdt_ping(); | 123 | booke_wdt_ping(); |
@@ -172,7 +173,7 @@ static int __init booke_wdt_init(void) | |||
172 | int ret = 0; | 173 | int ret = 0; |
173 | 174 | ||
174 | printk (KERN_INFO "PowerPC Book-E Watchdog Timer Loaded\n"); | 175 | printk (KERN_INFO "PowerPC Book-E Watchdog Timer Loaded\n"); |
175 | ident.firmware_version = cpu_specs[0].pvr_value; | 176 | ident.firmware_version = cur_cpu_spec->pvr_value; |
176 | 177 | ||
177 | ret = misc_register(&booke_wdt_miscdev); | 178 | ret = misc_register(&booke_wdt_miscdev); |
178 | if (ret) { | 179 | if (ret) { |
diff --git a/drivers/char/watchdog/mpcore_wdt.c b/drivers/char/watchdog/mpcore_wdt.c index 9defcf861b67..b4d843489881 100644 --- a/drivers/char/watchdog/mpcore_wdt.c +++ b/drivers/char/watchdog/mpcore_wdt.c | |||
@@ -180,10 +180,6 @@ static ssize_t mpcore_wdt_write(struct file *file, const char *data, size_t len, | |||
180 | { | 180 | { |
181 | struct mpcore_wdt *wdt = file->private_data; | 181 | struct mpcore_wdt *wdt = file->private_data; |
182 | 182 | ||
183 | /* Can't seek (pwrite) on this device */ | ||
184 | if (ppos != &file->f_pos) | ||
185 | return -ESPIPE; | ||
186 | |||
187 | /* | 183 | /* |
188 | * Refresh the timer. | 184 | * Refresh the timer. |
189 | */ | 185 | */ |
diff --git a/drivers/char/watchdog/wdrtas.c b/drivers/char/watchdog/wdrtas.c index 619e2ffca33f..dacfe31caccf 100644 --- a/drivers/char/watchdog/wdrtas.c +++ b/drivers/char/watchdog/wdrtas.c | |||
@@ -320,7 +320,7 @@ static int | |||
320 | wdrtas_ioctl(struct inode *inode, struct file *file, | 320 | wdrtas_ioctl(struct inode *inode, struct file *file, |
321 | unsigned int cmd, unsigned long arg) | 321 | unsigned int cmd, unsigned long arg) |
322 | { | 322 | { |
323 | int __user *argp = (void *)arg; | 323 | int __user *argp = (void __user *)arg; |
324 | int i; | 324 | int i; |
325 | static struct watchdog_info wdinfo = { | 325 | static struct watchdog_info wdinfo = { |
326 | .options = WDRTAS_SUPPORTED_MASK, | 326 | .options = WDRTAS_SUPPORTED_MASK, |
diff --git a/drivers/connector/cn_proc.c b/drivers/connector/cn_proc.c index fcdf0fff13a6..969d2b4aaec0 100644 --- a/drivers/connector/cn_proc.c +++ b/drivers/connector/cn_proc.c | |||
@@ -56,6 +56,7 @@ void proc_fork_connector(struct task_struct *task) | |||
56 | msg = (struct cn_msg*)buffer; | 56 | msg = (struct cn_msg*)buffer; |
57 | ev = (struct proc_event*)msg->data; | 57 | ev = (struct proc_event*)msg->data; |
58 | get_seq(&msg->seq, &ev->cpu); | 58 | get_seq(&msg->seq, &ev->cpu); |
59 | getnstimestamp(&ev->timestamp); | ||
59 | ev->what = PROC_EVENT_FORK; | 60 | ev->what = PROC_EVENT_FORK; |
60 | ev->event_data.fork.parent_pid = task->real_parent->pid; | 61 | ev->event_data.fork.parent_pid = task->real_parent->pid; |
61 | ev->event_data.fork.parent_tgid = task->real_parent->tgid; | 62 | ev->event_data.fork.parent_tgid = task->real_parent->tgid; |
@@ -81,6 +82,7 @@ void proc_exec_connector(struct task_struct *task) | |||
81 | msg = (struct cn_msg*)buffer; | 82 | msg = (struct cn_msg*)buffer; |
82 | ev = (struct proc_event*)msg->data; | 83 | ev = (struct proc_event*)msg->data; |
83 | get_seq(&msg->seq, &ev->cpu); | 84 | get_seq(&msg->seq, &ev->cpu); |
85 | getnstimestamp(&ev->timestamp); | ||
84 | ev->what = PROC_EVENT_EXEC; | 86 | ev->what = PROC_EVENT_EXEC; |
85 | ev->event_data.exec.process_pid = task->pid; | 87 | ev->event_data.exec.process_pid = task->pid; |
86 | ev->event_data.exec.process_tgid = task->tgid; | 88 | ev->event_data.exec.process_tgid = task->tgid; |
@@ -114,6 +116,7 @@ void proc_id_connector(struct task_struct *task, int which_id) | |||
114 | } else | 116 | } else |
115 | return; | 117 | return; |
116 | get_seq(&msg->seq, &ev->cpu); | 118 | get_seq(&msg->seq, &ev->cpu); |
119 | getnstimestamp(&ev->timestamp); | ||
117 | 120 | ||
118 | memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); | 121 | memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); |
119 | msg->ack = 0; /* not used */ | 122 | msg->ack = 0; /* not used */ |
@@ -133,6 +136,7 @@ void proc_exit_connector(struct task_struct *task) | |||
133 | msg = (struct cn_msg*)buffer; | 136 | msg = (struct cn_msg*)buffer; |
134 | ev = (struct proc_event*)msg->data; | 137 | ev = (struct proc_event*)msg->data; |
135 | get_seq(&msg->seq, &ev->cpu); | 138 | get_seq(&msg->seq, &ev->cpu); |
139 | getnstimestamp(&ev->timestamp); | ||
136 | ev->what = PROC_EVENT_EXIT; | 140 | ev->what = PROC_EVENT_EXIT; |
137 | ev->event_data.exit.process_pid = task->pid; | 141 | ev->event_data.exit.process_pid = task->pid; |
138 | ev->event_data.exit.process_tgid = task->tgid; | 142 | ev->event_data.exit.process_tgid = task->tgid; |
@@ -165,6 +169,7 @@ static void cn_proc_ack(int err, int rcvd_seq, int rcvd_ack) | |||
165 | msg = (struct cn_msg*)buffer; | 169 | msg = (struct cn_msg*)buffer; |
166 | ev = (struct proc_event*)msg->data; | 170 | ev = (struct proc_event*)msg->data; |
167 | msg->seq = rcvd_seq; | 171 | msg->seq = rcvd_seq; |
172 | getnstimestamp(&ev->timestamp); | ||
168 | ev->cpu = -1; | 173 | ev->cpu = -1; |
169 | ev->what = PROC_EVENT_NONE; | 174 | ev->what = PROC_EVENT_NONE; |
170 | ev->event_data.ack.err = err; | 175 | ev->event_data.ack.err = err; |
diff --git a/drivers/firmware/dell_rbu.c b/drivers/firmware/dell_rbu.c index 6d83299e7c9b..dfedb777d8c9 100644 --- a/drivers/firmware/dell_rbu.c +++ b/drivers/firmware/dell_rbu.c | |||
@@ -105,8 +105,8 @@ static int create_packet(void *data, size_t length) | |||
105 | int ordernum = 0; | 105 | int ordernum = 0; |
106 | int retval = 0; | 106 | int retval = 0; |
107 | unsigned int packet_array_size = 0; | 107 | unsigned int packet_array_size = 0; |
108 | void **invalid_addr_packet_array = 0; | 108 | void **invalid_addr_packet_array = NULL; |
109 | void *packet_data_temp_buf = 0; | 109 | void *packet_data_temp_buf = NULL; |
110 | unsigned int idx = 0; | 110 | unsigned int idx = 0; |
111 | 111 | ||
112 | pr_debug("create_packet: entry \n"); | 112 | pr_debug("create_packet: entry \n"); |
@@ -178,7 +178,7 @@ static int create_packet(void *data, size_t length) | |||
178 | packet_data_temp_buf), | 178 | packet_data_temp_buf), |
179 | allocation_floor); | 179 | allocation_floor); |
180 | invalid_addr_packet_array[idx++] = packet_data_temp_buf; | 180 | invalid_addr_packet_array[idx++] = packet_data_temp_buf; |
181 | packet_data_temp_buf = 0; | 181 | packet_data_temp_buf = NULL; |
182 | } | 182 | } |
183 | } | 183 | } |
184 | spin_lock(&rbu_data.lock); | 184 | spin_lock(&rbu_data.lock); |
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c index afd7634e5cc9..81031eb51056 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c | |||
@@ -529,14 +529,15 @@ mv64xxx_i2c_probe(struct platform_device *pd) | |||
529 | i2c_set_adapdata(&drv_data->adapter, drv_data); | 529 | i2c_set_adapdata(&drv_data->adapter, drv_data); |
530 | 530 | ||
531 | if (request_irq(drv_data->irq, mv64xxx_i2c_intr, 0, | 531 | if (request_irq(drv_data->irq, mv64xxx_i2c_intr, 0, |
532 | MV64XXX_I2C_CTLR_NAME, drv_data)) { | 532 | MV64XXX_I2C_CTLR_NAME, drv_data)) { |
533 | 533 | dev_err(&drv_data->adapter.dev, | |
534 | dev_err(dev, "mv64xxx: Can't register intr handler " | 534 | "mv64xxx: Can't register intr handler irq: %d\n", |
535 | "irq: %d\n", drv_data->irq); | 535 | drv_data->irq); |
536 | rc = -EINVAL; | 536 | rc = -EINVAL; |
537 | goto exit_unmap_regs; | 537 | goto exit_unmap_regs; |
538 | } else if ((rc = i2c_add_adapter(&drv_data->adapter)) != 0) { | 538 | } else if ((rc = i2c_add_adapter(&drv_data->adapter)) != 0) { |
539 | dev_err(dev, "mv64xxx: Can't add i2c adapter, rc: %d\n", -rc); | 539 | dev_err(&drv_data->adapter.dev, |
540 | "mv64xxx: Can't add i2c adapter, rc: %d\n", -rc); | ||
540 | goto exit_free_irq; | 541 | goto exit_free_irq; |
541 | } | 542 | } |
542 | 543 | ||
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index 31e649a9ff71..1c81174595b3 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -807,14 +807,6 @@ config BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | |||
807 | depends on SOC_AU1200 && BLK_DEV_IDE_AU1XXX | 807 | depends on SOC_AU1200 && BLK_DEV_IDE_AU1XXX |
808 | endchoice | 808 | endchoice |
809 | 809 | ||
810 | config BLK_DEV_IDE_AU1XXX_BURSTABLE_ON | ||
811 | bool "Enable burstable Mode on DbDMA" | ||
812 | default false | ||
813 | depends BLK_DEV_IDE_AU1XXX | ||
814 | help | ||
815 | This option enable the burstable Flag on DbDMA controller | ||
816 | (cf. "AMD Alchemy 'Au1200' Processor Data Book - PRELIMINARY"). | ||
817 | |||
818 | config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ | 810 | config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ |
819 | int "Maximum transfer size (KB) per request (up to 128)" | 811 | int "Maximum transfer size (KB) per request (up to 128)" |
820 | default "128" | 812 | default "128" |
@@ -940,7 +932,7 @@ config BLK_DEV_Q40IDE | |||
940 | 932 | ||
941 | config BLK_DEV_MPC8xx_IDE | 933 | config BLK_DEV_MPC8xx_IDE |
942 | bool "MPC8xx IDE support" | 934 | bool "MPC8xx IDE support" |
943 | depends on 8xx | 935 | depends on 8xx && IDE=y && BLK_DEV_IDE=y |
944 | help | 936 | help |
945 | This option provides support for IDE on Motorola MPC8xx Systems. | 937 | This option provides support for IDE on Motorola MPC8xx Systems. |
946 | Please see 'Type of MPC8xx IDE interface' for details. | 938 | Please see 'Type of MPC8xx IDE interface' for details. |
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 9455e42abb23..b4d7a3efb90f 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c | |||
@@ -1292,7 +1292,6 @@ static ide_startstop_t cdrom_start_seek (ide_drive_t *drive, unsigned int block) | |||
1292 | struct cdrom_info *info = drive->driver_data; | 1292 | struct cdrom_info *info = drive->driver_data; |
1293 | 1293 | ||
1294 | info->dma = 0; | 1294 | info->dma = 0; |
1295 | info->cmd = 0; | ||
1296 | info->start_seek = jiffies; | 1295 | info->start_seek = jiffies; |
1297 | return cdrom_start_packet_command(drive, 0, cdrom_start_seek_continuation); | 1296 | return cdrom_start_packet_command(drive, 0, cdrom_start_seek_continuation); |
1298 | } | 1297 | } |
@@ -1344,8 +1343,6 @@ static ide_startstop_t cdrom_start_read (ide_drive_t *drive, unsigned int block) | |||
1344 | (rq->nr_sectors & (sectors_per_frame - 1))) | 1343 | (rq->nr_sectors & (sectors_per_frame - 1))) |
1345 | info->dma = 0; | 1344 | info->dma = 0; |
1346 | 1345 | ||
1347 | info->cmd = READ; | ||
1348 | |||
1349 | /* Start sending the read request to the drive. */ | 1346 | /* Start sending the read request to the drive. */ |
1350 | return cdrom_start_packet_command(drive, 32768, cdrom_start_read_continuation); | 1347 | return cdrom_start_packet_command(drive, 32768, cdrom_start_read_continuation); |
1351 | } | 1348 | } |
@@ -1484,7 +1481,6 @@ static ide_startstop_t cdrom_do_packet_command (ide_drive_t *drive) | |||
1484 | struct cdrom_info *info = drive->driver_data; | 1481 | struct cdrom_info *info = drive->driver_data; |
1485 | 1482 | ||
1486 | info->dma = 0; | 1483 | info->dma = 0; |
1487 | info->cmd = 0; | ||
1488 | rq->flags &= ~REQ_FAILED; | 1484 | rq->flags &= ~REQ_FAILED; |
1489 | len = rq->data_len; | 1485 | len = rq->data_len; |
1490 | 1486 | ||
@@ -1891,7 +1887,6 @@ static ide_startstop_t cdrom_start_write(ide_drive_t *drive, struct request *rq) | |||
1891 | /* use dma, if possible. we don't need to check more, since we | 1887 | /* use dma, if possible. we don't need to check more, since we |
1892 | * know that the transfer is always (at least!) frame aligned */ | 1888 | * know that the transfer is always (at least!) frame aligned */ |
1893 | info->dma = drive->using_dma ? 1 : 0; | 1889 | info->dma = drive->using_dma ? 1 : 0; |
1894 | info->cmd = WRITE; | ||
1895 | 1890 | ||
1896 | info->devinfo.media_written = 1; | 1891 | info->devinfo.media_written = 1; |
1897 | 1892 | ||
@@ -1916,7 +1911,6 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq) | |||
1916 | rq->flags |= REQ_QUIET; | 1911 | rq->flags |= REQ_QUIET; |
1917 | 1912 | ||
1918 | info->dma = 0; | 1913 | info->dma = 0; |
1919 | info->cmd = 0; | ||
1920 | 1914 | ||
1921 | /* | 1915 | /* |
1922 | * sg request | 1916 | * sg request |
@@ -1925,7 +1919,6 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq) | |||
1925 | int mask = drive->queue->dma_alignment; | 1919 | int mask = drive->queue->dma_alignment; |
1926 | unsigned long addr = (unsigned long) page_address(bio_page(rq->bio)); | 1920 | unsigned long addr = (unsigned long) page_address(bio_page(rq->bio)); |
1927 | 1921 | ||
1928 | info->cmd = rq_data_dir(rq); | ||
1929 | info->dma = drive->using_dma; | 1922 | info->dma = drive->using_dma; |
1930 | 1923 | ||
1931 | /* | 1924 | /* |
diff --git a/drivers/ide/ide-cd.h b/drivers/ide/ide-cd.h index 7ca3e5afc665..ad1f2ed14a37 100644 --- a/drivers/ide/ide-cd.h +++ b/drivers/ide/ide-cd.h | |||
@@ -480,7 +480,6 @@ struct cdrom_info { | |||
480 | 480 | ||
481 | struct request request_sense_request; | 481 | struct request request_sense_request; |
482 | int dma; | 482 | int dma; |
483 | int cmd; | ||
484 | unsigned long last_block; | 483 | unsigned long last_block; |
485 | unsigned long start_seek; | 484 | unsigned long start_seek; |
486 | /* Buffer to hold mechanism status and changer slot table. */ | 485 | /* Buffer to hold mechanism status and changer slot table. */ |
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index f4e3d3527b0e..449522f0540c 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c | |||
@@ -1034,12 +1034,12 @@ static int ide_disk_remove(struct device *dev) | |||
1034 | struct ide_disk_obj *idkp = drive->driver_data; | 1034 | struct ide_disk_obj *idkp = drive->driver_data; |
1035 | struct gendisk *g = idkp->disk; | 1035 | struct gendisk *g = idkp->disk; |
1036 | 1036 | ||
1037 | ide_cacheflush_p(drive); | ||
1038 | |||
1039 | ide_unregister_subdriver(drive, idkp->driver); | 1037 | ide_unregister_subdriver(drive, idkp->driver); |
1040 | 1038 | ||
1041 | del_gendisk(g); | 1039 | del_gendisk(g); |
1042 | 1040 | ||
1041 | ide_cacheflush_p(drive); | ||
1042 | |||
1043 | ide_disk_put(idkp); | 1043 | ide_disk_put(idkp); |
1044 | 1044 | ||
1045 | return 0; | 1045 | return 0; |
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index 1e1531334c25..0523da77425a 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
@@ -90,11 +90,6 @@ | |||
90 | #include <asm/io.h> | 90 | #include <asm/io.h> |
91 | #include <asm/irq.h> | 91 | #include <asm/irq.h> |
92 | 92 | ||
93 | struct drive_list_entry { | ||
94 | const char *id_model; | ||
95 | const char *id_firmware; | ||
96 | }; | ||
97 | |||
98 | static const struct drive_list_entry drive_whitelist [] = { | 93 | static const struct drive_list_entry drive_whitelist [] = { |
99 | 94 | ||
100 | { "Micropolis 2112A" , "ALL" }, | 95 | { "Micropolis 2112A" , "ALL" }, |
@@ -139,7 +134,7 @@ static const struct drive_list_entry drive_blacklist [] = { | |||
139 | }; | 134 | }; |
140 | 135 | ||
141 | /** | 136 | /** |
142 | * in_drive_list - look for drive in black/white list | 137 | * ide_in_drive_list - look for drive in black/white list |
143 | * @id: drive identifier | 138 | * @id: drive identifier |
144 | * @drive_table: list to inspect | 139 | * @drive_table: list to inspect |
145 | * | 140 | * |
@@ -147,7 +142,7 @@ static const struct drive_list_entry drive_blacklist [] = { | |||
147 | * Returns 1 if the drive is found in the table. | 142 | * Returns 1 if the drive is found in the table. |
148 | */ | 143 | */ |
149 | 144 | ||
150 | static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *drive_table) | 145 | int ide_in_drive_list(struct hd_driveid *id, const struct drive_list_entry *drive_table) |
151 | { | 146 | { |
152 | for ( ; drive_table->id_model ; drive_table++) | 147 | for ( ; drive_table->id_model ; drive_table++) |
153 | if ((!strcmp(drive_table->id_model, id->model)) && | 148 | if ((!strcmp(drive_table->id_model, id->model)) && |
@@ -157,6 +152,8 @@ static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *d | |||
157 | return 0; | 152 | return 0; |
158 | } | 153 | } |
159 | 154 | ||
155 | EXPORT_SYMBOL_GPL(ide_in_drive_list); | ||
156 | |||
160 | /** | 157 | /** |
161 | * ide_dma_intr - IDE DMA interrupt handler | 158 | * ide_dma_intr - IDE DMA interrupt handler |
162 | * @drive: the drive the interrupt is for | 159 | * @drive: the drive the interrupt is for |
@@ -663,7 +660,7 @@ int __ide_dma_bad_drive (ide_drive_t *drive) | |||
663 | { | 660 | { |
664 | struct hd_driveid *id = drive->id; | 661 | struct hd_driveid *id = drive->id; |
665 | 662 | ||
666 | int blacklist = in_drive_list(id, drive_blacklist); | 663 | int blacklist = ide_in_drive_list(id, drive_blacklist); |
667 | if (blacklist) { | 664 | if (blacklist) { |
668 | printk(KERN_WARNING "%s: Disabling (U)DMA for %s (blacklisted)\n", | 665 | printk(KERN_WARNING "%s: Disabling (U)DMA for %s (blacklisted)\n", |
669 | drive->name, id->model); | 666 | drive->name, id->model); |
@@ -677,7 +674,7 @@ EXPORT_SYMBOL(__ide_dma_bad_drive); | |||
677 | int __ide_dma_good_drive (ide_drive_t *drive) | 674 | int __ide_dma_good_drive (ide_drive_t *drive) |
678 | { | 675 | { |
679 | struct hd_driveid *id = drive->id; | 676 | struct hd_driveid *id = drive->id; |
680 | return in_drive_list(id, drive_whitelist); | 677 | return ide_in_drive_list(id, drive_whitelist); |
681 | } | 678 | } |
682 | 679 | ||
683 | EXPORT_SYMBOL(__ide_dma_good_drive); | 680 | EXPORT_SYMBOL(__ide_dma_good_drive); |
diff --git a/drivers/ide/mips/Makefile b/drivers/ide/mips/Makefile index 578e52a59588..677c7b2bac92 100644 --- a/drivers/ide/mips/Makefile +++ b/drivers/ide/mips/Makefile | |||
@@ -1 +1,4 @@ | |||
1 | obj-$(CONFIG_BLK_DEV_IDE_SWARM) += swarm.o | 1 | obj-$(CONFIG_BLK_DEV_IDE_SWARM) += swarm.o |
2 | obj-$(CONFIG_BLK_DEV_IDE_AU1XXX) += au1xxx-ide.o | ||
3 | |||
4 | EXTRA_CFLAGS := -Idrivers/ide | ||
diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c index 2b6327c576b9..32431dcf5d8e 100644 --- a/drivers/ide/mips/au1xxx-ide.c +++ b/drivers/ide/mips/au1xxx-ide.c | |||
@@ -31,865 +31,638 @@ | |||
31 | */ | 31 | */ |
32 | #undef REALLY_SLOW_IO /* most systems can safely undef this */ | 32 | #undef REALLY_SLOW_IO /* most systems can safely undef this */ |
33 | 33 | ||
34 | #include <linux/config.h> /* for CONFIG_BLK_DEV_IDEPCI */ | ||
35 | #include <linux/types.h> | 34 | #include <linux/types.h> |
36 | #include <linux/module.h> | 35 | #include <linux/module.h> |
37 | #include <linux/kernel.h> | 36 | #include <linux/kernel.h> |
38 | #include <linux/delay.h> | 37 | #include <linux/delay.h> |
39 | #include <linux/timer.h> | 38 | #include <linux/platform_device.h> |
40 | #include <linux/mm.h> | 39 | |
41 | #include <linux/ioport.h> | ||
42 | #include <linux/hdreg.h> | ||
43 | #include <linux/init.h> | 40 | #include <linux/init.h> |
44 | #include <linux/ide.h> | 41 | #include <linux/ide.h> |
45 | #include <linux/sysdev.h> | 42 | #include <linux/sysdev.h> |
46 | 43 | ||
47 | #include <linux/dma-mapping.h> | 44 | #include <linux/dma-mapping.h> |
48 | 45 | ||
46 | #include "ide-timing.h" | ||
47 | |||
49 | #include <asm/io.h> | 48 | #include <asm/io.h> |
50 | #include <asm/mach-au1x00/au1xxx.h> | 49 | #include <asm/mach-au1x00/au1xxx.h> |
51 | #include <asm/mach-au1x00/au1xxx_dbdma.h> | 50 | #include <asm/mach-au1x00/au1xxx_dbdma.h> |
52 | 51 | ||
53 | #if CONFIG_PM | ||
54 | #include <asm/mach-au1x00/au1xxx_pm.h> | ||
55 | #endif | ||
56 | |||
57 | #include <asm/mach-au1x00/au1xxx_ide.h> | 52 | #include <asm/mach-au1x00/au1xxx_ide.h> |
58 | 53 | ||
59 | #define DRV_NAME "au1200-ide" | 54 | #define DRV_NAME "au1200-ide" |
60 | #define DRV_VERSION "1.0" | 55 | #define DRV_VERSION "1.0" |
61 | #define DRV_AUTHOR "AMD PCS / Pete Popov <ppopov@embeddedalley.com>" | 56 | #define DRV_AUTHOR "Enrico Walther <enrico.walther@amd.com> / Pete Popov <ppopov@embeddedalley.com>" |
62 | #define DRV_DESC "Au1200 IDE" | ||
63 | |||
64 | static _auide_hwif auide_hwif; | ||
65 | static spinlock_t ide_tune_drive_spin_lock = SPIN_LOCK_UNLOCKED; | ||
66 | static spinlock_t ide_tune_chipset_spin_lock = SPIN_LOCK_UNLOCKED; | ||
67 | static int dbdma_init_done = 0; | ||
68 | |||
69 | /* | ||
70 | * local I/O functions | ||
71 | */ | ||
72 | u8 auide_inb(unsigned long port) | ||
73 | { | ||
74 | return (au_readb(port)); | ||
75 | } | ||
76 | 57 | ||
77 | u16 auide_inw(unsigned long port) | 58 | /* enable the burstmode in the dbdma */ |
78 | { | 59 | #define IDE_AU1XXX_BURSTMODE 1 |
79 | return (au_readw(port)); | ||
80 | } | ||
81 | 60 | ||
82 | u32 auide_inl(unsigned long port) | 61 | static _auide_hwif auide_hwif; |
83 | { | 62 | static int dbdma_init_done; |
84 | return (au_readl(port)); | ||
85 | } | ||
86 | 63 | ||
87 | void auide_insw(unsigned long port, void *addr, u32 count) | ||
88 | { | ||
89 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA) | 64 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA) |
90 | 65 | ||
91 | _auide_hwif *ahwif = &auide_hwif; | 66 | void auide_insw(unsigned long port, void *addr, u32 count) |
92 | chan_tab_t *ctp; | ||
93 | au1x_ddma_desc_t *dp; | ||
94 | |||
95 | if(!put_dest_flags(ahwif->rx_chan, (void*)addr, count << 1, | ||
96 | DDMA_FLAGS_NOIE)) { | ||
97 | printk(KERN_ERR "%s failed %d\n", __FUNCTION__, __LINE__); | ||
98 | return; | ||
99 | } | ||
100 | ctp = *((chan_tab_t **)ahwif->rx_chan); | ||
101 | dp = ctp->cur_ptr; | ||
102 | while (dp->dscr_cmd0 & DSCR_CMD0_V) | ||
103 | ; | ||
104 | ctp->cur_ptr = au1xxx_ddma_get_nextptr_virt(dp); | ||
105 | #else | ||
106 | while (count--) | ||
107 | { | ||
108 | *(u16 *)addr = au_readw(port); | ||
109 | addr +=2 ; | ||
110 | } | ||
111 | #endif | ||
112 | } | ||
113 | |||
114 | void auide_insl(unsigned long port, void *addr, u32 count) | ||
115 | { | ||
116 | while (count--) | ||
117 | { | ||
118 | *(u32 *)addr = au_readl(port); | ||
119 | /* NOTE: For IDE interfaces over PCMCIA, | ||
120 | * 32-bit access does not work | ||
121 | */ | ||
122 | addr += 4; | ||
123 | } | ||
124 | } | ||
125 | |||
126 | void auide_outb(u8 addr, unsigned long port) | ||
127 | { | 67 | { |
128 | return (au_writeb(addr, port)); | 68 | _auide_hwif *ahwif = &auide_hwif; |
129 | } | 69 | chan_tab_t *ctp; |
70 | au1x_ddma_desc_t *dp; | ||
130 | 71 | ||
131 | void auide_outbsync(ide_drive_t *drive, u8 addr, unsigned long port) | 72 | if(!put_dest_flags(ahwif->rx_chan, (void*)addr, count << 1, |
132 | { | 73 | DDMA_FLAGS_NOIE)) { |
133 | return (au_writeb(addr, port)); | 74 | printk(KERN_ERR "%s failed %d\n", __FUNCTION__, __LINE__); |
75 | return; | ||
76 | } | ||
77 | ctp = *((chan_tab_t **)ahwif->rx_chan); | ||
78 | dp = ctp->cur_ptr; | ||
79 | while (dp->dscr_cmd0 & DSCR_CMD0_V) | ||
80 | ; | ||
81 | ctp->cur_ptr = au1xxx_ddma_get_nextptr_virt(dp); | ||
134 | } | 82 | } |
135 | 83 | ||
136 | void auide_outw(u16 addr, unsigned long port) | 84 | void auide_outsw(unsigned long port, void *addr, u32 count) |
137 | { | 85 | { |
138 | return (au_writew(addr, port)); | 86 | _auide_hwif *ahwif = &auide_hwif; |
139 | } | 87 | chan_tab_t *ctp; |
88 | au1x_ddma_desc_t *dp; | ||
140 | 89 | ||
141 | void auide_outl(u32 addr, unsigned long port) | 90 | if(!put_source_flags(ahwif->tx_chan, (void*)addr, |
142 | { | 91 | count << 1, DDMA_FLAGS_NOIE)) { |
143 | return (au_writel(addr, port)); | 92 | printk(KERN_ERR "%s failed %d\n", __FUNCTION__, __LINE__); |
93 | return; | ||
94 | } | ||
95 | ctp = *((chan_tab_t **)ahwif->tx_chan); | ||
96 | dp = ctp->cur_ptr; | ||
97 | while (dp->dscr_cmd0 & DSCR_CMD0_V) | ||
98 | ; | ||
99 | ctp->cur_ptr = au1xxx_ddma_get_nextptr_virt(dp); | ||
144 | } | 100 | } |
145 | 101 | ||
146 | void auide_outsw(unsigned long port, void *addr, u32 count) | ||
147 | { | ||
148 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA) | ||
149 | _auide_hwif *ahwif = &auide_hwif; | ||
150 | chan_tab_t *ctp; | ||
151 | au1x_ddma_desc_t *dp; | ||
152 | |||
153 | if(!put_source_flags(ahwif->tx_chan, (void*)addr, | ||
154 | count << 1, DDMA_FLAGS_NOIE)) { | ||
155 | printk(KERN_ERR "%s failed %d\n", __FUNCTION__, __LINE__); | ||
156 | return; | ||
157 | } | ||
158 | ctp = *((chan_tab_t **)ahwif->tx_chan); | ||
159 | dp = ctp->cur_ptr; | ||
160 | while (dp->dscr_cmd0 & DSCR_CMD0_V) | ||
161 | ; | ||
162 | ctp->cur_ptr = au1xxx_ddma_get_nextptr_virt(dp); | ||
163 | #else | ||
164 | while (count--) | ||
165 | { | ||
166 | au_writew(*(u16 *)addr, port); | ||
167 | addr += 2; | ||
168 | } | ||
169 | #endif | 102 | #endif |
170 | } | ||
171 | |||
172 | void auide_outsl(unsigned long port, void *addr, u32 count) | ||
173 | { | ||
174 | while (count--) | ||
175 | { | ||
176 | au_writel(*(u32 *)addr, port); | ||
177 | /* NOTE: For IDE interfaces over PCMCIA, | ||
178 | * 32-bit access does not work | ||
179 | */ | ||
180 | addr += 4; | ||
181 | } | ||
182 | } | ||
183 | 103 | ||
184 | static void auide_tune_drive(ide_drive_t *drive, byte pio) | 104 | static void auide_tune_drive(ide_drive_t *drive, byte pio) |
185 | { | 105 | { |
186 | int mem_sttime; | 106 | int mem_sttime; |
187 | int mem_stcfg; | 107 | int mem_stcfg; |
188 | unsigned long flags; | 108 | u8 speed; |
189 | u8 speed; | 109 | |
190 | 110 | /* get the best pio mode for the drive */ | |
191 | /* get the best pio mode for the drive */ | 111 | pio = ide_get_best_pio_mode(drive, pio, 4, NULL); |
192 | pio = ide_get_best_pio_mode(drive, pio, 4, NULL); | 112 | |
193 | 113 | printk(KERN_INFO "%s: setting Au1XXX IDE to PIO mode%d\n", | |
194 | printk("%s: setting Au1XXX IDE to PIO mode%d\n", | 114 | drive->name, pio); |
195 | drive->name, pio); | 115 | |
196 | 116 | mem_sttime = 0; | |
197 | spin_lock_irqsave(&ide_tune_drive_spin_lock, flags); | 117 | mem_stcfg = au_readl(MEM_STCFG2); |
198 | 118 | ||
199 | mem_sttime = 0; | 119 | /* set pio mode! */ |
200 | mem_stcfg = au_readl(MEM_STCFG2); | 120 | switch(pio) { |
201 | 121 | case 0: | |
202 | /* set pio mode! */ | 122 | mem_sttime = SBC_IDE_TIMING(PIO0); |
203 | switch(pio) { | 123 | |
204 | case 0: | 124 | /* set configuration for RCS2# */ |
205 | /* set timing parameters for RCS2# */ | 125 | mem_stcfg |= TS_MASK; |
206 | mem_sttime = SBC_IDE_PIO0_TWCS | 126 | mem_stcfg &= ~TCSOE_MASK; |
207 | | SBC_IDE_PIO0_TCSH | 127 | mem_stcfg &= ~TOECS_MASK; |
208 | | SBC_IDE_PIO0_TCSOFF | 128 | mem_stcfg |= SBC_IDE_PIO0_TCSOE | SBC_IDE_PIO0_TOECS; |
209 | | SBC_IDE_PIO0_TWP | 129 | break; |
210 | | SBC_IDE_PIO0_TCSW | 130 | |
211 | | SBC_IDE_PIO0_TPM | 131 | case 1: |
212 | | SBC_IDE_PIO0_TA; | 132 | mem_sttime = SBC_IDE_TIMING(PIO1); |
213 | /* set configuration for RCS2# */ | 133 | |
214 | mem_stcfg |= TS_MASK; | 134 | /* set configuration for RCS2# */ |
215 | mem_stcfg &= ~TCSOE_MASK; | 135 | mem_stcfg |= TS_MASK; |
216 | mem_stcfg &= ~TOECS_MASK; | 136 | mem_stcfg &= ~TCSOE_MASK; |
217 | mem_stcfg |= SBC_IDE_PIO0_TCSOE | SBC_IDE_PIO0_TOECS; | 137 | mem_stcfg &= ~TOECS_MASK; |
218 | 138 | mem_stcfg |= SBC_IDE_PIO1_TCSOE | SBC_IDE_PIO1_TOECS; | |
219 | au_writel(mem_sttime,MEM_STTIME2); | 139 | break; |
220 | au_writel(mem_stcfg,MEM_STCFG2); | 140 | |
221 | break; | 141 | case 2: |
222 | 142 | mem_sttime = SBC_IDE_TIMING(PIO2); | |
223 | case 1: | 143 | |
224 | /* set timing parameters for RCS2# */ | 144 | /* set configuration for RCS2# */ |
225 | mem_sttime = SBC_IDE_PIO1_TWCS | 145 | mem_stcfg &= ~TS_MASK; |
226 | | SBC_IDE_PIO1_TCSH | 146 | mem_stcfg &= ~TCSOE_MASK; |
227 | | SBC_IDE_PIO1_TCSOFF | 147 | mem_stcfg &= ~TOECS_MASK; |
228 | | SBC_IDE_PIO1_TWP | 148 | mem_stcfg |= SBC_IDE_PIO2_TCSOE | SBC_IDE_PIO2_TOECS; |
229 | | SBC_IDE_PIO1_TCSW | 149 | break; |
230 | | SBC_IDE_PIO1_TPM | 150 | |
231 | | SBC_IDE_PIO1_TA; | 151 | case 3: |
232 | /* set configuration for RCS2# */ | 152 | mem_sttime = SBC_IDE_TIMING(PIO3); |
233 | mem_stcfg |= TS_MASK; | 153 | |
234 | mem_stcfg &= ~TCSOE_MASK; | 154 | /* set configuration for RCS2# */ |
235 | mem_stcfg &= ~TOECS_MASK; | 155 | mem_stcfg &= ~TS_MASK; |
236 | mem_stcfg |= SBC_IDE_PIO1_TCSOE | SBC_IDE_PIO1_TOECS; | 156 | mem_stcfg &= ~TCSOE_MASK; |
237 | break; | 157 | mem_stcfg &= ~TOECS_MASK; |
238 | 158 | mem_stcfg |= SBC_IDE_PIO3_TCSOE | SBC_IDE_PIO3_TOECS; | |
239 | case 2: | 159 | |
240 | /* set timing parameters for RCS2# */ | 160 | break; |
241 | mem_sttime = SBC_IDE_PIO2_TWCS | 161 | |
242 | | SBC_IDE_PIO2_TCSH | 162 | case 4: |
243 | | SBC_IDE_PIO2_TCSOFF | 163 | mem_sttime = SBC_IDE_TIMING(PIO4); |
244 | | SBC_IDE_PIO2_TWP | 164 | |
245 | | SBC_IDE_PIO2_TCSW | 165 | /* set configuration for RCS2# */ |
246 | | SBC_IDE_PIO2_TPM | 166 | mem_stcfg &= ~TS_MASK; |
247 | | SBC_IDE_PIO2_TA; | 167 | mem_stcfg &= ~TCSOE_MASK; |
248 | /* set configuration for RCS2# */ | 168 | mem_stcfg &= ~TOECS_MASK; |
249 | mem_stcfg &= ~TS_MASK; | 169 | mem_stcfg |= SBC_IDE_PIO4_TCSOE | SBC_IDE_PIO4_TOECS; |
250 | mem_stcfg &= ~TCSOE_MASK; | 170 | break; |
251 | mem_stcfg &= ~TOECS_MASK; | 171 | } |
252 | mem_stcfg |= SBC_IDE_PIO2_TCSOE | SBC_IDE_PIO2_TOECS; | 172 | |
253 | break; | 173 | au_writel(mem_sttime,MEM_STTIME2); |
254 | 174 | au_writel(mem_stcfg,MEM_STCFG2); | |
255 | case 3: | 175 | |
256 | /* set timing parameters for RCS2# */ | 176 | speed = pio + XFER_PIO_0; |
257 | mem_sttime = SBC_IDE_PIO3_TWCS | 177 | ide_config_drive_speed(drive, speed); |
258 | | SBC_IDE_PIO3_TCSH | ||
259 | | SBC_IDE_PIO3_TCSOFF | ||
260 | | SBC_IDE_PIO3_TWP | ||
261 | | SBC_IDE_PIO3_TCSW | ||
262 | | SBC_IDE_PIO3_TPM | ||
263 | | SBC_IDE_PIO3_TA; | ||
264 | /* set configuration for RCS2# */ | ||
265 | mem_stcfg |= TS_MASK; | ||
266 | mem_stcfg &= ~TS_MASK; | ||
267 | mem_stcfg &= ~TCSOE_MASK; | ||
268 | mem_stcfg &= ~TOECS_MASK; | ||
269 | mem_stcfg |= SBC_IDE_PIO3_TCSOE | SBC_IDE_PIO3_TOECS; | ||
270 | |||
271 | break; | ||
272 | |||
273 | case 4: | ||
274 | /* set timing parameters for RCS2# */ | ||
275 | mem_sttime = SBC_IDE_PIO4_TWCS | ||
276 | | SBC_IDE_PIO4_TCSH | ||
277 | | SBC_IDE_PIO4_TCSOFF | ||
278 | | SBC_IDE_PIO4_TWP | ||
279 | | SBC_IDE_PIO4_TCSW | ||
280 | | SBC_IDE_PIO4_TPM | ||
281 | | SBC_IDE_PIO4_TA; | ||
282 | /* set configuration for RCS2# */ | ||
283 | mem_stcfg &= ~TS_MASK; | ||
284 | mem_stcfg &= ~TCSOE_MASK; | ||
285 | mem_stcfg &= ~TOECS_MASK; | ||
286 | mem_stcfg |= SBC_IDE_PIO4_TCSOE | SBC_IDE_PIO4_TOECS; | ||
287 | break; | ||
288 | } | ||
289 | |||
290 | au_writel(mem_sttime,MEM_STTIME2); | ||
291 | au_writel(mem_stcfg,MEM_STCFG2); | ||
292 | |||
293 | spin_unlock_irqrestore(&ide_tune_drive_spin_lock, flags); | ||
294 | |||
295 | speed = pio + XFER_PIO_0; | ||
296 | ide_config_drive_speed(drive, speed); | ||
297 | } | 178 | } |
298 | 179 | ||
299 | static int auide_tune_chipset (ide_drive_t *drive, u8 speed) | 180 | static int auide_tune_chipset (ide_drive_t *drive, u8 speed) |
300 | { | 181 | { |
301 | u8 mode = 0; | 182 | int mem_sttime; |
302 | int mem_sttime; | 183 | int mem_stcfg; |
303 | int mem_stcfg; | 184 | unsigned long mode; |
304 | unsigned long flags; | 185 | |
305 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | 186 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA |
306 | struct hd_driveid *id = drive->id; | 187 | if (ide_use_dma(drive)) |
307 | 188 | mode = ide_dma_speed(drive, 0); | |
308 | /* | ||
309 | * Now see what the current drive is capable of, | ||
310 | * selecting UDMA only if the mate said it was ok. | ||
311 | */ | ||
312 | if (id && (id->capability & 1) && drive->autodma && | ||
313 | !__ide_dma_bad_drive(drive)) { | ||
314 | if (!mode && (id->field_valid & 2) && (id->dma_mword & 7)) { | ||
315 | if (id->dma_mword & 4) | ||
316 | mode = XFER_MW_DMA_2; | ||
317 | else if (id->dma_mword & 2) | ||
318 | mode = XFER_MW_DMA_1; | ||
319 | else if (id->dma_mword & 1) | ||
320 | mode = XFER_MW_DMA_0; | ||
321 | } | ||
322 | } | ||
323 | #endif | 189 | #endif |
324 | 190 | ||
325 | spin_lock_irqsave(&ide_tune_chipset_spin_lock, flags); | 191 | mem_sttime = 0; |
192 | mem_stcfg = au_readl(MEM_STCFG2); | ||
326 | 193 | ||
327 | mem_sttime = 0; | 194 | if (speed >= XFER_PIO_0 && speed <= XFER_PIO_4) { |
328 | mem_stcfg = au_readl(MEM_STCFG2); | 195 | auide_tune_drive(drive, speed - XFER_PIO_0); |
329 | 196 | return 0; | |
330 | switch(speed) { | 197 | } |
331 | case XFER_PIO_4: | 198 | |
332 | case XFER_PIO_3: | 199 | switch(speed) { |
333 | case XFER_PIO_2: | ||
334 | case XFER_PIO_1: | ||
335 | case XFER_PIO_0: | ||
336 | auide_tune_drive(drive, (speed - XFER_PIO_0)); | ||
337 | break; | ||
338 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | 200 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA |
339 | case XFER_MW_DMA_2: | 201 | case XFER_MW_DMA_2: |
340 | /* set timing parameters for RCS2# */ | 202 | mem_sttime = SBC_IDE_TIMING(MDMA2); |
341 | mem_sttime = SBC_IDE_MDMA2_TWCS | 203 | |
342 | | SBC_IDE_MDMA2_TCSH | 204 | /* set configuration for RCS2# */ |
343 | | SBC_IDE_MDMA2_TCSOFF | 205 | mem_stcfg &= ~TS_MASK; |
344 | | SBC_IDE_MDMA2_TWP | 206 | mem_stcfg &= ~TCSOE_MASK; |
345 | | SBC_IDE_MDMA2_TCSW | 207 | mem_stcfg &= ~TOECS_MASK; |
346 | | SBC_IDE_MDMA2_TPM | 208 | mem_stcfg |= SBC_IDE_MDMA2_TCSOE | SBC_IDE_MDMA2_TOECS; |
347 | | SBC_IDE_MDMA2_TA; | 209 | |
348 | /* set configuration for RCS2# */ | 210 | mode = XFER_MW_DMA_2; |
349 | mem_stcfg &= ~TS_MASK; | 211 | break; |
350 | mem_stcfg &= ~TCSOE_MASK; | 212 | case XFER_MW_DMA_1: |
351 | mem_stcfg &= ~TOECS_MASK; | 213 | mem_sttime = SBC_IDE_TIMING(MDMA1); |
352 | mem_stcfg |= SBC_IDE_MDMA2_TCSOE | SBC_IDE_MDMA2_TOECS; | 214 | |
353 | 215 | /* set configuration for RCS2# */ | |
354 | mode = XFER_MW_DMA_2; | 216 | mem_stcfg &= ~TS_MASK; |
355 | break; | 217 | mem_stcfg &= ~TCSOE_MASK; |
356 | case XFER_MW_DMA_1: | 218 | mem_stcfg &= ~TOECS_MASK; |
357 | /* set timing parameters for RCS2# */ | 219 | mem_stcfg |= SBC_IDE_MDMA1_TCSOE | SBC_IDE_MDMA1_TOECS; |
358 | mem_sttime = SBC_IDE_MDMA1_TWCS | 220 | |
359 | | SBC_IDE_MDMA1_TCSH | 221 | mode = XFER_MW_DMA_1; |
360 | | SBC_IDE_MDMA1_TCSOFF | 222 | break; |
361 | | SBC_IDE_MDMA1_TWP | 223 | case XFER_MW_DMA_0: |
362 | | SBC_IDE_MDMA1_TCSW | 224 | mem_sttime = SBC_IDE_TIMING(MDMA0); |
363 | | SBC_IDE_MDMA1_TPM | 225 | |
364 | | SBC_IDE_MDMA1_TA; | 226 | /* set configuration for RCS2# */ |
365 | /* set configuration for RCS2# */ | 227 | mem_stcfg |= TS_MASK; |
366 | mem_stcfg &= ~TS_MASK; | 228 | mem_stcfg &= ~TCSOE_MASK; |
367 | mem_stcfg &= ~TCSOE_MASK; | 229 | mem_stcfg &= ~TOECS_MASK; |
368 | mem_stcfg &= ~TOECS_MASK; | 230 | mem_stcfg |= SBC_IDE_MDMA0_TCSOE | SBC_IDE_MDMA0_TOECS; |
369 | mem_stcfg |= SBC_IDE_MDMA1_TCSOE | SBC_IDE_MDMA1_TOECS; | 231 | |
370 | 232 | mode = XFER_MW_DMA_0; | |
371 | mode = XFER_MW_DMA_1; | 233 | break; |
372 | break; | ||
373 | case XFER_MW_DMA_0: | ||
374 | /* set timing parameters for RCS2# */ | ||
375 | mem_sttime = SBC_IDE_MDMA0_TWCS | ||
376 | | SBC_IDE_MDMA0_TCSH | ||
377 | | SBC_IDE_MDMA0_TCSOFF | ||
378 | | SBC_IDE_MDMA0_TWP | ||
379 | | SBC_IDE_MDMA0_TCSW | ||
380 | | SBC_IDE_MDMA0_TPM | ||
381 | | SBC_IDE_MDMA0_TA; | ||
382 | /* set configuration for RCS2# */ | ||
383 | mem_stcfg |= TS_MASK; | ||
384 | mem_stcfg &= ~TCSOE_MASK; | ||
385 | mem_stcfg &= ~TOECS_MASK; | ||
386 | mem_stcfg |= SBC_IDE_MDMA0_TCSOE | SBC_IDE_MDMA0_TOECS; | ||
387 | |||
388 | mode = XFER_MW_DMA_0; | ||
389 | break; | ||
390 | #endif | 234 | #endif |
391 | default: | 235 | default: |
392 | return 1; | 236 | return 1; |
393 | } | 237 | } |
394 | 238 | ||
395 | /* | 239 | if (ide_config_drive_speed(drive, mode)) |
396 | * Tell the drive to switch to the new mode; abort on failure. | 240 | return 1; |
397 | */ | ||
398 | if (!mode || ide_config_drive_speed(drive, mode)) | ||
399 | { | ||
400 | return 1; /* failure */ | ||
401 | } | ||
402 | |||
403 | |||
404 | au_writel(mem_sttime,MEM_STTIME2); | ||
405 | au_writel(mem_stcfg,MEM_STCFG2); | ||
406 | 241 | ||
407 | spin_unlock_irqrestore(&ide_tune_chipset_spin_lock, flags); | 242 | au_writel(mem_sttime,MEM_STTIME2); |
243 | au_writel(mem_stcfg,MEM_STCFG2); | ||
408 | 244 | ||
409 | return 0; | 245 | return 0; |
410 | } | 246 | } |
411 | 247 | ||
412 | /* | 248 | /* |
413 | * Multi-Word DMA + DbDMA functions | 249 | * Multi-Word DMA + DbDMA functions |
414 | */ | 250 | */ |
415 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | ||
416 | 251 | ||
417 | static int in_drive_list(struct hd_driveid *id, | 252 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA |
418 | const struct drive_list_entry *drive_table) | ||
419 | { | ||
420 | for ( ; drive_table->id_model ; drive_table++){ | ||
421 | if ((!strcmp(drive_table->id_model, id->model)) && | ||
422 | ((strstr(drive_table->id_firmware, id->fw_rev)) || | ||
423 | (!strcmp(drive_table->id_firmware, "ALL"))) | ||
424 | ) | ||
425 | return 1; | ||
426 | } | ||
427 | return 0; | ||
428 | } | ||
429 | 253 | ||
430 | static int auide_build_sglist(ide_drive_t *drive, struct request *rq) | 254 | static int auide_build_sglist(ide_drive_t *drive, struct request *rq) |
431 | { | 255 | { |
432 | ide_hwif_t *hwif = drive->hwif; | 256 | ide_hwif_t *hwif = drive->hwif; |
433 | _auide_hwif *ahwif = (_auide_hwif*)hwif->hwif_data; | 257 | _auide_hwif *ahwif = (_auide_hwif*)hwif->hwif_data; |
434 | struct scatterlist *sg = hwif->sg_table; | 258 | struct scatterlist *sg = hwif->sg_table; |
435 | 259 | ||
436 | ide_map_sg(drive, rq); | 260 | ide_map_sg(drive, rq); |
437 | 261 | ||
438 | if (rq_data_dir(rq) == READ) | 262 | if (rq_data_dir(rq) == READ) |
439 | hwif->sg_dma_direction = DMA_FROM_DEVICE; | 263 | hwif->sg_dma_direction = DMA_FROM_DEVICE; |
440 | else | 264 | else |
441 | hwif->sg_dma_direction = DMA_TO_DEVICE; | 265 | hwif->sg_dma_direction = DMA_TO_DEVICE; |
442 | 266 | ||
443 | return dma_map_sg(ahwif->dev, sg, hwif->sg_nents, | 267 | return dma_map_sg(ahwif->dev, sg, hwif->sg_nents, |
444 | hwif->sg_dma_direction); | 268 | hwif->sg_dma_direction); |
445 | } | 269 | } |
446 | 270 | ||
447 | static int auide_build_dmatable(ide_drive_t *drive) | 271 | static int auide_build_dmatable(ide_drive_t *drive) |
448 | { | 272 | { |
449 | int i, iswrite, count = 0; | 273 | int i, iswrite, count = 0; |
450 | ide_hwif_t *hwif = HWIF(drive); | 274 | ide_hwif_t *hwif = HWIF(drive); |
451 | 275 | ||
452 | struct request *rq = HWGROUP(drive)->rq; | 276 | struct request *rq = HWGROUP(drive)->rq; |
453 | 277 | ||
454 | _auide_hwif *ahwif = (_auide_hwif*)hwif->hwif_data; | 278 | _auide_hwif *ahwif = (_auide_hwif*)hwif->hwif_data; |
455 | struct scatterlist *sg; | 279 | struct scatterlist *sg; |
456 | 280 | ||
457 | iswrite = (rq_data_dir(rq) == WRITE); | 281 | iswrite = (rq_data_dir(rq) == WRITE); |
458 | /* Save for interrupt context */ | 282 | /* Save for interrupt context */ |
459 | ahwif->drive = drive; | 283 | ahwif->drive = drive; |
460 | 284 | ||
461 | /* Build sglist */ | 285 | /* Build sglist */ |
462 | hwif->sg_nents = i = auide_build_sglist(drive, rq); | 286 | hwif->sg_nents = i = auide_build_sglist(drive, rq); |
463 | 287 | ||
464 | if (!i) | 288 | if (!i) |
465 | return 0; | 289 | return 0; |
466 | 290 | ||
467 | /* fill the descriptors */ | 291 | /* fill the descriptors */ |
468 | sg = hwif->sg_table; | 292 | sg = hwif->sg_table; |
469 | while (i && sg_dma_len(sg)) { | 293 | while (i && sg_dma_len(sg)) { |
470 | u32 cur_addr; | 294 | u32 cur_addr; |
471 | u32 cur_len; | 295 | u32 cur_len; |
472 | 296 | ||
473 | cur_addr = sg_dma_address(sg); | 297 | cur_addr = sg_dma_address(sg); |
474 | cur_len = sg_dma_len(sg); | 298 | cur_len = sg_dma_len(sg); |
475 | 299 | ||
476 | while (cur_len) { | 300 | while (cur_len) { |
477 | u32 flags = DDMA_FLAGS_NOIE; | 301 | u32 flags = DDMA_FLAGS_NOIE; |
478 | unsigned int tc = (cur_len < 0xfe00)? cur_len: 0xfe00; | 302 | unsigned int tc = (cur_len < 0xfe00)? cur_len: 0xfe00; |
479 | 303 | ||
480 | if (++count >= PRD_ENTRIES) { | 304 | if (++count >= PRD_ENTRIES) { |
481 | printk(KERN_WARNING "%s: DMA table too small\n", | 305 | printk(KERN_WARNING "%s: DMA table too small\n", |
482 | drive->name); | 306 | drive->name); |
483 | goto use_pio_instead; | 307 | goto use_pio_instead; |
484 | } | 308 | } |
485 | 309 | ||
486 | /* Lets enable intr for the last descriptor only */ | 310 | /* Lets enable intr for the last descriptor only */ |
487 | if (1==i) | 311 | if (1==i) |
488 | flags = DDMA_FLAGS_IE; | 312 | flags = DDMA_FLAGS_IE; |
489 | else | 313 | else |
490 | flags = DDMA_FLAGS_NOIE; | 314 | flags = DDMA_FLAGS_NOIE; |
491 | 315 | ||
492 | if (iswrite) { | 316 | if (iswrite) { |
493 | if(!put_source_flags(ahwif->tx_chan, | 317 | if(!put_source_flags(ahwif->tx_chan, |
494 | (void*)(page_address(sg->page) | 318 | (void*)(page_address(sg->page) |
495 | + sg->offset), | 319 | + sg->offset), |
496 | tc, flags)) { | 320 | tc, flags)) { |
497 | printk(KERN_ERR "%s failed %d\n", | 321 | printk(KERN_ERR "%s failed %d\n", |
498 | __FUNCTION__, __LINE__); | 322 | __FUNCTION__, __LINE__); |
499 | } | 323 | } |
500 | } else | 324 | } else |
501 | { | 325 | { |
502 | if(!put_dest_flags(ahwif->rx_chan, | 326 | if(!put_dest_flags(ahwif->rx_chan, |
503 | (void*)(page_address(sg->page) | 327 | (void*)(page_address(sg->page) |
504 | + sg->offset), | 328 | + sg->offset), |
505 | tc, flags)) { | 329 | tc, flags)) { |
506 | printk(KERN_ERR "%s failed %d\n", | 330 | printk(KERN_ERR "%s failed %d\n", |
507 | __FUNCTION__, __LINE__); | 331 | __FUNCTION__, __LINE__); |
508 | } | 332 | } |
509 | } | 333 | } |
510 | 334 | ||
511 | cur_addr += tc; | 335 | cur_addr += tc; |
512 | cur_len -= tc; | 336 | cur_len -= tc; |
513 | } | 337 | } |
514 | sg++; | 338 | sg++; |
515 | i--; | 339 | i--; |
516 | } | 340 | } |
517 | 341 | ||
518 | if (count) | 342 | if (count) |
519 | return 1; | 343 | return 1; |
520 | 344 | ||
521 | use_pio_instead: | 345 | use_pio_instead: |
522 | dma_unmap_sg(ahwif->dev, | 346 | dma_unmap_sg(ahwif->dev, |
523 | hwif->sg_table, | 347 | hwif->sg_table, |
524 | hwif->sg_nents, | 348 | hwif->sg_nents, |
525 | hwif->sg_dma_direction); | 349 | hwif->sg_dma_direction); |
526 | 350 | ||
527 | return 0; /* revert to PIO for this request */ | 351 | return 0; /* revert to PIO for this request */ |
528 | } | 352 | } |
529 | 353 | ||
530 | static int auide_dma_end(ide_drive_t *drive) | 354 | static int auide_dma_end(ide_drive_t *drive) |
531 | { | 355 | { |
532 | ide_hwif_t *hwif = HWIF(drive); | 356 | ide_hwif_t *hwif = HWIF(drive); |
533 | _auide_hwif *ahwif = (_auide_hwif*)hwif->hwif_data; | 357 | _auide_hwif *ahwif = (_auide_hwif*)hwif->hwif_data; |
534 | 358 | ||
535 | if (hwif->sg_nents) { | 359 | if (hwif->sg_nents) { |
536 | dma_unmap_sg(ahwif->dev, hwif->sg_table, hwif->sg_nents, | 360 | dma_unmap_sg(ahwif->dev, hwif->sg_table, hwif->sg_nents, |
537 | hwif->sg_dma_direction); | 361 | hwif->sg_dma_direction); |
538 | hwif->sg_nents = 0; | 362 | hwif->sg_nents = 0; |
539 | } | 363 | } |
540 | 364 | ||
541 | return 0; | 365 | return 0; |
542 | } | 366 | } |
543 | 367 | ||
544 | static void auide_dma_start(ide_drive_t *drive ) | 368 | static void auide_dma_start(ide_drive_t *drive ) |
545 | { | 369 | { |
546 | // printk("%s\n", __FUNCTION__); | ||
547 | } | 370 | } |
548 | 371 | ||
549 | ide_startstop_t auide_dma_intr(ide_drive_t *drive) | ||
550 | { | ||
551 | //printk("%s\n", __FUNCTION__); | ||
552 | |||
553 | u8 stat = 0, dma_stat = 0; | ||
554 | |||
555 | dma_stat = HWIF(drive)->ide_dma_end(drive); | ||
556 | stat = HWIF(drive)->INB(IDE_STATUS_REG); /* get drive status */ | ||
557 | if (OK_STAT(stat,DRIVE_READY,drive->bad_wstat|DRQ_STAT)) { | ||
558 | if (!dma_stat) { | ||
559 | struct request *rq = HWGROUP(drive)->rq; | ||
560 | |||
561 | ide_end_request(drive, 1, rq->nr_sectors); | ||
562 | return ide_stopped; | ||
563 | } | ||
564 | printk(KERN_ERR "%s: dma_intr: bad DMA status (dma_stat=%x)\n", | ||
565 | drive->name, dma_stat); | ||
566 | } | ||
567 | return ide_error(drive, "dma_intr", stat); | ||
568 | } | ||
569 | 372 | ||
570 | static void auide_dma_exec_cmd(ide_drive_t *drive, u8 command) | 373 | static void auide_dma_exec_cmd(ide_drive_t *drive, u8 command) |
571 | { | 374 | { |
572 | //printk("%s\n", __FUNCTION__); | 375 | /* issue cmd to drive */ |
573 | 376 | ide_execute_command(drive, command, &ide_dma_intr, | |
574 | /* issue cmd to drive */ | 377 | (2*WAIT_CMD), NULL); |
575 | ide_execute_command(drive, command, &auide_dma_intr, | ||
576 | (2*WAIT_CMD), NULL); | ||
577 | } | 378 | } |
578 | 379 | ||
579 | static int auide_dma_setup(ide_drive_t *drive) | 380 | static int auide_dma_setup(ide_drive_t *drive) |
580 | { | 381 | { |
581 | // printk("%s\n", __FUNCTION__); | 382 | struct request *rq = HWGROUP(drive)->rq; |
582 | |||
583 | if (drive->media != ide_disk) | ||
584 | return 1; | ||
585 | |||
586 | if (!auide_build_dmatable(drive)) | ||
587 | /* try PIO instead of DMA */ | ||
588 | return 1; | ||
589 | 383 | ||
590 | drive->waiting_for_dma = 1; | 384 | if (!auide_build_dmatable(drive)) { |
385 | ide_map_sg(drive, rq); | ||
386 | return 1; | ||
387 | } | ||
591 | 388 | ||
592 | return 0; | 389 | drive->waiting_for_dma = 1; |
390 | return 0; | ||
593 | } | 391 | } |
594 | 392 | ||
595 | static int auide_dma_check(ide_drive_t *drive) | 393 | static int auide_dma_check(ide_drive_t *drive) |
596 | { | 394 | { |
597 | // printk("%s\n", __FUNCTION__); | 395 | u8 speed; |
598 | 396 | ||
599 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | 397 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA |
600 | if( !dbdma_init_done ){ | 398 | |
601 | auide_hwif.white_list = in_drive_list(drive->id, | 399 | if( dbdma_init_done == 0 ){ |
602 | dma_white_list); | 400 | auide_hwif.white_list = ide_in_drive_list(drive->id, |
603 | auide_hwif.black_list = in_drive_list(drive->id, | 401 | dma_white_list); |
604 | dma_black_list); | 402 | auide_hwif.black_list = ide_in_drive_list(drive->id, |
605 | auide_hwif.drive = drive; | 403 | dma_black_list); |
606 | auide_ddma_init(&auide_hwif); | 404 | auide_hwif.drive = drive; |
607 | dbdma_init_done = 1; | 405 | auide_ddma_init(&auide_hwif); |
608 | } | 406 | dbdma_init_done = 1; |
407 | } | ||
609 | #endif | 408 | #endif |
610 | 409 | ||
611 | /* Is the drive in our DMA black list? */ | 410 | /* Is the drive in our DMA black list? */ |
612 | if ( auide_hwif.black_list ) { | 411 | |
613 | drive->using_dma = 0; | 412 | if ( auide_hwif.black_list ) { |
614 | printk("%s found in dma_blacklist[]! Disabling DMA.\n", | 413 | drive->using_dma = 0; |
615 | drive->id->model); | 414 | |
616 | } | 415 | /* Borrowed the warning message from ide-dma.c */ |
617 | else | ||
618 | drive->using_dma = 1; | ||
619 | 416 | ||
620 | return HWIF(drive)->ide_dma_host_on(drive); | 417 | printk(KERN_WARNING "%s: Disabling DMA for %s (blacklisted)\n", |
418 | drive->name, drive->id->model); | ||
419 | } | ||
420 | else | ||
421 | drive->using_dma = 1; | ||
422 | |||
423 | speed = ide_find_best_mode(drive, XFER_PIO | XFER_MWDMA); | ||
424 | |||
425 | if (drive->autodma && (speed & XFER_MODE) != XFER_PIO) | ||
426 | return HWIF(drive)->ide_dma_on(drive); | ||
427 | |||
428 | return HWIF(drive)->ide_dma_off_quietly(drive); | ||
621 | } | 429 | } |
622 | 430 | ||
623 | static int auide_dma_test_irq(ide_drive_t *drive) | 431 | static int auide_dma_test_irq(ide_drive_t *drive) |
624 | { | 432 | { |
625 | // printk("%s\n", __FUNCTION__); | 433 | if (drive->waiting_for_dma == 0) |
626 | 434 | printk(KERN_WARNING "%s: ide_dma_test_irq \ | |
627 | if (!drive->waiting_for_dma) | ||
628 | printk(KERN_WARNING "%s: ide_dma_test_irq \ | ||
629 | called while not waiting\n", drive->name); | 435 | called while not waiting\n", drive->name); |
630 | 436 | ||
631 | /* If dbdma didn't execute the STOP command yet, the | 437 | /* If dbdma didn't execute the STOP command yet, the |
632 | * active bit is still set | 438 | * active bit is still set |
633 | */ | 439 | */ |
634 | drive->waiting_for_dma++; | 440 | drive->waiting_for_dma++; |
635 | if (drive->waiting_for_dma >= DMA_WAIT_TIMEOUT) { | 441 | if (drive->waiting_for_dma >= DMA_WAIT_TIMEOUT) { |
636 | printk(KERN_WARNING "%s: timeout waiting for ddma to \ | 442 | printk(KERN_WARNING "%s: timeout waiting for ddma to \ |
637 | complete\n", drive->name); | 443 | complete\n", drive->name); |
638 | return 1; | 444 | return 1; |
639 | } | 445 | } |
640 | udelay(10); | 446 | udelay(10); |
641 | return 0; | 447 | return 0; |
642 | } | 448 | } |
643 | 449 | ||
644 | static int auide_dma_host_on(ide_drive_t *drive) | 450 | static int auide_dma_host_on(ide_drive_t *drive) |
645 | { | 451 | { |
646 | // printk("%s\n", __FUNCTION__); | 452 | return 0; |
647 | return 0; | ||
648 | } | 453 | } |
649 | 454 | ||
650 | static int auide_dma_on(ide_drive_t *drive) | 455 | static int auide_dma_on(ide_drive_t *drive) |
651 | { | 456 | { |
652 | // printk("%s\n", __FUNCTION__); | 457 | drive->using_dma = 1; |
653 | drive->using_dma = 1; | 458 | return auide_dma_host_on(drive); |
654 | return auide_dma_host_on(drive); | ||
655 | } | 459 | } |
656 | 460 | ||
657 | 461 | ||
658 | static int auide_dma_host_off(ide_drive_t *drive) | 462 | static int auide_dma_host_off(ide_drive_t *drive) |
659 | { | 463 | { |
660 | // printk("%s\n", __FUNCTION__); | 464 | return 0; |
661 | return 0; | ||
662 | } | 465 | } |
663 | 466 | ||
664 | static int auide_dma_off_quietly(ide_drive_t *drive) | 467 | static int auide_dma_off_quietly(ide_drive_t *drive) |
665 | { | 468 | { |
666 | // printk("%s\n", __FUNCTION__); | 469 | drive->using_dma = 0; |
667 | drive->using_dma = 0; | 470 | return auide_dma_host_off(drive); |
668 | return auide_dma_host_off(drive); | ||
669 | } | 471 | } |
670 | 472 | ||
671 | static int auide_dma_lostirq(ide_drive_t *drive) | 473 | static int auide_dma_lostirq(ide_drive_t *drive) |
672 | { | 474 | { |
673 | // printk("%s\n", __FUNCTION__); | 475 | printk(KERN_ERR "%s: IRQ lost\n", drive->name); |
674 | 476 | return 0; | |
675 | printk(KERN_ERR "%s: IRQ lost\n", drive->name); | ||
676 | return 0; | ||
677 | } | 477 | } |
678 | 478 | ||
679 | static void auide_ddma_tx_callback(int irq, void *param, struct pt_regs *regs) | 479 | static void auide_ddma_tx_callback(int irq, void *param, struct pt_regs *regs) |
680 | { | 480 | { |
681 | // printk("%s\n", __FUNCTION__); | 481 | _auide_hwif *ahwif = (_auide_hwif*)param; |
682 | 482 | ahwif->drive->waiting_for_dma = 0; | |
683 | _auide_hwif *ahwif = (_auide_hwif*)param; | ||
684 | ahwif->drive->waiting_for_dma = 0; | ||
685 | return; | ||
686 | } | 483 | } |
687 | 484 | ||
688 | static void auide_ddma_rx_callback(int irq, void *param, struct pt_regs *regs) | 485 | static void auide_ddma_rx_callback(int irq, void *param, struct pt_regs *regs) |
689 | { | 486 | { |
690 | // printk("%s\n", __FUNCTION__); | 487 | _auide_hwif *ahwif = (_auide_hwif*)param; |
488 | ahwif->drive->waiting_for_dma = 0; | ||
489 | } | ||
490 | |||
491 | #endif /* end CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */ | ||
691 | 492 | ||
692 | _auide_hwif *ahwif = (_auide_hwif*)param; | 493 | static void auide_init_dbdma_dev(dbdev_tab_t *dev, u32 dev_id, u32 tsize, u32 devwidth, u32 flags) |
693 | ahwif->drive->waiting_for_dma = 0; | 494 | { |
694 | return; | 495 | dev->dev_id = dev_id; |
496 | dev->dev_physaddr = (u32)AU1XXX_ATA_PHYS_ADDR; | ||
497 | dev->dev_intlevel = 0; | ||
498 | dev->dev_intpolarity = 0; | ||
499 | dev->dev_tsize = tsize; | ||
500 | dev->dev_devwidth = devwidth; | ||
501 | dev->dev_flags = flags; | ||
695 | } | 502 | } |
503 | |||
504 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA) | ||
696 | 505 | ||
697 | static int auide_dma_timeout(ide_drive_t *drive) | 506 | static int auide_dma_timeout(ide_drive_t *drive) |
698 | { | 507 | { |
699 | // printk("%s\n", __FUNCTION__); | 508 | // printk("%s\n", __FUNCTION__); |
700 | 509 | ||
701 | printk(KERN_ERR "%s: DMA timeout occurred: ", drive->name); | 510 | printk(KERN_ERR "%s: DMA timeout occurred: ", drive->name); |
702 | 511 | ||
703 | if (HWIF(drive)->ide_dma_test_irq(drive)) | 512 | if (HWIF(drive)->ide_dma_test_irq(drive)) |
704 | return 0; | 513 | return 0; |
705 | 514 | ||
706 | return HWIF(drive)->ide_dma_end(drive); | 515 | return HWIF(drive)->ide_dma_end(drive); |
707 | } | 516 | } |
708 | #endif /* end CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */ | 517 | |
709 | 518 | ||
519 | static int auide_ddma_init(_auide_hwif *auide) { | ||
520 | |||
521 | dbdev_tab_t source_dev_tab, target_dev_tab; | ||
522 | u32 dev_id, tsize, devwidth, flags; | ||
523 | ide_hwif_t *hwif = auide->hwif; | ||
710 | 524 | ||
711 | static int auide_ddma_init( _auide_hwif *auide ) | 525 | dev_id = AU1XXX_ATA_DDMA_REQ; |
712 | { | ||
713 | // printk("%s\n", __FUNCTION__); | ||
714 | 526 | ||
715 | dbdev_tab_t source_dev_tab; | 527 | if (auide->white_list || auide->black_list) { |
716 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA) | 528 | tsize = 8; |
717 | dbdev_tab_t target_dev_tab; | 529 | devwidth = 32; |
718 | ide_hwif_t *hwif = auide->hwif; | 530 | } |
719 | char warning_output [2][80]; | 531 | else { |
720 | int i; | 532 | tsize = 1; |
721 | #endif | 533 | devwidth = 16; |
534 | |||
535 | printk(KERN_ERR "au1xxx-ide: %s is not on ide driver whitelist.\n",auide_hwif.drive->id->model); | ||
536 | printk(KERN_ERR " please read 'Documentation/mips/AU1xxx_IDE.README'"); | ||
537 | } | ||
722 | 538 | ||
723 | /* Add our custom device to DDMA device table */ | 539 | #ifdef IDE_AU1XXX_BURSTMODE |
724 | /* Create our new device entries in the table */ | 540 | flags = DEV_FLAGS_SYNC | DEV_FLAGS_BURSTABLE; |
725 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA) | ||
726 | source_dev_tab.dev_id = AU1XXX_ATA_DDMA_REQ; | ||
727 | |||
728 | if( auide->white_list || auide->black_list ){ | ||
729 | source_dev_tab.dev_tsize = 8; | ||
730 | source_dev_tab.dev_devwidth = 32; | ||
731 | source_dev_tab.dev_physaddr = (u32)AU1XXX_ATA_PHYS_ADDR; | ||
732 | source_dev_tab.dev_intlevel = 0; | ||
733 | source_dev_tab.dev_intpolarity = 0; | ||
734 | |||
735 | /* init device table for target - static bus controller - */ | ||
736 | target_dev_tab.dev_id = DSCR_CMD0_ALWAYS; | ||
737 | target_dev_tab.dev_tsize = 8; | ||
738 | target_dev_tab.dev_devwidth = 32; | ||
739 | target_dev_tab.dev_physaddr = (u32)AU1XXX_ATA_PHYS_ADDR; | ||
740 | target_dev_tab.dev_intlevel = 0; | ||
741 | target_dev_tab.dev_intpolarity = 0; | ||
742 | target_dev_tab.dev_flags = DEV_FLAGS_ANYUSE; | ||
743 | } | ||
744 | else{ | ||
745 | source_dev_tab.dev_tsize = 1; | ||
746 | source_dev_tab.dev_devwidth = 16; | ||
747 | source_dev_tab.dev_physaddr = (u32)AU1XXX_ATA_PHYS_ADDR; | ||
748 | source_dev_tab.dev_intlevel = 0; | ||
749 | source_dev_tab.dev_intpolarity = 0; | ||
750 | |||
751 | /* init device table for target - static bus controller - */ | ||
752 | target_dev_tab.dev_id = DSCR_CMD0_ALWAYS; | ||
753 | target_dev_tab.dev_tsize = 1; | ||
754 | target_dev_tab.dev_devwidth = 16; | ||
755 | target_dev_tab.dev_physaddr = (u32)AU1XXX_ATA_PHYS_ADDR; | ||
756 | target_dev_tab.dev_intlevel = 0; | ||
757 | target_dev_tab.dev_intpolarity = 0; | ||
758 | target_dev_tab.dev_flags = DEV_FLAGS_ANYUSE; | ||
759 | |||
760 | sprintf(&warning_output[0][0], | ||
761 | "%s is not on ide driver white list.", | ||
762 | auide_hwif.drive->id->model); | ||
763 | for ( i=strlen(&warning_output[0][0]) ; i<76; i++ ){ | ||
764 | sprintf(&warning_output[0][i]," "); | ||
765 | } | ||
766 | |||
767 | sprintf(&warning_output[1][0], | ||
768 | "To add %s please read 'Documentation/mips/AU1xxx_IDE.README'.", | ||
769 | auide_hwif.drive->id->model); | ||
770 | for ( i=strlen(&warning_output[1][0]) ; i<76; i++ ){ | ||
771 | sprintf(&warning_output[1][i]," "); | ||
772 | } | ||
773 | |||
774 | printk("\n****************************************"); | ||
775 | printk("****************************************\n"); | ||
776 | printk("* %s *\n",&warning_output[0][0]); | ||
777 | printk("* Switch to safe MWDMA Mode! "); | ||
778 | printk(" *\n"); | ||
779 | printk("* %s *\n",&warning_output[1][0]); | ||
780 | printk("****************************************"); | ||
781 | printk("****************************************\n\n"); | ||
782 | } | ||
783 | #else | 541 | #else |
784 | source_dev_tab.dev_id = DSCR_CMD0_ALWAYS; | 542 | flags = DEV_FLAGS_SYNC; |
785 | source_dev_tab.dev_tsize = 8; | ||
786 | source_dev_tab.dev_devwidth = 32; | ||
787 | source_dev_tab.dev_physaddr = (u32)AU1XXX_ATA_PHYS_ADDR; | ||
788 | source_dev_tab.dev_intlevel = 0; | ||
789 | source_dev_tab.dev_intpolarity = 0; | ||
790 | #endif | 543 | #endif |
791 | 544 | ||
792 | #if CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON | 545 | /* setup dev_tab for tx channel */ |
793 | /* set flags for tx channel */ | 546 | auide_init_dbdma_dev( &source_dev_tab, |
794 | source_dev_tab.dev_flags = DEV_FLAGS_OUT | 547 | dev_id, |
795 | | DEV_FLAGS_SYNC | 548 | tsize, devwidth, DEV_FLAGS_OUT | flags); |
796 | | DEV_FLAGS_BURSTABLE; | 549 | auide->tx_dev_id = au1xxx_ddma_add_device( &source_dev_tab ); |
797 | auide->tx_dev_id = au1xxx_ddma_add_device( &source_dev_tab ); | 550 | |
798 | /* set flags for rx channel */ | 551 | auide_init_dbdma_dev( &source_dev_tab, |
799 | source_dev_tab.dev_flags = DEV_FLAGS_IN | 552 | dev_id, |
800 | | DEV_FLAGS_SYNC | 553 | tsize, devwidth, DEV_FLAGS_IN | flags); |
801 | | DEV_FLAGS_BURSTABLE; | 554 | auide->rx_dev_id = au1xxx_ddma_add_device( &source_dev_tab ); |
802 | auide->rx_dev_id = au1xxx_ddma_add_device( &source_dev_tab ); | 555 | |
556 | /* We also need to add a target device for the DMA */ | ||
557 | auide_init_dbdma_dev( &target_dev_tab, | ||
558 | (u32)DSCR_CMD0_ALWAYS, | ||
559 | tsize, devwidth, DEV_FLAGS_ANYUSE); | ||
560 | auide->target_dev_id = au1xxx_ddma_add_device(&target_dev_tab); | ||
561 | |||
562 | /* Get a channel for TX */ | ||
563 | auide->tx_chan = au1xxx_dbdma_chan_alloc(auide->target_dev_id, | ||
564 | auide->tx_dev_id, | ||
565 | auide_ddma_tx_callback, | ||
566 | (void*)auide); | ||
567 | |||
568 | /* Get a channel for RX */ | ||
569 | auide->rx_chan = au1xxx_dbdma_chan_alloc(auide->rx_dev_id, | ||
570 | auide->target_dev_id, | ||
571 | auide_ddma_rx_callback, | ||
572 | (void*)auide); | ||
573 | |||
574 | auide->tx_desc_head = (void*)au1xxx_dbdma_ring_alloc(auide->tx_chan, | ||
575 | NUM_DESCRIPTORS); | ||
576 | auide->rx_desc_head = (void*)au1xxx_dbdma_ring_alloc(auide->rx_chan, | ||
577 | NUM_DESCRIPTORS); | ||
578 | |||
579 | hwif->dmatable_cpu = dma_alloc_coherent(auide->dev, | ||
580 | PRD_ENTRIES * PRD_BYTES, /* 1 Page */ | ||
581 | &hwif->dmatable_dma, GFP_KERNEL); | ||
582 | |||
583 | au1xxx_dbdma_start( auide->tx_chan ); | ||
584 | au1xxx_dbdma_start( auide->rx_chan ); | ||
585 | |||
586 | return 0; | ||
587 | } | ||
803 | #else | 588 | #else |
804 | /* set flags for tx channel */ | 589 | |
805 | source_dev_tab.dev_flags = DEV_FLAGS_OUT | DEV_FLAGS_SYNC; | 590 | static int auide_ddma_init( _auide_hwif *auide ) |
806 | auide->tx_dev_id = au1xxx_ddma_add_device( &source_dev_tab ); | 591 | { |
807 | /* set flags for rx channel */ | 592 | dbdev_tab_t source_dev_tab; |
808 | source_dev_tab.dev_flags = DEV_FLAGS_IN | DEV_FLAGS_SYNC; | 593 | int flags; |
809 | auide->rx_dev_id = au1xxx_ddma_add_device( &source_dev_tab ); | ||
810 | #endif | ||
811 | 594 | ||
812 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA) | 595 | #ifdef IDE_AU1XXX_BURSTMODE |
813 | 596 | flags = DEV_FLAGS_SYNC | DEV_FLAGS_BURSTABLE; | |
814 | auide->target_dev_id = au1xxx_ddma_add_device(&target_dev_tab); | 597 | #else |
815 | 598 | flags = DEV_FLAGS_SYNC; | |
816 | /* Get a channel for TX */ | ||
817 | auide->tx_chan = au1xxx_dbdma_chan_alloc(auide->target_dev_id, | ||
818 | auide->tx_dev_id, | ||
819 | auide_ddma_tx_callback, | ||
820 | (void*)auide); | ||
821 | /* Get a channel for RX */ | ||
822 | auide->rx_chan = au1xxx_dbdma_chan_alloc(auide->rx_dev_id, | ||
823 | auide->target_dev_id, | ||
824 | auide_ddma_rx_callback, | ||
825 | (void*)auide); | ||
826 | #else /* CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA */ | ||
827 | /* | ||
828 | * Note: if call back is not enabled, update ctp->cur_ptr manually | ||
829 | */ | ||
830 | auide->tx_chan = au1xxx_dbdma_chan_alloc(DSCR_CMD0_ALWAYS, | ||
831 | auide->tx_dev_id, | ||
832 | NULL, | ||
833 | (void*)auide); | ||
834 | auide->rx_chan = au1xxx_dbdma_chan_alloc(auide->rx_dev_id, | ||
835 | DSCR_CMD0_ALWAYS, | ||
836 | NULL, | ||
837 | (void*)auide); | ||
838 | #endif | 599 | #endif |
839 | auide->tx_desc_head = (void*)au1xxx_dbdma_ring_alloc(auide->tx_chan, | ||
840 | NUM_DESCRIPTORS); | ||
841 | auide->rx_desc_head = (void*)au1xxx_dbdma_ring_alloc(auide->rx_chan, | ||
842 | NUM_DESCRIPTORS); | ||
843 | 600 | ||
844 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA) | 601 | /* setup dev_tab for tx channel */ |
845 | hwif->dmatable_cpu = dma_alloc_coherent(auide->dev, | 602 | auide_init_dbdma_dev( &source_dev_tab, |
846 | PRD_ENTRIES * PRD_BYTES, /* 1 Page */ | 603 | (u32)DSCR_CMD0_ALWAYS, |
847 | &hwif->dmatable_dma, GFP_KERNEL); | 604 | 8, 32, DEV_FLAGS_OUT | flags); |
848 | 605 | auide->tx_dev_id = au1xxx_ddma_add_device( &source_dev_tab ); | |
849 | auide->sg_table = kmalloc(sizeof(struct scatterlist) * PRD_ENTRIES, | 606 | |
850 | GFP_KERNEL|GFP_DMA); | 607 | auide_init_dbdma_dev( &source_dev_tab, |
851 | if (auide->sg_table == NULL) { | 608 | (u32)DSCR_CMD0_ALWAYS, |
852 | return -ENOMEM; | 609 | 8, 32, DEV_FLAGS_IN | flags); |
853 | } | 610 | auide->rx_dev_id = au1xxx_ddma_add_device( &source_dev_tab ); |
854 | #endif | 611 | |
855 | au1xxx_dbdma_start( auide->tx_chan ); | 612 | /* Get a channel for TX */ |
856 | au1xxx_dbdma_start( auide->rx_chan ); | 613 | auide->tx_chan = au1xxx_dbdma_chan_alloc(DSCR_CMD0_ALWAYS, |
857 | return 0; | 614 | auide->tx_dev_id, |
615 | NULL, | ||
616 | (void*)auide); | ||
617 | |||
618 | /* Get a channel for RX */ | ||
619 | auide->rx_chan = au1xxx_dbdma_chan_alloc(auide->rx_dev_id, | ||
620 | DSCR_CMD0_ALWAYS, | ||
621 | NULL, | ||
622 | (void*)auide); | ||
623 | |||
624 | auide->tx_desc_head = (void*)au1xxx_dbdma_ring_alloc(auide->tx_chan, | ||
625 | NUM_DESCRIPTORS); | ||
626 | auide->rx_desc_head = (void*)au1xxx_dbdma_ring_alloc(auide->rx_chan, | ||
627 | NUM_DESCRIPTORS); | ||
628 | |||
629 | au1xxx_dbdma_start( auide->tx_chan ); | ||
630 | au1xxx_dbdma_start( auide->rx_chan ); | ||
631 | |||
632 | return 0; | ||
858 | } | 633 | } |
634 | #endif | ||
859 | 635 | ||
860 | static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif) | 636 | static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif) |
861 | { | 637 | { |
862 | int i; | 638 | int i; |
863 | #define ide_ioreg_t unsigned long | 639 | unsigned long *ata_regs = hw->io_ports; |
864 | ide_ioreg_t *ata_regs = hw->io_ports; | 640 | |
865 | 641 | /* FIXME? */ | |
866 | /* fixme */ | 642 | for (i = 0; i < IDE_CONTROL_OFFSET; i++) { |
867 | for (i = 0; i < IDE_CONTROL_OFFSET; i++) { | 643 | *ata_regs++ = ahwif->regbase + (i << AU1XXX_ATA_REG_OFFSET); |
868 | *ata_regs++ = (ide_ioreg_t) ahwif->regbase | 644 | } |
869 | + (ide_ioreg_t)(i << AU1XXX_ATA_REG_OFFSET); | 645 | |
870 | } | 646 | /* set the Alternative Status register */ |
871 | 647 | *ata_regs = ahwif->regbase + (14 << AU1XXX_ATA_REG_OFFSET); | |
872 | /* set the Alternative Status register */ | ||
873 | *ata_regs = (ide_ioreg_t) ahwif->regbase | ||
874 | + (ide_ioreg_t)(14 << AU1XXX_ATA_REG_OFFSET); | ||
875 | } | 648 | } |
876 | 649 | ||
877 | static int au_ide_probe(struct device *dev) | 650 | static int au_ide_probe(struct device *dev) |
878 | { | 651 | { |
879 | struct platform_device *pdev = to_platform_device(dev); | 652 | struct platform_device *pdev = to_platform_device(dev); |
880 | _auide_hwif *ahwif = &auide_hwif; | 653 | _auide_hwif *ahwif = &auide_hwif; |
881 | ide_hwif_t *hwif; | 654 | ide_hwif_t *hwif; |
882 | struct resource *res; | 655 | struct resource *res; |
883 | int ret = 0; | 656 | int ret = 0; |
884 | 657 | ||
885 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA) | 658 | #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA) |
886 | char *mode = "MWDMA2"; | 659 | char *mode = "MWDMA2"; |
887 | #elif defined(CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA) | 660 | #elif defined(CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA) |
888 | char *mode = "PIO+DDMA(offload)"; | 661 | char *mode = "PIO+DDMA(offload)"; |
889 | #endif | 662 | #endif |
890 | 663 | ||
891 | memset(&auide_hwif, 0, sizeof(_auide_hwif)); | 664 | memset(&auide_hwif, 0, sizeof(_auide_hwif)); |
892 | auide_hwif.dev = 0; | 665 | auide_hwif.dev = 0; |
893 | 666 | ||
894 | ahwif->dev = dev; | 667 | ahwif->dev = dev; |
895 | ahwif->irq = platform_get_irq(pdev, 0); | 668 | ahwif->irq = platform_get_irq(pdev, 0); |
@@ -902,11 +675,11 @@ static int au_ide_probe(struct device *dev) | |||
902 | goto out; | 675 | goto out; |
903 | } | 676 | } |
904 | 677 | ||
905 | if (!request_mem_region (res->start, res->end-res->start, pdev->name)) { | 678 | if (!request_mem_region (res->start, res->end-res->start, pdev->name)) { |
906 | pr_debug("%s: request_mem_region failed\n", DRV_NAME); | 679 | pr_debug("%s: request_mem_region failed\n", DRV_NAME); |
907 | ret = -EBUSY; | 680 | ret = -EBUSY; |
908 | goto out; | 681 | goto out; |
909 | } | 682 | } |
910 | 683 | ||
911 | ahwif->regbase = (u32)ioremap(res->start, res->end-res->start); | 684 | ahwif->regbase = (u32)ioremap(res->start, res->end-res->start); |
912 | if (ahwif->regbase == 0) { | 685 | if (ahwif->regbase == 0) { |
@@ -914,130 +687,92 @@ static int au_ide_probe(struct device *dev) | |||
914 | goto out; | 687 | goto out; |
915 | } | 688 | } |
916 | 689 | ||
917 | hwif = &ide_hwifs[pdev->id]; | 690 | /* FIXME: This might possibly break PCMCIA IDE devices */ |
691 | |||
692 | hwif = &ide_hwifs[pdev->id]; | ||
918 | hw_regs_t *hw = &hwif->hw; | 693 | hw_regs_t *hw = &hwif->hw; |
919 | hwif->irq = hw->irq = ahwif->irq; | 694 | hwif->irq = hw->irq = ahwif->irq; |
920 | hwif->chipset = ide_au1xxx; | 695 | hwif->chipset = ide_au1xxx; |
921 | 696 | ||
922 | auide_setup_ports(hw, ahwif); | 697 | auide_setup_ports(hw, ahwif); |
923 | memcpy(hwif->io_ports, hw->io_ports, sizeof(hwif->io_ports)); | 698 | memcpy(hwif->io_ports, hw->io_ports, sizeof(hwif->io_ports)); |
924 | 699 | ||
925 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ | 700 | hwif->ultra_mask = 0x0; /* Disable Ultra DMA */ |
926 | hwif->rqsize = CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ; | ||
927 | hwif->rqsize = ((hwif->rqsize > AU1XXX_ATA_RQSIZE) | ||
928 | || (hwif->rqsize < 32)) ? AU1XXX_ATA_RQSIZE : hwif->rqsize; | ||
929 | #else /* if kernel config is not set */ | ||
930 | hwif->rqsize = AU1XXX_ATA_RQSIZE; | ||
931 | #endif | ||
932 | |||
933 | hwif->ultra_mask = 0x0; /* Disable Ultra DMA */ | ||
934 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | 701 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA |
935 | hwif->mwdma_mask = 0x07; /* Multimode-2 DMA */ | 702 | hwif->mwdma_mask = 0x07; /* Multimode-2 DMA */ |
936 | hwif->swdma_mask = 0x07; | 703 | hwif->swdma_mask = 0x00; |
937 | #else | 704 | #else |
938 | hwif->mwdma_mask = 0x0; | 705 | hwif->mwdma_mask = 0x0; |
939 | hwif->swdma_mask = 0x0; | 706 | hwif->swdma_mask = 0x0; |
707 | #endif | ||
708 | |||
709 | hwif->noprobe = 0; | ||
710 | hwif->drives[0].unmask = 1; | ||
711 | hwif->drives[1].unmask = 1; | ||
712 | |||
713 | /* hold should be on in all cases */ | ||
714 | hwif->hold = 1; | ||
715 | hwif->mmio = 2; | ||
716 | |||
717 | /* If the user has selected DDMA assisted copies, | ||
718 | then set up a few local I/O function entry points | ||
719 | */ | ||
720 | |||
721 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA | ||
722 | hwif->INSW = auide_insw; | ||
723 | hwif->OUTSW = auide_outsw; | ||
940 | #endif | 724 | #endif |
941 | //hwif->noprobe = !hwif->io_ports[IDE_DATA_OFFSET]; | 725 | |
942 | hwif->noprobe = 0; | 726 | hwif->tuneproc = &auide_tune_drive; |
943 | hwif->drives[0].unmask = 1; | 727 | hwif->speedproc = &auide_tune_chipset; |
944 | hwif->drives[1].unmask = 1; | ||
945 | |||
946 | /* hold should be on in all cases */ | ||
947 | hwif->hold = 1; | ||
948 | hwif->mmio = 2; | ||
949 | |||
950 | /* set up local I/O function entry points */ | ||
951 | hwif->INB = auide_inb; | ||
952 | hwif->INW = auide_inw; | ||
953 | hwif->INL = auide_inl; | ||
954 | hwif->INSW = auide_insw; | ||
955 | hwif->INSL = auide_insl; | ||
956 | hwif->OUTB = auide_outb; | ||
957 | hwif->OUTBSYNC = auide_outbsync; | ||
958 | hwif->OUTW = auide_outw; | ||
959 | hwif->OUTL = auide_outl; | ||
960 | hwif->OUTSW = auide_outsw; | ||
961 | hwif->OUTSL = auide_outsl; | ||
962 | |||
963 | hwif->tuneproc = &auide_tune_drive; | ||
964 | hwif->speedproc = &auide_tune_chipset; | ||
965 | 728 | ||
966 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | 729 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA |
967 | hwif->ide_dma_off_quietly = &auide_dma_off_quietly; | 730 | hwif->ide_dma_off_quietly = &auide_dma_off_quietly; |
968 | hwif->ide_dma_timeout = &auide_dma_timeout; | 731 | hwif->ide_dma_timeout = &auide_dma_timeout; |
969 | 732 | ||
970 | hwif->ide_dma_check = &auide_dma_check; | 733 | hwif->ide_dma_check = &auide_dma_check; |
971 | hwif->dma_exec_cmd = &auide_dma_exec_cmd; | 734 | hwif->dma_exec_cmd = &auide_dma_exec_cmd; |
972 | hwif->dma_start = &auide_dma_start; | 735 | hwif->dma_start = &auide_dma_start; |
973 | hwif->ide_dma_end = &auide_dma_end; | 736 | hwif->ide_dma_end = &auide_dma_end; |
974 | hwif->dma_setup = &auide_dma_setup; | 737 | hwif->dma_setup = &auide_dma_setup; |
975 | hwif->ide_dma_test_irq = &auide_dma_test_irq; | 738 | hwif->ide_dma_test_irq = &auide_dma_test_irq; |
976 | hwif->ide_dma_host_off = &auide_dma_host_off; | 739 | hwif->ide_dma_host_off = &auide_dma_host_off; |
977 | hwif->ide_dma_host_on = &auide_dma_host_on; | 740 | hwif->ide_dma_host_on = &auide_dma_host_on; |
978 | hwif->ide_dma_lostirq = &auide_dma_lostirq; | 741 | hwif->ide_dma_lostirq = &auide_dma_lostirq; |
979 | hwif->ide_dma_on = &auide_dma_on; | 742 | hwif->ide_dma_on = &auide_dma_on; |
980 | 743 | ||
981 | hwif->autodma = 1; | 744 | hwif->autodma = 1; |
982 | hwif->drives[0].autodma = hwif->autodma; | 745 | hwif->drives[0].autodma = hwif->autodma; |
983 | hwif->drives[1].autodma = hwif->autodma; | 746 | hwif->drives[1].autodma = hwif->autodma; |
984 | hwif->atapi_dma = 1; | 747 | hwif->atapi_dma = 1; |
985 | hwif->drives[0].using_dma = 1; | 748 | |
986 | hwif->drives[1].using_dma = 1; | ||
987 | #else /* !CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */ | 749 | #else /* !CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */ |
988 | hwif->autodma = 0; | 750 | hwif->autodma = 0; |
989 | hwif->channel = 0; | 751 | hwif->channel = 0; |
990 | hwif->hold = 1; | 752 | hwif->hold = 1; |
991 | hwif->select_data = 0; /* no chipset-specific code */ | 753 | hwif->select_data = 0; /* no chipset-specific code */ |
992 | hwif->config_data = 0; /* no chipset-specific code */ | 754 | hwif->config_data = 0; /* no chipset-specific code */ |
993 | 755 | ||
994 | hwif->drives[0].autodma = 0; | 756 | hwif->drives[0].autodma = 0; |
995 | hwif->drives[0].drive_data = 0; /* no drive data */ | 757 | hwif->drives[0].autotune = 1; /* 1=autotune, 2=noautotune, 0=default */ |
996 | hwif->drives[0].using_dma = 0; | ||
997 | hwif->drives[0].waiting_for_dma = 0; | ||
998 | hwif->drives[0].autotune = 1; /* 1=autotune, 2=noautotune, 0=default */ | ||
999 | /* secondary hdd not supported */ | ||
1000 | hwif->drives[1].autodma = 0; | ||
1001 | |||
1002 | hwif->drives[1].drive_data = 0; | ||
1003 | hwif->drives[1].using_dma = 0; | ||
1004 | hwif->drives[1].waiting_for_dma = 0; | ||
1005 | hwif->drives[1].autotune = 2; /* 1=autotune, 2=noautotune, 0=default */ | ||
1006 | #endif | ||
1007 | hwif->drives[0].io_32bit = 0; /* 0=16-bit, 1=32-bit, 2/3=32bit+sync */ | ||
1008 | hwif->drives[1].io_32bit = 0; /* 0=16-bit, 1=32-bit, 2/3=32bit+sync */ | ||
1009 | |||
1010 | /*Register Driver with PM Framework*/ | ||
1011 | #ifdef CONFIG_PM | ||
1012 | auide_hwif.pm.lock = SPIN_LOCK_UNLOCKED; | ||
1013 | auide_hwif.pm.stopped = 0; | ||
1014 | |||
1015 | auide_hwif.pm.dev = new_au1xxx_power_device( "ide", | ||
1016 | &au1200ide_pm_callback, | ||
1017 | NULL); | ||
1018 | if ( auide_hwif.pm.dev == NULL ) | ||
1019 | printk(KERN_INFO "Unable to create a power management \ | ||
1020 | device entry for the au1200-IDE.\n"); | ||
1021 | else | ||
1022 | printk(KERN_INFO "Power management device entry for the \ | ||
1023 | au1200-IDE loaded.\n"); | ||
1024 | #endif | 758 | #endif |
759 | hwif->drives[0].no_io_32bit = 1; | ||
1025 | 760 | ||
1026 | auide_hwif.hwif = hwif; | 761 | auide_hwif.hwif = hwif; |
1027 | hwif->hwif_data = &auide_hwif; | 762 | hwif->hwif_data = &auide_hwif; |
1028 | 763 | ||
1029 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA | 764 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA |
1030 | auide_ddma_init(&auide_hwif); | 765 | auide_ddma_init(&auide_hwif); |
1031 | dbdma_init_done = 1; | 766 | dbdma_init_done = 1; |
1032 | #endif | 767 | #endif |
1033 | 768 | ||
1034 | probe_hwif_init(hwif); | 769 | probe_hwif_init(hwif); |
1035 | dev_set_drvdata(dev, hwif); | 770 | dev_set_drvdata(dev, hwif); |
1036 | 771 | ||
1037 | printk(KERN_INFO "Au1xxx IDE(builtin) configured for %s\n", mode ); | 772 | printk(KERN_INFO "Au1xxx IDE(builtin) configured for %s\n", mode ); |
1038 | 773 | ||
1039 | out: | 774 | out: |
1040 | return ret; | 775 | return ret; |
1041 | } | 776 | } |
1042 | 777 | ||
1043 | static int au_ide_remove(struct device *dev) | 778 | static int au_ide_remove(struct device *dev) |
@@ -1045,7 +780,7 @@ static int au_ide_remove(struct device *dev) | |||
1045 | struct platform_device *pdev = to_platform_device(dev); | 780 | struct platform_device *pdev = to_platform_device(dev); |
1046 | struct resource *res; | 781 | struct resource *res; |
1047 | ide_hwif_t *hwif = dev_get_drvdata(dev); | 782 | ide_hwif_t *hwif = dev_get_drvdata(dev); |
1048 | _auide_hwif *ahwif = &auide_hwif; | 783 | _auide_hwif *ahwif = &auide_hwif; |
1049 | 784 | ||
1050 | ide_unregister(hwif - ide_hwifs); | 785 | ide_unregister(hwif - ide_hwifs); |
1051 | 786 | ||
@@ -1069,180 +804,11 @@ static int __init au_ide_init(void) | |||
1069 | return driver_register(&au1200_ide_driver); | 804 | return driver_register(&au1200_ide_driver); |
1070 | } | 805 | } |
1071 | 806 | ||
1072 | static void __init au_ide_exit(void) | 807 | static void __exit au_ide_exit(void) |
1073 | { | 808 | { |
1074 | driver_unregister(&au1200_ide_driver); | 809 | driver_unregister(&au1200_ide_driver); |
1075 | } | 810 | } |
1076 | 811 | ||
1077 | #ifdef CONFIG_PM | ||
1078 | int au1200ide_pm_callback( au1xxx_power_dev_t *dev,\ | ||
1079 | au1xxx_request_t request, void *data) { | ||
1080 | |||
1081 | unsigned int d, err = 0; | ||
1082 | unsigned long flags; | ||
1083 | |||
1084 | spin_lock_irqsave(auide_hwif.pm.lock, flags); | ||
1085 | |||
1086 | switch (request){ | ||
1087 | case AU1XXX_PM_SLEEP: | ||
1088 | err = au1xxxide_pm_sleep(dev); | ||
1089 | break; | ||
1090 | case AU1XXX_PM_WAKEUP: | ||
1091 | d = *((unsigned int*)data); | ||
1092 | if ( d > 0 && d <= 99) { | ||
1093 | err = au1xxxide_pm_standby(dev); | ||
1094 | } | ||
1095 | else { | ||
1096 | err = au1xxxide_pm_resume(dev); | ||
1097 | } | ||
1098 | break; | ||
1099 | case AU1XXX_PM_GETSTATUS: | ||
1100 | err = au1xxxide_pm_getstatus(dev); | ||
1101 | break; | ||
1102 | case AU1XXX_PM_ACCESS: | ||
1103 | err = au1xxxide_pm_access(dev); | ||
1104 | break; | ||
1105 | case AU1XXX_PM_IDLE: | ||
1106 | err = au1xxxide_pm_idle(dev); | ||
1107 | break; | ||
1108 | case AU1XXX_PM_CLEANUP: | ||
1109 | err = au1xxxide_pm_cleanup(dev); | ||
1110 | break; | ||
1111 | default: | ||
1112 | err = -1; | ||
1113 | break; | ||
1114 | } | ||
1115 | |||
1116 | spin_unlock_irqrestore(auide_hwif.pm.lock, flags); | ||
1117 | |||
1118 | return err; | ||
1119 | } | ||
1120 | |||
1121 | static int au1xxxide_pm_standby( au1xxx_power_dev_t *dev ) { | ||
1122 | return 0; | ||
1123 | } | ||
1124 | |||
1125 | static int au1xxxide_pm_sleep( au1xxx_power_dev_t *dev ) { | ||
1126 | |||
1127 | int retval; | ||
1128 | ide_hwif_t *hwif = auide_hwif.hwif; | ||
1129 | struct request rq; | ||
1130 | struct request_pm_state rqpm; | ||
1131 | ide_task_t args; | ||
1132 | |||
1133 | if(auide_hwif.pm.stopped) | ||
1134 | return -1; | ||
1135 | |||
1136 | /* | ||
1137 | * wait until hard disc is ready | ||
1138 | */ | ||
1139 | if ( wait_for_ready(&hwif->drives[0], 35000) ) { | ||
1140 | printk("Wait for drive sleep timeout!\n"); | ||
1141 | retval = -1; | ||
1142 | } | ||
1143 | |||
1144 | /* | ||
1145 | * sequenz to tell the high level ide driver that pm is resuming | ||
1146 | */ | ||
1147 | memset(&rq, 0, sizeof(rq)); | ||
1148 | memset(&rqpm, 0, sizeof(rqpm)); | ||
1149 | memset(&args, 0, sizeof(args)); | ||
1150 | rq.flags = REQ_PM_SUSPEND; | ||
1151 | rq.special = &args; | ||
1152 | rq.pm = &rqpm; | ||
1153 | rqpm.pm_step = ide_pm_state_start_suspend; | ||
1154 | rqpm.pm_state = PMSG_SUSPEND; | ||
1155 | |||
1156 | retval = ide_do_drive_cmd(&hwif->drives[0], &rq, ide_wait); | ||
1157 | |||
1158 | if (wait_for_ready (&hwif->drives[0], 35000)) { | ||
1159 | printk("Wait for drive sleep timeout!\n"); | ||
1160 | retval = -1; | ||
1161 | } | ||
1162 | |||
1163 | /* | ||
1164 | * stop dbdma channels | ||
1165 | */ | ||
1166 | au1xxx_dbdma_reset(auide_hwif.tx_chan); | ||
1167 | au1xxx_dbdma_reset(auide_hwif.rx_chan); | ||
1168 | |||
1169 | auide_hwif.pm.stopped = 1; | ||
1170 | |||
1171 | return retval; | ||
1172 | } | ||
1173 | |||
1174 | static int au1xxxide_pm_resume( au1xxx_power_dev_t *dev ) { | ||
1175 | |||
1176 | int retval; | ||
1177 | ide_hwif_t *hwif = auide_hwif.hwif; | ||
1178 | struct request rq; | ||
1179 | struct request_pm_state rqpm; | ||
1180 | ide_task_t args; | ||
1181 | |||
1182 | if(!auide_hwif.pm.stopped) | ||
1183 | return -1; | ||
1184 | |||
1185 | /* | ||
1186 | * start dbdma channels | ||
1187 | */ | ||
1188 | au1xxx_dbdma_start(auide_hwif.tx_chan); | ||
1189 | au1xxx_dbdma_start(auide_hwif.rx_chan); | ||
1190 | |||
1191 | /* | ||
1192 | * wait until hard disc is ready | ||
1193 | */ | ||
1194 | if (wait_for_ready ( &hwif->drives[0], 35000)) { | ||
1195 | printk("Wait for drive wake up timeout!\n"); | ||
1196 | retval = -1; | ||
1197 | } | ||
1198 | |||
1199 | /* | ||
1200 | * sequenz to tell the high level ide driver that pm is resuming | ||
1201 | */ | ||
1202 | memset(&rq, 0, sizeof(rq)); | ||
1203 | memset(&rqpm, 0, sizeof(rqpm)); | ||
1204 | memset(&args, 0, sizeof(args)); | ||
1205 | rq.flags = REQ_PM_RESUME; | ||
1206 | rq.special = &args; | ||
1207 | rq.pm = &rqpm; | ||
1208 | rqpm.pm_step = ide_pm_state_start_resume; | ||
1209 | rqpm.pm_state = PMSG_ON; | ||
1210 | |||
1211 | retval = ide_do_drive_cmd(&hwif->drives[0], &rq, ide_head_wait); | ||
1212 | |||
1213 | /* | ||
1214 | * wait for hard disc | ||
1215 | */ | ||
1216 | if ( wait_for_ready(&hwif->drives[0], 35000) ) { | ||
1217 | printk("Wait for drive wake up timeout!\n"); | ||
1218 | retval = -1; | ||
1219 | } | ||
1220 | |||
1221 | auide_hwif.pm.stopped = 0; | ||
1222 | |||
1223 | return retval; | ||
1224 | } | ||
1225 | |||
1226 | static int au1xxxide_pm_getstatus( au1xxx_power_dev_t *dev ) { | ||
1227 | return dev->cur_state; | ||
1228 | } | ||
1229 | |||
1230 | static int au1xxxide_pm_access( au1xxx_power_dev_t *dev ) { | ||
1231 | if (dev->cur_state != AWAKE_STATE) | ||
1232 | return 0; | ||
1233 | else | ||
1234 | return -1; | ||
1235 | } | ||
1236 | |||
1237 | static int au1xxxide_pm_idle( au1xxx_power_dev_t *dev ) { | ||
1238 | return 0; | ||
1239 | } | ||
1240 | |||
1241 | static int au1xxxide_pm_cleanup( au1xxx_power_dev_t *dev ) { | ||
1242 | return 0; | ||
1243 | } | ||
1244 | #endif /* CONFIG_PM */ | ||
1245 | |||
1246 | MODULE_LICENSE("GPL"); | 812 | MODULE_LICENSE("GPL"); |
1247 | MODULE_DESCRIPTION("AU1200 IDE driver"); | 813 | MODULE_DESCRIPTION("AU1200 IDE driver"); |
1248 | 814 | ||
diff --git a/drivers/ide/pci/sgiioc4.c b/drivers/ide/pci/sgiioc4.c index af526b671c4e..4ee597d08797 100644 --- a/drivers/ide/pci/sgiioc4.c +++ b/drivers/ide/pci/sgiioc4.c | |||
@@ -622,12 +622,18 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev, ide_pci_device_t * d) | |||
622 | ide_hwif_t *hwif; | 622 | ide_hwif_t *hwif; |
623 | int h; | 623 | int h; |
624 | 624 | ||
625 | /* | ||
626 | * Find an empty HWIF; if none available, return -ENOMEM. | ||
627 | */ | ||
625 | for (h = 0; h < MAX_HWIFS; ++h) { | 628 | for (h = 0; h < MAX_HWIFS; ++h) { |
626 | hwif = &ide_hwifs[h]; | 629 | hwif = &ide_hwifs[h]; |
627 | /* Find an empty HWIF */ | ||
628 | if (hwif->chipset == ide_unknown) | 630 | if (hwif->chipset == ide_unknown) |
629 | break; | 631 | break; |
630 | } | 632 | } |
633 | if (h == MAX_HWIFS) { | ||
634 | printk(KERN_ERR "%s: too many IDE interfaces, no room in table\n", d->name); | ||
635 | return -ENOMEM; | ||
636 | } | ||
631 | 637 | ||
632 | /* Get the CmdBlk and CtrlBlk Base Registers */ | 638 | /* Get the CmdBlk and CtrlBlk Base Registers */ |
633 | base = pci_resource_start(dev, 0) + IOC4_CMD_OFFSET; | 639 | base = pci_resource_start(dev, 0) + IOC4_CMD_OFFSET; |
diff --git a/drivers/ide/pci/via82cxxx.c b/drivers/ide/pci/via82cxxx.c index 7161ce0ef5aa..86fb1e0286d3 100644 --- a/drivers/ide/pci/via82cxxx.c +++ b/drivers/ide/pci/via82cxxx.c | |||
@@ -80,6 +80,7 @@ static struct via_isa_bridge { | |||
80 | u16 flags; | 80 | u16 flags; |
81 | } via_isa_bridges[] = { | 81 | } via_isa_bridges[] = { |
82 | { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 82 | { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
83 | { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | ||
83 | { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 84 | { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
84 | { "vt8235", PCI_DEVICE_ID_VIA_8235, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 85 | { "vt8235", PCI_DEVICE_ID_VIA_8235, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
85 | { "vt8233a", PCI_DEVICE_ID_VIA_8233A, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 86 | { "vt8233a", PCI_DEVICE_ID_VIA_8233A, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
diff --git a/drivers/ieee1394/hosts.h b/drivers/ieee1394/hosts.h index 38f42112dff0..ae9b02cc013f 100644 --- a/drivers/ieee1394/hosts.h +++ b/drivers/ieee1394/hosts.h | |||
@@ -41,6 +41,7 @@ struct hpsb_host { | |||
41 | /* this nodes state */ | 41 | /* this nodes state */ |
42 | unsigned in_bus_reset:1; | 42 | unsigned in_bus_reset:1; |
43 | unsigned is_shutdown:1; | 43 | unsigned is_shutdown:1; |
44 | unsigned resume_packet_sent:1; | ||
44 | 45 | ||
45 | /* this nodes' duties on the bus */ | 46 | /* this nodes' duties on the bus */ |
46 | unsigned is_root:1; | 47 | unsigned is_root:1; |
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index 7fff5a1d2ea4..0ea37b1bccb2 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c | |||
@@ -1349,6 +1349,33 @@ static void nodemgr_update_pdrv(struct node_entry *ne) | |||
1349 | } | 1349 | } |
1350 | 1350 | ||
1351 | 1351 | ||
1352 | /* Write the BROADCAST_CHANNEL as per IEEE1394a 8.3.2.3.11 and 8.4.2.3. This | ||
1353 | * seems like an optional service but in the end it is practically mandatory | ||
1354 | * as a consequence of these clauses. | ||
1355 | * | ||
1356 | * Note that we cannot do a broadcast write to all nodes at once because some | ||
1357 | * pre-1394a devices would hang. */ | ||
1358 | static void nodemgr_irm_write_bc(struct node_entry *ne, int generation) | ||
1359 | { | ||
1360 | const u64 bc_addr = (CSR_REGISTER_BASE | CSR_BROADCAST_CHANNEL); | ||
1361 | quadlet_t bc_remote, bc_local; | ||
1362 | int ret; | ||
1363 | |||
1364 | if (!ne->host->is_irm || ne->generation != generation || | ||
1365 | ne->nodeid == ne->host->node_id) | ||
1366 | return; | ||
1367 | |||
1368 | bc_local = cpu_to_be32(ne->host->csr.broadcast_channel); | ||
1369 | |||
1370 | /* Check if the register is implemented and 1394a compliant. */ | ||
1371 | ret = hpsb_read(ne->host, ne->nodeid, generation, bc_addr, &bc_remote, | ||
1372 | sizeof(bc_remote)); | ||
1373 | if (!ret && bc_remote & cpu_to_be32(0x80000000) && | ||
1374 | bc_remote != bc_local) | ||
1375 | hpsb_node_write(ne, bc_addr, &bc_local, sizeof(bc_local)); | ||
1376 | } | ||
1377 | |||
1378 | |||
1352 | static void nodemgr_probe_ne(struct host_info *hi, struct node_entry *ne, int generation) | 1379 | static void nodemgr_probe_ne(struct host_info *hi, struct node_entry *ne, int generation) |
1353 | { | 1380 | { |
1354 | struct device *dev; | 1381 | struct device *dev; |
@@ -1360,6 +1387,8 @@ static void nodemgr_probe_ne(struct host_info *hi, struct node_entry *ne, int ge | |||
1360 | if (!dev) | 1387 | if (!dev) |
1361 | return; | 1388 | return; |
1362 | 1389 | ||
1390 | nodemgr_irm_write_bc(ne, generation); | ||
1391 | |||
1363 | /* If "needs_probe", then this is either a new or changed node we | 1392 | /* If "needs_probe", then this is either a new or changed node we |
1364 | * rescan totally. If the generation matches for an existing node | 1393 | * rescan totally. If the generation matches for an existing node |
1365 | * (one that existed prior to the bus reset) we send update calls | 1394 | * (one that existed prior to the bus reset) we send update calls |
@@ -1413,9 +1442,25 @@ static void nodemgr_node_probe(struct host_info *hi, int generation) | |||
1413 | return; | 1442 | return; |
1414 | } | 1443 | } |
1415 | 1444 | ||
1416 | /* Because we are a 1394a-2000 compliant IRM, we need to inform all the other | 1445 | static int nodemgr_send_resume_packet(struct hpsb_host *host) |
1417 | * nodes of the broadcast channel. (Really we're only setting the validity | 1446 | { |
1418 | * bit). Other IRM responsibilities go in here as well. */ | 1447 | struct hpsb_packet *packet; |
1448 | int ret = 1; | ||
1449 | |||
1450 | packet = hpsb_make_phypacket(host, | ||
1451 | 0x003c0000 | NODEID_TO_NODE(host->node_id) << 24); | ||
1452 | if (packet) { | ||
1453 | packet->no_waiter = 1; | ||
1454 | packet->generation = get_hpsb_generation(host); | ||
1455 | ret = hpsb_send_packet(packet); | ||
1456 | } | ||
1457 | if (ret) | ||
1458 | HPSB_WARN("fw-host%d: Failed to broadcast resume packet", | ||
1459 | host->id); | ||
1460 | return ret; | ||
1461 | } | ||
1462 | |||
1463 | /* Perform a few high-level IRM responsibilities. */ | ||
1419 | static int nodemgr_do_irm_duties(struct hpsb_host *host, int cycles) | 1464 | static int nodemgr_do_irm_duties(struct hpsb_host *host, int cycles) |
1420 | { | 1465 | { |
1421 | quadlet_t bc; | 1466 | quadlet_t bc; |
@@ -1424,13 +1469,8 @@ static int nodemgr_do_irm_duties(struct hpsb_host *host, int cycles) | |||
1424 | if (!host->is_irm || host->irm_id == (nodeid_t)-1) | 1469 | if (!host->is_irm || host->irm_id == (nodeid_t)-1) |
1425 | return 1; | 1470 | return 1; |
1426 | 1471 | ||
1427 | host->csr.broadcast_channel |= 0x40000000; /* set validity bit */ | 1472 | /* We are a 1394a-2000 compliant IRM. Set the validity bit. */ |
1428 | 1473 | host->csr.broadcast_channel |= 0x40000000; | |
1429 | bc = cpu_to_be32(host->csr.broadcast_channel); | ||
1430 | |||
1431 | hpsb_write(host, LOCAL_BUS | ALL_NODES, get_hpsb_generation(host), | ||
1432 | (CSR_REGISTER_BASE | CSR_BROADCAST_CHANNEL), | ||
1433 | &bc, sizeof(quadlet_t)); | ||
1434 | 1474 | ||
1435 | /* If there is no bus manager then we should set the root node's | 1475 | /* If there is no bus manager then we should set the root node's |
1436 | * force_root bit to promote bus stability per the 1394 | 1476 | * force_root bit to promote bus stability per the 1394 |
@@ -1463,6 +1503,13 @@ static int nodemgr_do_irm_duties(struct hpsb_host *host, int cycles) | |||
1463 | } | 1503 | } |
1464 | } | 1504 | } |
1465 | 1505 | ||
1506 | /* Some devices suspend their ports while being connected to an inactive | ||
1507 | * host adapter, i.e. if connected before the low-level driver is | ||
1508 | * loaded. They become visible either when physically unplugged and | ||
1509 | * replugged, or when receiving a resume packet. Send one once. */ | ||
1510 | if (!host->resume_packet_sent && !nodemgr_send_resume_packet(host)) | ||
1511 | host->resume_packet_sent = 1; | ||
1512 | |||
1466 | return 1; | 1513 | return 1; |
1467 | } | 1514 | } |
1468 | 1515 | ||
diff --git a/drivers/input/misc/wistron_btns.c b/drivers/input/misc/wistron_btns.c index ef7ee924ecc6..b77e2692ba3a 100644 --- a/drivers/input/misc/wistron_btns.c +++ b/drivers/input/misc/wistron_btns.c | |||
@@ -339,7 +339,7 @@ static struct dmi_system_id dmi_ids[] = { | |||
339 | }, | 339 | }, |
340 | .driver_data = keymap_acer_travelmate_240 | 340 | .driver_data = keymap_acer_travelmate_240 |
341 | }, | 341 | }, |
342 | { 0, } | 342 | { NULL, } |
343 | }; | 343 | }; |
344 | 344 | ||
345 | static int __init select_keymap(void) | 345 | static int __init select_keymap(void) |
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c index 4acc7fd4cd0f..4f41ec3e4332 100644 --- a/drivers/input/mouse/alps.c +++ b/drivers/input/mouse/alps.c | |||
@@ -42,7 +42,7 @@ static struct alps_model_info alps_model_data[] = { | |||
42 | { { 0x53, 0x02, 0x14 }, 0xf8, 0xf8, 0 }, | 42 | { { 0x53, 0x02, 0x14 }, 0xf8, 0xf8, 0 }, |
43 | { { 0x63, 0x02, 0x0a }, 0xf8, 0xf8, 0 }, | 43 | { { 0x63, 0x02, 0x0a }, 0xf8, 0xf8, 0 }, |
44 | { { 0x63, 0x02, 0x14 }, 0xf8, 0xf8, 0 }, | 44 | { { 0x63, 0x02, 0x14 }, 0xf8, 0xf8, 0 }, |
45 | { { 0x63, 0x02, 0x28 }, 0xf8, 0xf8, 0 }, | 45 | { { 0x63, 0x02, 0x28 }, 0xf8, 0xf8, ALPS_FW_BK_2 }, /* Fujitsu Siemens S6010 */ |
46 | { { 0x63, 0x02, 0x3c }, 0x8f, 0x8f, ALPS_WHEEL }, /* Toshiba Satellite S2400-103 */ | 46 | { { 0x63, 0x02, 0x3c }, 0x8f, 0x8f, ALPS_WHEEL }, /* Toshiba Satellite S2400-103 */ |
47 | { { 0x63, 0x02, 0x50 }, 0xef, 0xef, ALPS_FW_BK_1 }, /* NEC Versa L320 */ | 47 | { { 0x63, 0x02, 0x50 }, 0xef, 0xef, ALPS_FW_BK_1 }, /* NEC Versa L320 */ |
48 | { { 0x63, 0x02, 0x64 }, 0xf8, 0xf8, 0 }, | 48 | { { 0x63, 0x02, 0x64 }, 0xf8, 0xf8, 0 }, |
diff --git a/drivers/macintosh/therm_pm72.c b/drivers/macintosh/therm_pm72.c index 3fc8cdd94c3d..5bb36274a5c6 100644 --- a/drivers/macintosh/therm_pm72.c +++ b/drivers/macintosh/therm_pm72.c | |||
@@ -933,7 +933,7 @@ static void do_monitor_cpu_combined(void) | |||
933 | if (state0->overtemp > 0) { | 933 | if (state0->overtemp > 0) { |
934 | state0->rpm = state0->mpu.rmaxn_exhaust_fan; | 934 | state0->rpm = state0->mpu.rmaxn_exhaust_fan; |
935 | state0->intake_rpm = intake = state0->mpu.rmaxn_intake_fan; | 935 | state0->intake_rpm = intake = state0->mpu.rmaxn_intake_fan; |
936 | pump = state0->pump_min; | 936 | pump = state0->pump_max; |
937 | goto do_set_fans; | 937 | goto do_set_fans; |
938 | } | 938 | } |
939 | 939 | ||
diff --git a/drivers/macintosh/windfarm_pm81.c b/drivers/macintosh/windfarm_pm81.c index 322c74b2687f..80ddf9776bde 100644 --- a/drivers/macintosh/windfarm_pm81.c +++ b/drivers/macintosh/windfarm_pm81.c | |||
@@ -207,7 +207,7 @@ static struct wf_smu_sys_fans_param wf_smu_sys_all_params[] = { | |||
207 | }, | 207 | }, |
208 | /* Model ID 3 */ | 208 | /* Model ID 3 */ |
209 | { | 209 | { |
210 | .model_id = 2, | 210 | .model_id = 3, |
211 | .itarget = 0x350000, | 211 | .itarget = 0x350000, |
212 | .gd = 0x08e00000, | 212 | .gd = 0x08e00000, |
213 | .gp = 0x00566666, | 213 | .gp = 0x00566666, |
@@ -219,7 +219,7 @@ static struct wf_smu_sys_fans_param wf_smu_sys_all_params[] = { | |||
219 | }, | 219 | }, |
220 | /* Model ID 5 */ | 220 | /* Model ID 5 */ |
221 | { | 221 | { |
222 | .model_id = 2, | 222 | .model_id = 5, |
223 | .itarget = 0x3a0000, | 223 | .itarget = 0x3a0000, |
224 | .gd = 0x15400000, | 224 | .gd = 0x15400000, |
225 | .gp = 0x00233333, | 225 | .gp = 0x00233333, |
diff --git a/drivers/md/md.c b/drivers/md/md.c index cd12fca73b0d..8175a2a222da 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -1729,7 +1729,7 @@ level_show(mddev_t *mddev, char *page) | |||
1729 | if (p == NULL && mddev->raid_disks == 0) | 1729 | if (p == NULL && mddev->raid_disks == 0) |
1730 | return 0; | 1730 | return 0; |
1731 | if (mddev->level >= 0) | 1731 | if (mddev->level >= 0) |
1732 | return sprintf(page, "RAID-%d\n", mddev->level); | 1732 | return sprintf(page, "raid%d\n", mddev->level); |
1733 | else | 1733 | else |
1734 | return sprintf(page, "%s\n", p->name); | 1734 | return sprintf(page, "%s\n", p->name); |
1735 | } | 1735 | } |
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 3066c587b539..229d7b204297 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -320,7 +320,6 @@ static int raid1_end_write_request(struct bio *bio, unsigned int bytes_done, int | |||
320 | * this branch is our 'one mirror IO has finished' event handler: | 320 | * this branch is our 'one mirror IO has finished' event handler: |
321 | */ | 321 | */ |
322 | r1_bio->bios[mirror] = NULL; | 322 | r1_bio->bios[mirror] = NULL; |
323 | bio_put(bio); | ||
324 | if (!uptodate) { | 323 | if (!uptodate) { |
325 | md_error(r1_bio->mddev, conf->mirrors[mirror].rdev); | 324 | md_error(r1_bio->mddev, conf->mirrors[mirror].rdev); |
326 | /* an I/O failed, we can't clear the bitmap */ | 325 | /* an I/O failed, we can't clear the bitmap */ |
@@ -377,7 +376,6 @@ static int raid1_end_write_request(struct bio *bio, unsigned int bytes_done, int | |||
377 | } | 376 | } |
378 | if (test_bit(R1BIO_BehindIO, &r1_bio->state)) { | 377 | if (test_bit(R1BIO_BehindIO, &r1_bio->state)) { |
379 | /* free extra copy of the data pages */ | 378 | /* free extra copy of the data pages */ |
380 | /* FIXME bio has been freed!!! */ | ||
381 | int i = bio->bi_vcnt; | 379 | int i = bio->bi_vcnt; |
382 | while (i--) | 380 | while (i--) |
383 | __free_page(bio->bi_io_vec[i].bv_page); | 381 | __free_page(bio->bi_io_vec[i].bv_page); |
@@ -391,6 +389,9 @@ static int raid1_end_write_request(struct bio *bio, unsigned int bytes_done, int | |||
391 | raid_end_bio_io(r1_bio); | 389 | raid_end_bio_io(r1_bio); |
392 | } | 390 | } |
393 | 391 | ||
392 | if (r1_bio->bios[mirror]==NULL) | ||
393 | bio_put(bio); | ||
394 | |||
394 | rdev_dec_pending(conf->mirrors[mirror].rdev, conf->mddev); | 395 | rdev_dec_pending(conf->mirrors[mirror].rdev, conf->mddev); |
395 | return 0; | 396 | return 0; |
396 | } | 397 | } |
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 36d5f8ac8265..fafc4bc045f7 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -98,7 +98,7 @@ static inline void __release_stripe(raid5_conf_t *conf, struct stripe_head *sh) | |||
98 | list_add_tail(&sh->lru, &conf->inactive_list); | 98 | list_add_tail(&sh->lru, &conf->inactive_list); |
99 | atomic_dec(&conf->active_stripes); | 99 | atomic_dec(&conf->active_stripes); |
100 | if (!conf->inactive_blocked || | 100 | if (!conf->inactive_blocked || |
101 | atomic_read(&conf->active_stripes) < (NR_STRIPES*3/4)) | 101 | atomic_read(&conf->active_stripes) < (conf->max_nr_stripes*3/4)) |
102 | wake_up(&conf->wait_for_stripe); | 102 | wake_up(&conf->wait_for_stripe); |
103 | } | 103 | } |
104 | } | 104 | } |
@@ -264,7 +264,8 @@ static struct stripe_head *get_active_stripe(raid5_conf_t *conf, sector_t sector | |||
264 | conf->inactive_blocked = 1; | 264 | conf->inactive_blocked = 1; |
265 | wait_event_lock_irq(conf->wait_for_stripe, | 265 | wait_event_lock_irq(conf->wait_for_stripe, |
266 | !list_empty(&conf->inactive_list) && | 266 | !list_empty(&conf->inactive_list) && |
267 | (atomic_read(&conf->active_stripes) < (NR_STRIPES *3/4) | 267 | (atomic_read(&conf->active_stripes) |
268 | < (conf->max_nr_stripes *3/4) | ||
268 | || !conf->inactive_blocked), | 269 | || !conf->inactive_blocked), |
269 | conf->device_lock, | 270 | conf->device_lock, |
270 | unplug_slaves(conf->mddev); | 271 | unplug_slaves(conf->mddev); |
@@ -1917,7 +1918,7 @@ static int run(mddev_t *mddev) | |||
1917 | goto abort; | 1918 | goto abort; |
1918 | } | 1919 | } |
1919 | } | 1920 | } |
1920 | memory = conf->max_nr_stripes * (sizeof(struct stripe_head) + | 1921 | memory = conf->max_nr_stripes * (sizeof(struct stripe_head) + |
1921 | conf->raid_disks * ((sizeof(struct bio) + PAGE_SIZE))) / 1024; | 1922 | conf->raid_disks * ((sizeof(struct bio) + PAGE_SIZE))) / 1024; |
1922 | if (grow_stripes(conf, conf->max_nr_stripes)) { | 1923 | if (grow_stripes(conf, conf->max_nr_stripes)) { |
1923 | printk(KERN_ERR | 1924 | printk(KERN_ERR |
diff --git a/drivers/media/common/Kconfig b/drivers/media/common/Kconfig index caebd0a1c021..6a901a0268e1 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 97b4341255ea..bd458cb9b4ea 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 7972c73bc14e..97fa3fc571c4 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 206cc2f61f26..2899d34e5f7e 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 37888989ea2e..09ec964dec5c 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 fec6beab8c28..8aabdd8fb3c5 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 cb86a97fda1f..063986ec16b5 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 8dd4d15ca36d..1d961023b837 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 a94912ac1872..344a3c898460 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 a35330315f65..21a9045b3ef6 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/bt8xx/dst_ca.c b/drivers/media/dvb/bt8xx/dst_ca.c index e6541aff3996..2239651969c8 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 2e398090cf63..77977e9c013e 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/dvb-core/demux.h b/drivers/media/dvb/dvb-core/demux.h index 7d7b0067f228..9f025825b2d2 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 8028c3a5e287..7b8373ad121b 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 395a9cd75012..fd72920c2199 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 cb2e7d6ba283..5956c35d34ac 100644 --- a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c +++ b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c | |||
@@ -498,7 +498,7 @@ static int dvb_ca_en50221_parse_attributes(struct dvb_ca_private *ca, int slot) | |||
498 | /* process the CFTABLE_ENTRY tuples, and any after those */ | 498 | /* process the CFTABLE_ENTRY tuples, and any after those */ |
499 | while ((!end_chain) && (address < 0x1000)) { | 499 | while ((!end_chain) && (address < 0x1000)) { |
500 | if ((status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tupleType, | 500 | if ((status = dvb_ca_en50221_read_tuple(ca, slot, &address, &tupleType, |
501 | &tupleLength, tuple)) < 0) | 501 | &tupleLength, tuple)) < 0) |
502 | return status; | 502 | return status; |
503 | switch (tupleType) { | 503 | switch (tupleType) { |
504 | case 0x1B: // CISTPL_CFTABLE_ENTRY | 504 | case 0x1B: // CISTPL_CFTABLE_ENTRY |
diff --git a/drivers/media/dvb/dvb-core/dvb_filter.c b/drivers/media/dvb/dvb-core/dvb_filter.c index bd5143906084..c49fd0bd7181 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 b0848f7836b7..375e3be184b1 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 6ffa6b216363..95ea5095e07e 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 348c9b0b988a..1e0840d02f1f 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 df536bd2e103..86bba81e851e 100644 --- a/drivers/media/dvb/dvb-core/dvb_net.c +++ b/drivers/media/dvb/dvb-core/dvb_net.c | |||
@@ -713,7 +713,7 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len, | |||
713 | if (buffer1_len > 32768) | 713 | if (buffer1_len > 32768) |
714 | printk(KERN_WARNING "length > 32k: %zu.\n", buffer1_len); | 714 | printk(KERN_WARNING "length > 32k: %zu.\n", buffer1_len); |
715 | /* printk("TS callback: %u bytes, %u TS cells @ %p.\n", | 715 | /* printk("TS callback: %u bytes, %u TS cells @ %p.\n", |
716 | buffer1_len, buffer1_len / TS_SZ, buffer1); */ | 716 | buffer1_len, buffer1_len / TS_SZ, buffer1); */ |
717 | dvb_net_ule(dev, buffer1, buffer1_len); | 717 | dvb_net_ule(dev, buffer1, buffer1_len); |
718 | return 0; | 718 | return 0; |
719 | } | 719 | } |
@@ -721,8 +721,8 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len, | |||
721 | 721 | ||
722 | 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) |
723 | { | 723 | { |
724 | u8 *eth; | 724 | u8 *eth; |
725 | struct sk_buff *skb; | 725 | struct sk_buff *skb; |
726 | 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); |
727 | int snap = 0; | 727 | int snap = 0; |
728 | 728 | ||
@@ -754,7 +754,7 @@ static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) | |||
754 | return; | 754 | return; |
755 | } | 755 | } |
756 | snap = 8; | 756 | snap = 8; |
757 | } | 757 | } |
758 | if (pkt[7]) { | 758 | if (pkt[7]) { |
759 | /* FIXME: assemble datagram from multiple sections */ | 759 | /* FIXME: assemble datagram from multiple sections */ |
760 | stats->rx_errors++; | 760 | stats->rx_errors++; |
@@ -778,14 +778,14 @@ static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) | |||
778 | memcpy(eth + 14, pkt + 12 + snap, pkt_len - 12 - 4 - snap); | 778 | memcpy(eth + 14, pkt + 12 + snap, pkt_len - 12 - 4 - snap); |
779 | 779 | ||
780 | /* create ethernet header: */ | 780 | /* create ethernet header: */ |
781 | eth[0]=pkt[0x0b]; | 781 | eth[0]=pkt[0x0b]; |
782 | eth[1]=pkt[0x0a]; | 782 | eth[1]=pkt[0x0a]; |
783 | eth[2]=pkt[0x09]; | 783 | eth[2]=pkt[0x09]; |
784 | eth[3]=pkt[0x08]; | 784 | eth[3]=pkt[0x08]; |
785 | eth[4]=pkt[0x04]; | 785 | eth[4]=pkt[0x04]; |
786 | eth[5]=pkt[0x03]; | 786 | eth[5]=pkt[0x03]; |
787 | 787 | ||
788 | 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; |
789 | 789 | ||
790 | if (snap) { | 790 | if (snap) { |
791 | eth[12] = pkt[18]; | 791 | eth[12] = pkt[18]; |
@@ -807,7 +807,7 @@ static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) | |||
807 | 807 | ||
808 | stats->rx_packets++; | 808 | stats->rx_packets++; |
809 | stats->rx_bytes+=skb->len; | 809 | stats->rx_bytes+=skb->len; |
810 | netif_rx(skb); | 810 | netif_rx(skb); |
811 | } | 811 | } |
812 | 812 | ||
813 | 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, |
@@ -815,7 +815,7 @@ static int dvb_net_sec_callback(const u8 *buffer1, size_t buffer1_len, | |||
815 | struct dmx_section_filter *filter, | 815 | struct dmx_section_filter *filter, |
816 | enum dmx_success success) | 816 | enum dmx_success success) |
817 | { | 817 | { |
818 | struct net_device *dev = filter->priv; | 818 | struct net_device *dev = filter->priv; |
819 | 819 | ||
820 | /** | 820 | /** |
821 | * we rely on the DVB API definition where exactly one complete | 821 | * we rely on the DVB API definition where exactly one complete |
@@ -885,8 +885,8 @@ static int dvb_net_feed_start(struct net_device *dev) | |||
885 | { | 885 | { |
886 | int ret = 0, i; | 886 | int ret = 0, i; |
887 | struct dvb_net_priv *priv = dev->priv; | 887 | struct dvb_net_priv *priv = dev->priv; |
888 | struct dmx_demux *demux = priv->demux; | 888 | struct dmx_demux *demux = priv->demux; |
889 | unsigned char *mac = (unsigned char *) dev->dev_addr; | 889 | unsigned char *mac = (unsigned char *) dev->dev_addr; |
890 | 890 | ||
891 | 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); | 892 | down(&priv->mutex); |
@@ -1129,12 +1129,12 @@ static int dvb_net_stop(struct net_device *dev) | |||
1129 | struct dvb_net_priv *priv = dev->priv; | 1129 | struct dvb_net_priv *priv = dev->priv; |
1130 | 1130 | ||
1131 | priv->in_use--; | 1131 | priv->in_use--; |
1132 | return dvb_net_feed_stop(dev); | 1132 | return dvb_net_feed_stop(dev); |
1133 | } | 1133 | } |
1134 | 1134 | ||
1135 | 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) |
1136 | { | 1136 | { |
1137 | return &((struct dvb_net_priv*) dev->priv)->stats; | 1137 | return &((struct dvb_net_priv*) dev->priv)->stats; |
1138 | } | 1138 | } |
1139 | 1139 | ||
1140 | static void dvb_net_setup(struct net_device *dev) | 1140 | static void dvb_net_setup(struct net_device *dev) |
@@ -1360,10 +1360,10 @@ static struct file_operations dvb_net_fops = { | |||
1360 | }; | 1360 | }; |
1361 | 1361 | ||
1362 | static struct dvb_device dvbdev_net = { | 1362 | static struct dvb_device dvbdev_net = { |
1363 | .priv = NULL, | 1363 | .priv = NULL, |
1364 | .users = 1, | 1364 | .users = 1, |
1365 | .writers = 1, | 1365 | .writers = 1, |
1366 | .fops = &dvb_net_fops, | 1366 | .fops = &dvb_net_fops, |
1367 | }; | 1367 | }; |
1368 | 1368 | ||
1369 | 1369 | ||
diff --git a/drivers/media/dvb/dvb-core/dvb_ringbuffer.c b/drivers/media/dvb/dvb-core/dvb_ringbuffer.c index fb6d94a69d71..283c6e9339a4 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 d18e9c4ba9ea..fa476f662f82 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 477b4fa56430..a4aee8665854 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 a251867f30f1..0cc6e4a0e27c 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/vp702x-fe.c b/drivers/media/dvb/dvb-usb/vp702x-fe.c index f20d8dbd0be8..104b5d016c7b 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/vp7045-fe.c b/drivers/media/dvb/dvb-usb/vp7045-fe.c index 2746edfeccba..83f1de1e7e57 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/frontends/at76c651.c b/drivers/media/dvb/frontends/at76c651.c index 72a2b5455b0b..8e0f4b3a1417 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 f6d4ee78bdd4..8ceb9a33c7af 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 0c2ed4438618..755f774f6b7d 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 d9a8ede14b45..5de0e6d350b1 100644 --- a/drivers/media/dvb/frontends/cx22702.c +++ b/drivers/media/dvb/frontends/cx22702.c | |||
@@ -2,7 +2,7 @@ | |||
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> |
diff --git a/drivers/media/dvb/frontends/cx22702.h b/drivers/media/dvb/frontends/cx22702.h index 1f250885d2ce..5633976a58f1 100644 --- a/drivers/media/dvb/frontends/cx22702.h +++ b/drivers/media/dvb/frontends/cx22702.h | |||
@@ -2,7 +2,7 @@ | |||
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> |
diff --git a/drivers/media/dvb/frontends/cx24110.c b/drivers/media/dvb/frontends/cx24110.c index 654d7dc879d9..0c4db80ec332 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 19b4bf7c21a7..1c7c91224472 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 7e30fb0fdfa7..947f65f87465 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 6a33f5a19a8d..cb5301865d07 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 9c67f406d581..8d672283c93d 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 30786b1911bd..52c416043a62 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 84b62881cea7..aeafef46e3eb 100644 --- a/drivers/media/dvb/frontends/nxt200x.c +++ b/drivers/media/dvb/frontends/nxt200x.c | |||
@@ -339,7 +339,7 @@ static int nxt200x_writetuner (struct nxt200x_state* state, u8* data) | |||
339 | switch (state->demod_chip) { | 339 | switch (state->demod_chip) { |
340 | case NXT2004: | 340 | case NXT2004: |
341 | if (i2c_writebytes(state, state->config->pll_address, data, 4)) | 341 | if (i2c_writebytes(state, state->config->pll_address, data, 4)) |
342 | printk(KERN_WARNING "nxt200x: error writing to tuner\n"); | 342 | printk(KERN_WARNING "nxt200x: error writing to tuner\n"); |
343 | /* wait until we have a lock */ | 343 | /* wait until we have a lock */ |
344 | while (count < 20) { | 344 | while (count < 20) { |
345 | i2c_readbytes(state, state->config->pll_address, &buf, 1); | 345 | i2c_readbytes(state, state->config->pll_address, &buf, 1); |
@@ -497,7 +497,7 @@ static int nxt2004_load_firmware (struct dvb_frontend* fe, const struct firmware | |||
497 | 497 | ||
498 | /* calculate firmware CRC */ | 498 | /* calculate firmware CRC */ |
499 | for (position = 0; position < fw->size; position++) { | 499 | for (position = 0; position < fw->size; position++) { |
500 | crc = nxt200x_crc(crc, fw->data[position]); | 500 | crc = nxt200x_crc(crc, fw->data[position]); |
501 | } | 501 | } |
502 | 502 | ||
503 | 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 88a57b791112..a458a3bfff70 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 78bded861d02..80e0f28127b7 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 f265418e3261..18715091aed8 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 872028ddf2a2..73296f13c324 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 1c6b2e9264bc..fc06cd6b46c3 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 73384e75625e..e3b665782243 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 29c48665e130..177d71d56b67 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 eaf130e666d8..425cd19136fe 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 7d6a51ce291e..53be939e8c55 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 7968743826fc..dd02aff467fe 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 c05cf1861051..91baa9cedd79 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/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c index 87ea52757a21..7dae91e5863c 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_hw.c b/drivers/media/dvb/ttpci/av7110_hw.c index 7442f56a72ec..87106e8bf35b 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 fedd20f9815d..2a5e87ba1052 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 6af74f78b3e5..b5aea4129fa7 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-core.c b/drivers/media/dvb/ttpci/budget-core.c index 0498a055a4cd..017fcbccb8cc 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 755df81cbc49..fc416cf5253c 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 bc4ce7559cbe..fafe6407b3d0 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 | } |
diff --git a/drivers/media/dvb/ttpci/budget.h b/drivers/media/dvb/ttpci/budget.h index c6ef496ba70a..fdaa3318ad3a 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(): ",__stringify(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 0b478db3e744..c90001d35e7d 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 ac79ef178c05..18aa22b5478d 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 |
@@ -48,41 +48,41 @@ | |||
48 | 48 | ||
49 | static int check_mac_tt(u8 *buf) | 49 | static int check_mac_tt(u8 *buf) |
50 | { | 50 | { |
51 | int i; | 51 | int i; |
52 | u16 tmp = 0xffff; | 52 | u16 tmp = 0xffff; |
53 | 53 | ||
54 | for (i = 0; i < 8; i++) { | 54 | for (i = 0; i < 8; i++) { |
55 | tmp = (tmp << 8) | ((tmp >> 8) ^ buf[i]); | 55 | tmp = (tmp << 8) | ((tmp >> 8) ^ buf[i]); |
56 | tmp ^= (tmp >> 4) & 0x0f; | 56 | tmp ^= (tmp >> 4) & 0x0f; |
57 | tmp ^= (tmp << 12) ^ ((tmp & 0xff) << 5); | 57 | tmp ^= (tmp << 12) ^ ((tmp & 0xff) << 5); |
58 | } | 58 | } |
59 | tmp ^= 0xffff; | 59 | tmp ^= 0xffff; |
60 | return (((tmp >> 8) ^ buf[8]) | ((tmp & 0xff) ^ buf[9])); | 60 | return (((tmp >> 8) ^ buf[8]) | ((tmp & 0xff) ^ buf[9])); |
61 | } | 61 | } |
62 | 62 | ||
63 | static int getmac_tt(u8 * decodedMAC, u8 * encodedMAC) | 63 | static int getmac_tt(u8 * decodedMAC, u8 * encodedMAC) |
64 | { | 64 | { |
65 | u8 xor[20] = { 0x72, 0x23, 0x68, 0x19, 0x5c, 0xa8, 0x71, 0x2c, | 65 | u8 xor[20] = { 0x72, 0x23, 0x68, 0x19, 0x5c, 0xa8, 0x71, 0x2c, |
66 | 0x54, 0xd3, 0x7b, 0xf1, 0x9E, 0x23, 0x16, 0xf6, | 66 | 0x54, 0xd3, 0x7b, 0xf1, 0x9E, 0x23, 0x16, 0xf6, |
67 | 0x1d, 0x36, 0x64, 0x78}; | 67 | 0x1d, 0x36, 0x64, 0x78}; |
68 | u8 data[20]; | 68 | u8 data[20]; |
69 | int i; | 69 | int i; |
70 | 70 | ||
71 | /* 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 */ |
72 | memcpy(data, encodedMAC, 20); | 72 | memcpy(data, encodedMAC, 20); |
73 | 73 | ||
74 | for (i = 0; i < 20; i++) | 74 | for (i = 0; i < 20; i++) |
75 | data[i] ^= xor[i]; | 75 | data[i] ^= xor[i]; |
76 | for (i = 0; i < 10; i++) | 76 | for (i = 0; i < 10; i++) |
77 | data[i] = ((data[2 * i + 1] << 8) | data[2 * i]) | 77 | data[i] = ((data[2 * i + 1] << 8) | data[2 * i]) |
78 | >> ((data[2 * i + 1] >> 6) & 3); | 78 | >> ((data[2 * i + 1] >> 6) & 3); |
79 | 79 | ||
80 | if (check_mac_tt(data)) | 80 | if (check_mac_tt(data)) |
81 | return -ENODEV; | 81 | return -ENODEV; |
82 | 82 | ||
83 | 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]; |
84 | 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]; |
85 | return 0; | 85 | return 0; |
86 | } | 86 | } |
87 | 87 | ||
88 | 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 fd53d6010502..104df610dbe1 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 95ee7995455e..8c3cd545e8f4 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 832d179f26fa..8abc21890129 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 cc4a723e24db..fc87efc5049c 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig | |||
@@ -188,7 +188,7 @@ config VIDEO_ZORAN | |||
188 | 188 | ||
189 | To compile this driver as a module, choose M here: the | 189 | To compile this driver as a module, choose M here: the |
190 | module will be called zr36067. | 190 | module will be called zr36067. |
191 | 191 | ||
192 | config VIDEO_ZORAN_BUZ | 192 | config VIDEO_ZORAN_BUZ |
193 | tristate "Iomega Buz support" | 193 | tristate "Iomega Buz support" |
194 | depends on VIDEO_ZORAN | 194 | depends on VIDEO_ZORAN |
@@ -204,8 +204,8 @@ config VIDEO_ZORAN_DC10 | |||
204 | 204 | ||
205 | config VIDEO_ZORAN_DC30 | 205 | config VIDEO_ZORAN_DC30 |
206 | tristate "Pinnacle/Miro DC30(+) support" | 206 | tristate "Pinnacle/Miro DC30(+) support" |
207 | depends on VIDEO_ZORAN | 207 | depends on VIDEO_ZORAN |
208 | help | 208 | help |
209 | Support for the Pinnacle/Miro DC30(+) MJPEG capture/playback | 209 | Support for the Pinnacle/Miro DC30(+) MJPEG capture/playback |
210 | card. This also supports really old DC10 cards based on the | 210 | card. This also supports really old DC10 cards based on the |
211 | zr36050 MJPEG codec and zr36016 VFE. | 211 | zr36050 MJPEG codec and zr36016 VFE. |
@@ -260,7 +260,7 @@ config VIDEO_MXB | |||
260 | ---help--- | 260 | ---help--- |
261 | This is a video4linux driver for the 'Multimedia eXtension Board' | 261 | This is a video4linux driver for the 'Multimedia eXtension Board' |
262 | TV card by Siemens-Nixdorf. | 262 | TV card by Siemens-Nixdorf. |
263 | 263 | ||
264 | To compile this driver as a module, choose M here: the | 264 | To compile this driver as a module, choose M here: the |
265 | module will be called mxb. | 265 | module will be called mxb. |
266 | 266 | ||
@@ -274,7 +274,7 @@ config VIDEO_DPC | |||
274 | for SAA7146 bases boards, so if you have some unsupported | 274 | for SAA7146 bases boards, so if you have some unsupported |
275 | saa7146 based, analog video card, chances are good that it | 275 | saa7146 based, analog video card, chances are good that it |
276 | will work with this skeleton driver. | 276 | will work with this skeleton driver. |
277 | 277 | ||
278 | To compile this driver as a module, choose M here: the | 278 | To compile this driver as a module, choose M here: the |
279 | module will be called dpc7146. | 279 | module will be called dpc7146. |
280 | 280 | ||
@@ -285,7 +285,7 @@ config VIDEO_HEXIUM_ORION | |||
285 | ---help--- | 285 | ---help--- |
286 | This is a video4linux driver for the Hexium HV-PCI6 and | 286 | This is a video4linux driver for the Hexium HV-PCI6 and |
287 | Orion frame grabber cards by Hexium. | 287 | Orion frame grabber cards by Hexium. |
288 | 288 | ||
289 | To compile this driver as a module, choose M here: the | 289 | To compile this driver as a module, choose M here: the |
290 | module will be called hexium_orion. | 290 | module will be called hexium_orion. |
291 | 291 | ||
@@ -297,7 +297,7 @@ config VIDEO_HEXIUM_GEMINI | |||
297 | This is a video4linux driver for the Hexium Gemini frame | 297 | This is a video4linux driver for the Hexium Gemini frame |
298 | grabber card by Hexium. Please note that the Gemini Dual | 298 | grabber card by Hexium. Please note that the Gemini Dual |
299 | card is *not* fully supported. | 299 | card is *not* fully supported. |
300 | 300 | ||
301 | To compile this driver as a module, choose M here: the | 301 | To compile this driver as a module, choose M here: the |
302 | module will be called hexium_gemini. | 302 | module will be called hexium_gemini. |
303 | 303 | ||
diff --git a/drivers/media/video/bt832.c b/drivers/media/video/bt832.c index e4063950ae57..3ca1d768bfd3 100644 --- a/drivers/media/video/bt832.c +++ b/drivers/media/video/bt832.c | |||
@@ -231,18 +231,18 @@ bt832_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
231 | 231 | ||
232 | static struct i2c_driver driver = { | 232 | static struct i2c_driver driver = { |
233 | .owner = THIS_MODULE, | 233 | .owner = THIS_MODULE, |
234 | .name = "i2c bt832 driver", | 234 | .name = "i2c bt832 driver", |
235 | .id = -1, /* FIXME */ | 235 | .id = -1, /* FIXME */ |
236 | .flags = I2C_DF_NOTIFY, | 236 | .flags = I2C_DF_NOTIFY, |
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 | .flags = I2C_CLIENT_ALLOW_USE, |
245 | .driver = &driver, | 245 | .driver = &driver, |
246 | }; | 246 | }; |
247 | 247 | ||
248 | 248 | ||
diff --git a/drivers/media/video/bttv-driver.c b/drivers/media/video/bttv-driver.c index 3c58a2a68906..1ddf9ba613ef 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 */ |
@@ -1964,7 +1964,7 @@ static int setup_window(struct bttv_fh *fh, struct bttv *btv, | |||
1964 | } | 1964 | } |
1965 | 1965 | ||
1966 | down(&fh->cap.lock); | 1966 | down(&fh->cap.lock); |
1967 | kfree(fh->ov.clips); | 1967 | kfree(fh->ov.clips); |
1968 | fh->ov.clips = clips; | 1968 | fh->ov.clips = clips; |
1969 | fh->ov.nclips = n; | 1969 | fh->ov.nclips = n; |
1970 | 1970 | ||
@@ -2758,7 +2758,7 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file, | |||
2758 | fh->ov.w.height = fb->fmt.height; | 2758 | fh->ov.w.height = fb->fmt.height; |
2759 | btv->init.ov.w.width = fb->fmt.width; | 2759 | btv->init.ov.w.width = fb->fmt.width; |
2760 | btv->init.ov.w.height = fb->fmt.height; | 2760 | btv->init.ov.w.height = fb->fmt.height; |
2761 | kfree(fh->ov.clips); | 2761 | kfree(fh->ov.clips); |
2762 | fh->ov.clips = NULL; | 2762 | fh->ov.clips = NULL; |
2763 | fh->ov.nclips = 0; | 2763 | fh->ov.nclips = 0; |
2764 | 2764 | ||
diff --git a/drivers/media/video/bttvp.h b/drivers/media/video/bttvp.h index 3aa9c6e4fc33..1e6a5632c3c7 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/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c index aea3f038cff6..5b93723a1768 100644 --- a/drivers/media/video/cx25840/cx25840-core.c +++ b/drivers/media/video/cx25840/cx25840-core.c | |||
@@ -333,24 +333,30 @@ static int set_input(struct i2c_client *client, enum cx25840_input input) | |||
333 | 333 | ||
334 | 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) |
335 | { | 335 | { |
336 | u8 fmt; | 336 | u8 fmt=0; /* zero is autodetect */ |
337 | 337 | ||
338 | switch (std) { | 338 | /* First tests should be against specific std */ |
339 | /* zero is autodetect */ | 339 | if (std & V4L2_STD_NTSC_M_JP) { |
340 | case 0: fmt = 0x0; break; | 340 | fmt=0x2; |
341 | /* default ntsc to ntsc-m */ | 341 | } else if (std & V4L2_STD_NTSC_443) { |
342 | case V4L2_STD_NTSC: | 342 | fmt=0x3; |
343 | case V4L2_STD_NTSC_M: fmt = 0x1; break; | 343 | } else if (std & V4L2_STD_PAL_M) { |
344 | case V4L2_STD_NTSC_M_JP: fmt = 0x2; break; | 344 | fmt=0x5; |
345 | case V4L2_STD_NTSC_443: fmt = 0x3; break; | 345 | } else if (std & V4L2_STD_PAL_N) { |
346 | case V4L2_STD_PAL: fmt = 0x4; break; | 346 | fmt=0x6; |
347 | case V4L2_STD_PAL_M: fmt = 0x5; break; | 347 | } else if (std & V4L2_STD_PAL_Nc) { |
348 | case V4L2_STD_PAL_N: fmt = 0x6; break; | 348 | fmt=0x7; |
349 | case V4L2_STD_PAL_Nc: fmt = 0x7; break; | 349 | } else if (std & V4L2_STD_PAL_60) { |
350 | case V4L2_STD_PAL_60: fmt = 0x8; break; | 350 | fmt=0x8; |
351 | case V4L2_STD_SECAM: fmt = 0xc; break; | 351 | } else { |
352 | default: | 352 | /* Then, test against generic ones */ |
353 | 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 | } | ||
354 | } | 360 | } |
355 | 361 | ||
356 | cx25840_and_or(client, 0x400, ~0xf, fmt); | 362 | cx25840_and_or(client, 0x400, ~0xf, fmt); |
diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c index 4ae3f78cccf2..74e57a53116f 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-input.c b/drivers/media/video/cx88/cx88-input.c index 38b12ebaa49e..461019dca901 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.h b/drivers/media/video/cx88/cx88.h index 27fb080fd7aa..77beafc5c327 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 | ||
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c index 9f6e5e5355a1..0cfe75416ec6 100644 --- a/drivers/media/video/em28xx/em28xx-core.c +++ b/drivers/media/video/em28xx/em28xx-core.c | |||
@@ -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 b32d9852f34c..7f5603054f02 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) |
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index abec32c175aa..06d76879bde2 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 |
@@ -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 | } |
diff --git a/drivers/media/video/ir-kbd-gpio.c b/drivers/media/video/ir-kbd-gpio.c index 6345e29e4951..de1385e5d05e 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 124c502ea1f3..740e543311af 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 | ||
@@ -278,7 +279,7 @@ 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 | .name = "ir remote kbd driver", |
281 | .id = I2C_DRIVERID_I2C_IR, | 282 | .id = I2C_DRIVERID_INFRARED, |
282 | .flags = I2C_DF_NOTIFY, | 283 | .flags = I2C_DF_NOTIFY, |
283 | .attach_adapter = ir_probe, | 284 | .attach_adapter = ir_probe, |
284 | .detach_client = ir_detach, | 285 | .detach_client = ir_detach, |
@@ -296,15 +297,15 @@ static int ir_attach(struct i2c_adapter *adap, int addr, | |||
296 | IR_KEYTAB_TYPE *ir_codes = NULL; | 297 | IR_KEYTAB_TYPE *ir_codes = NULL; |
297 | char *name; | 298 | char *name; |
298 | int ir_type; | 299 | int ir_type; |
299 | struct IR_i2c *ir; | 300 | struct IR_i2c *ir; |
300 | struct input_dev *input_dev; | 301 | struct input_dev *input_dev; |
301 | 302 | ||
302 | ir = kzalloc(sizeof(struct IR_i2c), GFP_KERNEL); | 303 | ir = kzalloc(sizeof(struct IR_i2c),GFP_KERNEL); |
303 | input_dev = input_allocate_device(); | 304 | input_dev = input_allocate_device(); |
304 | if (!ir || !input_dev) { | 305 | if (!ir || !input_dev) { |
305 | kfree(ir); | 306 | kfree(ir); |
306 | input_free_device(input_dev); | 307 | input_free_device(input_dev); |
307 | return -ENOMEM; | 308 | return -ENOMEM; |
308 | } | 309 | } |
309 | 310 | ||
310 | ir->c = client_template; | 311 | ir->c = client_template; |
@@ -360,7 +361,7 @@ static int ir_attach(struct i2c_adapter *adap, int addr, | |||
360 | /* register i2c device | 361 | /* register i2c device |
361 | * At device register, IR codes may be changed to be | 362 | * At device register, IR codes may be changed to be |
362 | * board dependent. | 363 | * board dependent. |
363 | */ | 364 | */ |
364 | i2c_attach_client(&ir->c); | 365 | i2c_attach_client(&ir->c); |
365 | 366 | ||
366 | /* If IR not supported or disabled, unregisters driver */ | 367 | /* If IR not supported or disabled, unregisters driver */ |
diff --git a/drivers/media/video/msp3400.c b/drivers/media/video/msp3400.c index a23fb0338986..d86f8e92e534 100644 --- a/drivers/media/video/msp3400.c +++ b/drivers/media/video/msp3400.c | |||
@@ -134,7 +134,7 @@ struct msp3400c { | |||
134 | int rxsubchans; | 134 | int rxsubchans; |
135 | 135 | ||
136 | int muted; | 136 | int muted; |
137 | int left, right; /* volume */ | 137 | int left, right; /* volume */ |
138 | int bass, treble; | 138 | int bass, treble; |
139 | 139 | ||
140 | /* shadow register set */ | 140 | /* shadow register set */ |
@@ -882,6 +882,7 @@ static void watch_stereo(struct i2c_client *client) | |||
882 | msp->watch_stereo = 0; | 882 | msp->watch_stereo = 0; |
883 | } | 883 | } |
884 | 884 | ||
885 | |||
885 | static int msp3400c_thread(void *data) | 886 | static int msp3400c_thread(void *data) |
886 | { | 887 | { |
887 | struct i2c_client *client = data; | 888 | struct i2c_client *client = data; |
@@ -889,6 +890,7 @@ static int msp3400c_thread(void *data) | |||
889 | struct CARRIER_DETECT *cd; | 890 | struct CARRIER_DETECT *cd; |
890 | int count, max1,max2,val1,val2, val,this; | 891 | int count, max1,max2,val1,val2, val,this; |
891 | 892 | ||
893 | |||
892 | msp3400_info("msp3400 daemon started\n"); | 894 | msp3400_info("msp3400 daemon started\n"); |
893 | for (;;) { | 895 | for (;;) { |
894 | msp3400_dbg_mediumvol("msp3400 thread: sleep\n"); | 896 | msp3400_dbg_mediumvol("msp3400 thread: sleep\n"); |
@@ -1162,6 +1164,7 @@ static int msp3410d_thread(void *data) | |||
1162 | int mode,val,i,std; | 1164 | int mode,val,i,std; |
1163 | 1165 | ||
1164 | msp3400_info("msp3410 daemon started\n"); | 1166 | msp3400_info("msp3410 daemon started\n"); |
1167 | |||
1165 | for (;;) { | 1168 | for (;;) { |
1166 | msp3400_dbg_mediumvol("msp3410 thread: sleep\n"); | 1169 | msp3400_dbg_mediumvol("msp3410 thread: sleep\n"); |
1167 | msp34xx_sleep(msp,-1); | 1170 | msp34xx_sleep(msp,-1); |
@@ -1384,6 +1387,7 @@ static int msp34xxg_thread(void *data) | |||
1384 | int val, std, i; | 1387 | int val, std, i; |
1385 | 1388 | ||
1386 | msp3400_info("msp34xxg daemon started\n"); | 1389 | msp3400_info("msp34xxg daemon started\n"); |
1390 | |||
1387 | msp->source = 1; /* default */ | 1391 | msp->source = 1; /* default */ |
1388 | for (;;) { | 1392 | for (;;) { |
1389 | msp3400_dbg_mediumvol("msp34xxg thread: sleep\n"); | 1393 | msp3400_dbg_mediumvol("msp34xxg thread: sleep\n"); |
@@ -1559,11 +1563,11 @@ static void msp_wake_thread(struct i2c_client *client); | |||
1559 | static struct i2c_driver driver = { | 1563 | static struct i2c_driver driver = { |
1560 | .owner = THIS_MODULE, | 1564 | .owner = THIS_MODULE, |
1561 | .name = "msp3400", | 1565 | .name = "msp3400", |
1562 | .id = I2C_DRIVERID_MSP3400, | 1566 | .id = I2C_DRIVERID_MSP3400, |
1563 | .flags = I2C_DF_NOTIFY, | 1567 | .flags = I2C_DF_NOTIFY, |
1564 | .attach_adapter = msp_probe, | 1568 | .attach_adapter = msp_probe, |
1565 | .detach_client = msp_detach, | 1569 | .detach_client = msp_detach, |
1566 | .command = msp_command, | 1570 | .command = msp_command, |
1567 | .driver = { | 1571 | .driver = { |
1568 | .suspend = msp_suspend, | 1572 | .suspend = msp_suspend, |
1569 | .resume = msp_resume, | 1573 | .resume = msp_resume, |
@@ -1574,7 +1578,7 @@ static struct i2c_client client_template = | |||
1574 | { | 1578 | { |
1575 | .name = "(unset)", | 1579 | .name = "(unset)", |
1576 | .flags = I2C_CLIENT_ALLOW_USE, | 1580 | .flags = I2C_CLIENT_ALLOW_USE, |
1577 | .driver = &driver, | 1581 | .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/saa6588.c b/drivers/media/video/saa6588.c index dca3ddfd510f..923322503e8f 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 | ||
diff --git a/drivers/media/video/saa711x.c b/drivers/media/video/saa711x.c index 59e13fdea780..31f7b950b01c 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 | /* ----------------------------------------------------------------------- */ |
diff --git a/drivers/media/video/saa7134/saa6752hs.c b/drivers/media/video/saa7134/saa6752hs.c index cdd1ed9c8065..a61d24f588f7 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 | ||
@@ -597,19 +598,19 @@ saa6752hs_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
597 | 598 | ||
598 | static struct i2c_driver driver = { | 599 | static struct i2c_driver driver = { |
599 | .owner = THIS_MODULE, | 600 | .owner = THIS_MODULE, |
600 | .name = "i2c saa6752hs MPEG encoder", | 601 | .name = "i2c saa6752hs MPEG encoder", |
601 | .id = I2C_DRIVERID_SAA6752HS, | 602 | .id = I2C_DRIVERID_SAA6752HS, |
602 | .flags = I2C_DF_NOTIFY, | 603 | .flags = I2C_DF_NOTIFY, |
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 | .flags = I2C_CLIENT_ALLOW_USE, |
612 | .driver = &driver, | 613 | .driver = &driver, |
613 | }; | 614 | }; |
614 | 615 | ||
615 | static int __init saa6752hs_init_module(void) | 616 | 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 263c6e2e3e8e..953d5fec82d5 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}; |
@@ -59,11 +60,14 @@ 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 | #define dprintk(fmt, arg...) if (debug) \ | 62 | #define dprintk(fmt, arg...) if (debug) \ |
62 | printk(KERN_DEBUG "%s/alsa: " fmt, dev->name , ## arg) | 63 | printk(KERN_DEBUG "%s/alsa: " fmt, dev->name , ##arg) |
64 | |||
65 | |||
63 | 66 | ||
64 | /* | 67 | /* |
65 | * Main chip structure | 68 | * Main chip structure |
66 | */ | 69 | */ |
70 | |||
67 | typedef struct snd_card_saa7134 { | 71 | typedef struct snd_card_saa7134 { |
68 | snd_card_t *card; | 72 | snd_card_t *card; |
69 | spinlock_t mixer_lock; | 73 | spinlock_t mixer_lock; |
@@ -208,8 +212,8 @@ static void saa7134_irq_alsa_done(struct saa7134_dev *dev, | |||
208 | 212 | ||
209 | 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) |
210 | { | 214 | { |
211 | struct saa7134_dmasound *dmasound = dev_id; | 215 | struct saa7134_dmasound *dmasound = dev_id; |
212 | struct saa7134_dev *dev = dmasound->priv_data; | 216 | struct saa7134_dev *dev = dmasound->priv_data; |
213 | 217 | ||
214 | unsigned long report, status; | 218 | unsigned long report, status; |
215 | int loop, handled = 0; | 219 | int loop, handled = 0; |
@@ -985,7 +989,7 @@ static int saa7134_alsa_init(void) | |||
985 | struct saa7134_dev *dev = NULL; | 989 | struct saa7134_dev *dev = NULL; |
986 | struct list_head *list; | 990 | struct list_head *list; |
987 | 991 | ||
988 | printk(KERN_INFO "saa7134 ALSA driver for DMA sound loaded\n"); | 992 | printk(KERN_INFO "saa7134 ALSA driver for DMA sound loaded\n"); |
989 | 993 | ||
990 | list_for_each(list,&saa7134_devlist) { | 994 | list_for_each(list,&saa7134_devlist) { |
991 | dev = list_entry(list, struct saa7134_dev, devlist); | 995 | dev = list_entry(list, struct saa7134_dev, devlist); |
@@ -1004,6 +1008,7 @@ static int saa7134_alsa_init(void) | |||
1004 | printk(KERN_INFO "saa7134 ALSA: no saa7134 cards found\n"); | 1008 | printk(KERN_INFO "saa7134 ALSA: no saa7134 cards found\n"); |
1005 | 1009 | ||
1006 | return 0; | 1010 | return 0; |
1011 | |||
1007 | } | 1012 | } |
1008 | 1013 | ||
1009 | /* | 1014 | /* |
@@ -1027,3 +1032,6 @@ module_init(saa7134_alsa_init); | |||
1027 | module_exit(saa7134_alsa_exit); | 1032 | module_exit(saa7134_alsa_exit); |
1028 | MODULE_LICENSE("GPL"); | 1033 | MODULE_LICENSE("GPL"); |
1029 | MODULE_AUTHOR("Ricardo Cerqueira"); | 1034 | MODULE_AUTHOR("Ricardo Cerqueira"); |
1035 | |||
1036 | |||
1037 | |||
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 75abc20b0ccd..672fb205959f 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 1a093bf176f3..23d8747338ed 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); |
diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c index e9ec69efb4c9..575f3e835f91 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 7575043f0874..df9dd36721e0 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->name, client->addr, client->name); |
337 | 337 | ||
338 | /* Am I an i2c remote control? */ | 338 | /* Am I an i2c remote control? */ |
339 | 339 | ||
diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c index 5a579194e455..513a699a6df2 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 | ||
@@ -905,25 +905,25 @@ static int saa7134_dsp_create(struct saa7134_dev *dev) | |||
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 | ||
@@ -956,49 +956,50 @@ static int oss_device_exit(struct saa7134_dev *dev) | |||
956 | 956 | ||
957 | static int saa7134_oss_init(void) | 957 | static int saa7134_oss_init(void) |
958 | { | 958 | { |
959 | struct saa7134_dev *dev = NULL; | 959 | struct saa7134_dev *dev = NULL; |
960 | struct list_head *list; | 960 | struct list_head *list; |
961 | 961 | ||
962 | printk(KERN_INFO "saa7134 OSS driver for DMA sound loaded\n"); | 962 | printk(KERN_INFO "saa7134 OSS driver for DMA sound loaded\n"); |
963 | 963 | ||
964 | list_for_each(list,&saa7134_devlist) { | 964 | list_for_each(list,&saa7134_devlist) { |
965 | dev = list_entry(list, struct saa7134_dev, devlist); | 965 | dev = list_entry(list, struct saa7134_dev, devlist); |
966 | if (dev->dmasound.priv_data == NULL) { | 966 | if (dev->dmasound.priv_data == NULL) { |
967 | oss_device_init(dev); | 967 | oss_device_init(dev); |
968 | } else { | 968 | } else { |
969 | printk(KERN_ERR "saa7134 OSS: DMA sound is being handled by ALSA, ignoring %s\n",dev->name); | 969 | printk(KERN_ERR "saa7134 OSS: DMA sound is being handled by ALSA, ignoring %s\n",dev->name); |
970 | return -EBUSY; | 970 | return -EBUSY; |
971 | } | 971 | } |
972 | } | 972 | } |
973 | 973 | ||
974 | if (dev == NULL) | 974 | if (dev == NULL) |
975 | printk(KERN_INFO "saa7134 OSS: no saa7134 cards found\n"); | 975 | printk(KERN_INFO "saa7134 OSS: no saa7134 cards found\n"); |
976 | 976 | ||
977 | dmasound_init = oss_device_init; | 977 | dmasound_init = oss_device_init; |
978 | dmasound_exit = oss_device_exit; | 978 | dmasound_exit = oss_device_exit; |
979 | 979 | ||
980 | return 0; | 980 | return 0; |
981 | 981 | ||
982 | } | 982 | } |
983 | 983 | ||
984 | static void saa7134_oss_exit(void) | 984 | static void saa7134_oss_exit(void) |
985 | { | 985 | { |
986 | struct saa7134_dev *dev = NULL; | 986 | struct saa7134_dev *dev = NULL; |
987 | struct list_head *list; | 987 | struct list_head *list; |
988 | 988 | ||
989 | list_for_each(list,&saa7134_devlist) { | 989 | list_for_each(list,&saa7134_devlist) { |
990 | dev = list_entry(list, struct saa7134_dev, devlist); | 990 | dev = list_entry(list, struct saa7134_dev, devlist); |
991 | 991 | ||
992 | /* Device isn't registered by OSS, probably ALSA's */ | 992 | /* Device isn't registered by OSS, probably ALSA's */ |
993 | if (!dev->dmasound.minor_dsp) | 993 | if (!dev->dmasound.minor_dsp) |
994 | continue; | 994 | continue; |
995 | 995 | ||
996 | oss_device_exit(dev); | 996 | oss_device_exit(dev); |
997 | } | ||
998 | 997 | ||
999 | printk(KERN_INFO "saa7134 OSS driver for DMA sound unloaded\n"); | 998 | } |
999 | |||
1000 | printk(KERN_INFO "saa7134 OSS driver for DMA sound unloaded\n"); | ||
1000 | 1001 | ||
1001 | return; | 1002 | return; |
1002 | } | 1003 | } |
1003 | 1004 | ||
1004 | module_init(saa7134_oss_init); | 1005 | module_init(saa7134_oss_init); |
diff --git a/drivers/media/video/tda9887.c b/drivers/media/video/tda9887.c index 4249127c0a1d..2f2414e90e8b 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) |
@@ -819,12 +820,12 @@ static int tda9887_resume(struct device * dev) | |||
819 | 820 | ||
820 | static struct i2c_driver driver = { | 821 | static struct i2c_driver driver = { |
821 | .owner = THIS_MODULE, | 822 | .owner = THIS_MODULE, |
822 | .name = "i2c tda9887 driver", | 823 | .name = "i2c tda9887 driver", |
823 | .id = -1, /* FIXME */ | 824 | .id = -1, /* FIXME */ |
824 | .flags = I2C_DF_NOTIFY, | 825 | .flags = I2C_DF_NOTIFY, |
825 | .attach_adapter = tda9887_probe, | 826 | .attach_adapter = tda9887_probe, |
826 | .detach_client = tda9887_detach, | 827 | .detach_client = tda9887_detach, |
827 | .command = tda9887_command, | 828 | .command = tda9887_command, |
828 | .driver = { | 829 | .driver = { |
829 | .suspend = tda9887_suspend, | 830 | .suspend = tda9887_suspend, |
830 | .resume = tda9887_resume, | 831 | .resume = tda9887_resume, |
@@ -834,7 +835,7 @@ static struct i2c_client client_template = | |||
834 | { | 835 | { |
835 | .name = "tda9887", | 836 | .name = "tda9887", |
836 | .flags = I2C_CLIENT_ALLOW_USE, | 837 | .flags = I2C_CLIENT_ALLOW_USE, |
837 | .driver = &driver, | 838 | .driver = &driver, |
838 | }; | 839 | }; |
839 | 840 | ||
840 | static int __init tda9887_init_module(void) | 841 | static int __init tda9887_init_module(void) |
diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c index c31bf28b73fe..5b20e8177cad 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; |
diff --git a/drivers/media/video/tveeprom.c b/drivers/media/video/tveeprom.c index d95aecebbda3..5ac235365dd8 100644 --- a/drivers/media/video/tveeprom.c +++ b/drivers/media/video/tveeprom.c | |||
@@ -206,7 +206,7 @@ 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_PHILIPS_FM1236_MK3, "TCL MFNM05-4"}, | 212 | { TUNER_PHILIPS_FM1236_MK3, "TCL MFNM05-4"}, |
@@ -753,7 +753,8 @@ tveeprom_detect_client(struct i2c_adapter *adapter, | |||
753 | client->driver = &i2c_driver_tveeprom; | 753 | client->driver = &i2c_driver_tveeprom; |
754 | client->flags = I2C_CLIENT_ALLOW_USE; | 754 | client->flags = I2C_CLIENT_ALLOW_USE; |
755 | snprintf(client->name, sizeof(client->name), "tveeprom"); | 755 | snprintf(client->name, sizeof(client->name), "tveeprom"); |
756 | i2c_attach_client(client); | 756 | i2c_attach_client(client); |
757 | |||
757 | return 0; | 758 | return 0; |
758 | } | 759 | } |
759 | 760 | ||
diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c index 81e6d4494e7d..97431e26d229 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 */ |
@@ -770,7 +770,6 @@ static int tvp5150_detect_client(struct i2c_adapter *adapter, | |||
770 | 770 | ||
771 | if (debug > 1) | 771 | if (debug > 1) |
772 | dump_reg(client); | 772 | dump_reg(client); |
773 | |||
774 | return 0; | 773 | return 0; |
775 | } | 774 | } |
776 | 775 | ||
diff --git a/drivers/media/video/video-buf-dvb.c b/drivers/media/video/video-buf-dvb.c index 55f129e964eb..0a4004a4393c 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/message/i2o/pci.c b/drivers/message/i2o/pci.c index 81ef306cb124..ee7075fa1ec3 100644 --- a/drivers/message/i2o/pci.c +++ b/drivers/message/i2o/pci.c | |||
@@ -303,6 +303,7 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev, | |||
303 | struct i2o_controller *c; | 303 | struct i2o_controller *c; |
304 | int rc; | 304 | int rc; |
305 | struct pci_dev *i960 = NULL; | 305 | struct pci_dev *i960 = NULL; |
306 | int pci_dev_busy = 0; | ||
306 | 307 | ||
307 | printk(KERN_INFO "i2o: Checking for PCI I2O controllers...\n"); | 308 | printk(KERN_INFO "i2o: Checking for PCI I2O controllers...\n"); |
308 | 309 | ||
@@ -395,6 +396,8 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev, | |||
395 | if ((rc = i2o_pci_alloc(c))) { | 396 | if ((rc = i2o_pci_alloc(c))) { |
396 | printk(KERN_ERR "%s: DMA / IO allocation for I2O controller " | 397 | printk(KERN_ERR "%s: DMA / IO allocation for I2O controller " |
397 | " failed\n", c->name); | 398 | " failed\n", c->name); |
399 | if (rc == -ENODEV) | ||
400 | pci_dev_busy = 1; | ||
398 | goto free_controller; | 401 | goto free_controller; |
399 | } | 402 | } |
400 | 403 | ||
@@ -425,7 +428,8 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev, | |||
425 | i2o_iop_free(c); | 428 | i2o_iop_free(c); |
426 | 429 | ||
427 | disable: | 430 | disable: |
428 | pci_disable_device(pdev); | 431 | if (!pci_dev_busy) |
432 | pci_disable_device(pdev); | ||
429 | 433 | ||
430 | return rc; | 434 | return rc; |
431 | } | 435 | } |
diff --git a/drivers/mfd/ucb1x00-ts.c b/drivers/mfd/ucb1x00-ts.c index a984c0efabf0..551061c2eadf 100644 --- a/drivers/mfd/ucb1x00-ts.c +++ b/drivers/mfd/ucb1x00-ts.c | |||
@@ -59,16 +59,18 @@ static int adcsync; | |||
59 | 59 | ||
60 | static inline void ucb1x00_ts_evt_add(struct ucb1x00_ts *ts, u16 pressure, u16 x, u16 y) | 60 | static inline void ucb1x00_ts_evt_add(struct ucb1x00_ts *ts, u16 pressure, u16 x, u16 y) |
61 | { | 61 | { |
62 | input_report_abs(ts->idev, ABS_X, x); | 62 | struct input_dev *idev = ts->idev; |
63 | input_report_abs(ts->idev, ABS_Y, y); | 63 | input_report_abs(idev, ABS_X, x); |
64 | input_report_abs(ts->idev, ABS_PRESSURE, pressure); | 64 | input_report_abs(idev, ABS_Y, y); |
65 | input_sync(ts->idev); | 65 | input_report_abs(idev, ABS_PRESSURE, pressure); |
66 | input_sync(idev); | ||
66 | } | 67 | } |
67 | 68 | ||
68 | static inline void ucb1x00_ts_event_release(struct ucb1x00_ts *ts) | 69 | static inline void ucb1x00_ts_event_release(struct ucb1x00_ts *ts) |
69 | { | 70 | { |
70 | input_report_abs(ts->idev, ABS_PRESSURE, 0); | 71 | struct input_dev *idev = ts->idev; |
71 | input_sync(ts->idev); | 72 | input_report_abs(idev, ABS_PRESSURE, 0); |
73 | input_sync(idev); | ||
72 | } | 74 | } |
73 | 75 | ||
74 | /* | 76 | /* |
@@ -297,7 +299,7 @@ static void ucb1x00_ts_irq(int idx, void *id) | |||
297 | 299 | ||
298 | static int ucb1x00_ts_open(struct input_dev *idev) | 300 | static int ucb1x00_ts_open(struct input_dev *idev) |
299 | { | 301 | { |
300 | struct ucb1x00_ts *ts = (struct ucb1x00_ts *)idev; | 302 | struct ucb1x00_ts *ts = idev->private; |
301 | int ret = 0; | 303 | int ret = 0; |
302 | 304 | ||
303 | BUG_ON(ts->rtask); | 305 | BUG_ON(ts->rtask); |
@@ -334,7 +336,7 @@ static int ucb1x00_ts_open(struct input_dev *idev) | |||
334 | */ | 336 | */ |
335 | static void ucb1x00_ts_close(struct input_dev *idev) | 337 | static void ucb1x00_ts_close(struct input_dev *idev) |
336 | { | 338 | { |
337 | struct ucb1x00_ts *ts = (struct ucb1x00_ts *)idev; | 339 | struct ucb1x00_ts *ts = idev->private; |
338 | 340 | ||
339 | if (ts->rtask) | 341 | if (ts->rtask) |
340 | kthread_stop(ts->rtask); | 342 | kthread_stop(ts->rtask); |
@@ -386,6 +388,7 @@ static int ucb1x00_ts_add(struct ucb1x00_dev *dev) | |||
386 | ts->ucb = dev->ucb; | 388 | ts->ucb = dev->ucb; |
387 | ts->adcsync = adcsync ? UCB_SYNC : UCB_NOSYNC; | 389 | ts->adcsync = adcsync ? UCB_SYNC : UCB_NOSYNC; |
388 | 390 | ||
391 | ts->idev->private = ts; | ||
389 | ts->idev->name = "Touchscreen panel"; | 392 | ts->idev->name = "Touchscreen panel"; |
390 | ts->idev->id.product = ts->ucb->id; | 393 | ts->idev->id.product = ts->ucb->id; |
391 | ts->idev->open = ucb1x00_ts_open; | 394 | ts->idev->open = ucb1x00_ts_open; |
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index d336a1d65dc7..eb41391e06e9 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c | |||
@@ -679,7 +679,15 @@ static void mmc_idle_cards(struct mmc_host *host) | |||
679 | } | 679 | } |
680 | 680 | ||
681 | /* | 681 | /* |
682 | * Apply power to the MMC stack. | 682 | * Apply power to the MMC stack. This is a two-stage process. |
683 | * First, we enable power to the card without the clock running. | ||
684 | * We then wait a bit for the power to stabilise. Finally, | ||
685 | * enable the bus drivers and clock to the card. | ||
686 | * | ||
687 | * We must _NOT_ enable the clock prior to power stablising. | ||
688 | * | ||
689 | * If a host does all the power sequencing itself, ignore the | ||
690 | * initial MMC_POWER_UP stage. | ||
683 | */ | 691 | */ |
684 | static void mmc_power_up(struct mmc_host *host) | 692 | static void mmc_power_up(struct mmc_host *host) |
685 | { | 693 | { |
@@ -932,8 +940,9 @@ static void mmc_read_scrs(struct mmc_host *host) | |||
932 | 940 | ||
933 | sg_init_one(&sg, (u8*)card->raw_scr, 8); | 941 | sg_init_one(&sg, (u8*)card->raw_scr, 8); |
934 | 942 | ||
935 | err = mmc_wait_for_req(host, &mrq); | 943 | mmc_wait_for_req(host, &mrq); |
936 | if (err != MMC_ERR_NONE) { | 944 | |
945 | if (cmd.error != MMC_ERR_NONE || data.error != MMC_ERR_NONE) { | ||
937 | mmc_card_set_dead(card); | 946 | mmc_card_set_dead(card); |
938 | continue; | 947 | continue; |
939 | } | 948 | } |
diff --git a/drivers/mtd/devices/blkmtd.c b/drivers/mtd/devices/blkmtd.c index f9db52f6bf00..04f864d238db 100644 --- a/drivers/mtd/devices/blkmtd.c +++ b/drivers/mtd/devices/blkmtd.c | |||
@@ -113,7 +113,7 @@ static int bi_write_complete(struct bio *bio, unsigned int bytes_done, int error | |||
113 | ClearPageUptodate(page); | 113 | ClearPageUptodate(page); |
114 | SetPageError(page); | 114 | SetPageError(page); |
115 | } | 115 | } |
116 | ClearPageDirty(page); | 116 | clear_page_dirty(page); |
117 | unlock_page(page); | 117 | unlock_page(page); |
118 | page_cache_release(page); | 118 | page_cache_release(page); |
119 | } while (bvec >= bio->bi_io_vec); | 119 | } while (bvec >= bio->bi_io_vec); |
@@ -289,7 +289,7 @@ static int write_pages(struct blkmtd_dev *dev, const u_char *buf, loff_t to, | |||
289 | BUG(); | 289 | BUG(); |
290 | } | 290 | } |
291 | memcpy(page_address(page)+offset, buf, start_len); | 291 | memcpy(page_address(page)+offset, buf, start_len); |
292 | SetPageDirty(page); | 292 | set_page_dirty(page); |
293 | SetPageUptodate(page); | 293 | SetPageUptodate(page); |
294 | buf += start_len; | 294 | buf += start_len; |
295 | thislen = start_len; | 295 | thislen = start_len; |
@@ -336,7 +336,7 @@ static int write_pages(struct blkmtd_dev *dev, const u_char *buf, loff_t to, | |||
336 | } | 336 | } |
337 | pagenr++; | 337 | pagenr++; |
338 | pagecnt--; | 338 | pagecnt--; |
339 | SetPageDirty(page); | 339 | set_page_dirty(page); |
340 | SetPageUptodate(page); | 340 | SetPageUptodate(page); |
341 | pagesc--; | 341 | pagesc--; |
342 | thislen += PAGE_SIZE; | 342 | thislen += PAGE_SIZE; |
@@ -357,7 +357,7 @@ static int write_pages(struct blkmtd_dev *dev, const u_char *buf, loff_t to, | |||
357 | BUG(); | 357 | BUG(); |
358 | } | 358 | } |
359 | memcpy(page_address(page), buf, end_len); | 359 | memcpy(page_address(page), buf, end_len); |
360 | SetPageDirty(page); | 360 | set_page_dirty(page); |
361 | SetPageUptodate(page); | 361 | SetPageUptodate(page); |
362 | DEBUG(3, "blkmtd: write: writing out partial end\n"); | 362 | DEBUG(3, "blkmtd: write: writing out partial end\n"); |
363 | thislen += end_len; | 363 | thislen += end_len; |
diff --git a/drivers/mtd/onenand/generic.c b/drivers/mtd/onenand/generic.c index 48cce431f89f..45c077d0f063 100644 --- a/drivers/mtd/onenand/generic.c +++ b/drivers/mtd/onenand/generic.c | |||
@@ -12,9 +12,9 @@ | |||
12 | * This is a device driver for the OneNAND flash for generic boards. | 12 | * This is a device driver for the OneNAND flash for generic boards. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/device.h> | ||
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/platform_device.h> | ||
18 | #include <linux/mtd/mtd.h> | 18 | #include <linux/mtd/mtd.h> |
19 | #include <linux/mtd/onenand.h> | 19 | #include <linux/mtd/onenand.h> |
20 | #include <linux/mtd/partitions.h> | 20 | #include <linux/mtd/partitions.h> |
@@ -39,7 +39,7 @@ static int __devinit generic_onenand_probe(struct device *dev) | |||
39 | { | 39 | { |
40 | struct onenand_info *info; | 40 | struct onenand_info *info; |
41 | struct platform_device *pdev = to_platform_device(dev); | 41 | struct platform_device *pdev = to_platform_device(dev); |
42 | struct onenand_platform_data *pdata = pdev->dev.platform_data; | 42 | struct flash_platform_data *pdata = pdev->dev.platform_data; |
43 | struct resource *res = pdev->resource; | 43 | struct resource *res = pdev->resource; |
44 | unsigned long size = res->end - res->start + 1; | 44 | unsigned long size = res->end - res->start + 1; |
45 | int err; | 45 | int err; |
diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c index f67d5d6eb9a6..a53a73fc2a5a 100644 --- a/drivers/mtd/onenand/onenand_base.c +++ b/drivers/mtd/onenand/onenand_base.c | |||
@@ -940,7 +940,7 @@ static int onenand_writev_ecc(struct mtd_info *mtd, const struct kvec *vecs, | |||
940 | u_char *eccbuf, struct nand_oobinfo *oobsel) | 940 | u_char *eccbuf, struct nand_oobinfo *oobsel) |
941 | { | 941 | { |
942 | struct onenand_chip *this = mtd->priv; | 942 | struct onenand_chip *this = mtd->priv; |
943 | unsigned char buffer[MAX_ONENAND_PAGESIZE], *pbuf; | 943 | unsigned char *pbuf; |
944 | size_t total_len, len; | 944 | size_t total_len, len; |
945 | int i, written = 0; | 945 | int i, written = 0; |
946 | int ret = 0; | 946 | int ret = 0; |
@@ -975,7 +975,7 @@ static int onenand_writev_ecc(struct mtd_info *mtd, const struct kvec *vecs, | |||
975 | /* Loop until all keve's data has been written */ | 975 | /* Loop until all keve's data has been written */ |
976 | len = 0; | 976 | len = 0; |
977 | while (count) { | 977 | while (count) { |
978 | pbuf = buffer; | 978 | pbuf = this->page_buf; |
979 | /* | 979 | /* |
980 | * If the given tuple is >= pagesize then | 980 | * If the given tuple is >= pagesize then |
981 | * write it out from the iov | 981 | * write it out from the iov |
@@ -995,7 +995,7 @@ static int onenand_writev_ecc(struct mtd_info *mtd, const struct kvec *vecs, | |||
995 | int cnt = 0, thislen; | 995 | int cnt = 0, thislen; |
996 | while (cnt < mtd->oobblock) { | 996 | while (cnt < mtd->oobblock) { |
997 | thislen = min_t(int, mtd->oobblock - cnt, vecs->iov_len - len); | 997 | thislen = min_t(int, mtd->oobblock - cnt, vecs->iov_len - len); |
998 | memcpy(buffer + cnt, vecs->iov_base + len, thislen); | 998 | memcpy(this->page_buf + cnt, vecs->iov_base + len, thislen); |
999 | cnt += thislen; | 999 | cnt += thislen; |
1000 | len += thislen; | 1000 | len += thislen; |
1001 | 1001 | ||
@@ -1296,6 +1296,12 @@ static int onenand_unlock(struct mtd_info *mtd, loff_t ofs, size_t len) | |||
1296 | 1296 | ||
1297 | /* Block lock scheme */ | 1297 | /* Block lock scheme */ |
1298 | for (block = start; block < end; block++) { | 1298 | for (block = start; block < end; block++) { |
1299 | /* Set block address */ | ||
1300 | value = onenand_block_address(this, block); | ||
1301 | this->write_word(value, this->base + ONENAND_REG_START_ADDRESS1); | ||
1302 | /* Select DataRAM for DDP */ | ||
1303 | value = onenand_bufferram_address(this, block); | ||
1304 | this->write_word(value, this->base + ONENAND_REG_START_ADDRESS2); | ||
1299 | /* Set start block address */ | 1305 | /* Set start block address */ |
1300 | this->write_word(block, this->base + ONENAND_REG_START_BLOCK_ADDRESS); | 1306 | this->write_word(block, this->base + ONENAND_REG_START_BLOCK_ADDRESS); |
1301 | /* Write unlock command */ | 1307 | /* Write unlock command */ |
@@ -1309,10 +1315,6 @@ static int onenand_unlock(struct mtd_info *mtd, loff_t ofs, size_t len) | |||
1309 | & ONENAND_CTRL_ONGO) | 1315 | & ONENAND_CTRL_ONGO) |
1310 | continue; | 1316 | continue; |
1311 | 1317 | ||
1312 | /* Set block address for read block status */ | ||
1313 | value = onenand_block_address(this, block); | ||
1314 | this->write_word(value, this->base + ONENAND_REG_START_ADDRESS1); | ||
1315 | |||
1316 | /* Check lock status */ | 1318 | /* Check lock status */ |
1317 | status = this->read_word(this->base + ONENAND_REG_WP_STATUS); | 1319 | status = this->read_word(this->base + ONENAND_REG_WP_STATUS); |
1318 | if (!(status & ONENAND_WP_US)) | 1320 | if (!(status & ONENAND_WP_US)) |
@@ -1346,7 +1348,6 @@ static void onenand_print_device_info(int device) | |||
1346 | 1348 | ||
1347 | static const struct onenand_manufacturers onenand_manuf_ids[] = { | 1349 | static const struct onenand_manufacturers onenand_manuf_ids[] = { |
1348 | {ONENAND_MFR_SAMSUNG, "Samsung"}, | 1350 | {ONENAND_MFR_SAMSUNG, "Samsung"}, |
1349 | {ONENAND_MFR_UNKNOWN, "Unknown"} | ||
1350 | }; | 1351 | }; |
1351 | 1352 | ||
1352 | /** | 1353 | /** |
@@ -1357,17 +1358,22 @@ static const struct onenand_manufacturers onenand_manuf_ids[] = { | |||
1357 | */ | 1358 | */ |
1358 | static int onenand_check_maf(int manuf) | 1359 | static int onenand_check_maf(int manuf) |
1359 | { | 1360 | { |
1361 | int size = ARRAY_SIZE(onenand_manuf_ids); | ||
1362 | char *name; | ||
1360 | int i; | 1363 | int i; |
1361 | 1364 | ||
1362 | for (i = 0; onenand_manuf_ids[i].id; i++) { | 1365 | for (i = 0; i < size; i++) |
1363 | if (manuf == onenand_manuf_ids[i].id) | 1366 | if (manuf == onenand_manuf_ids[i].id) |
1364 | break; | 1367 | break; |
1365 | } | ||
1366 | 1368 | ||
1367 | printk(KERN_DEBUG "OneNAND Manufacturer: %s (0x%0x)\n", | 1369 | if (i < size) |
1368 | onenand_manuf_ids[i].name, manuf); | 1370 | name = onenand_manuf_ids[i].name; |
1371 | else | ||
1372 | name = "Unknown"; | ||
1373 | |||
1374 | printk(KERN_DEBUG "OneNAND Manufacturer: %s (0x%0x)\n", name, manuf); | ||
1369 | 1375 | ||
1370 | return (i != ONENAND_MFR_UNKNOWN); | 1376 | return (i == size); |
1371 | } | 1377 | } |
1372 | 1378 | ||
1373 | /** | 1379 | /** |
@@ -1513,6 +1519,18 @@ int onenand_scan(struct mtd_info *mtd, int maxchips) | |||
1513 | this->read_bufferram = onenand_sync_read_bufferram; | 1519 | this->read_bufferram = onenand_sync_read_bufferram; |
1514 | } | 1520 | } |
1515 | 1521 | ||
1522 | /* Allocate buffers, if necessary */ | ||
1523 | if (!this->page_buf) { | ||
1524 | size_t len; | ||
1525 | len = mtd->oobblock + mtd->oobsize; | ||
1526 | this->page_buf = kmalloc(len, GFP_KERNEL); | ||
1527 | if (!this->page_buf) { | ||
1528 | printk(KERN_ERR "onenand_scan(): Can't allocate page_buf\n"); | ||
1529 | return -ENOMEM; | ||
1530 | } | ||
1531 | this->options |= ONENAND_PAGEBUF_ALLOC; | ||
1532 | } | ||
1533 | |||
1516 | this->state = FL_READY; | 1534 | this->state = FL_READY; |
1517 | init_waitqueue_head(&this->wq); | 1535 | init_waitqueue_head(&this->wq); |
1518 | spin_lock_init(&this->chip_lock); | 1536 | spin_lock_init(&this->chip_lock); |
@@ -1574,12 +1592,21 @@ int onenand_scan(struct mtd_info *mtd, int maxchips) | |||
1574 | */ | 1592 | */ |
1575 | void onenand_release(struct mtd_info *mtd) | 1593 | void onenand_release(struct mtd_info *mtd) |
1576 | { | 1594 | { |
1595 | struct onenand_chip *this = mtd->priv; | ||
1596 | |||
1577 | #ifdef CONFIG_MTD_PARTITIONS | 1597 | #ifdef CONFIG_MTD_PARTITIONS |
1578 | /* Deregister partitions */ | 1598 | /* Deregister partitions */ |
1579 | del_mtd_partitions (mtd); | 1599 | del_mtd_partitions (mtd); |
1580 | #endif | 1600 | #endif |
1581 | /* Deregister the device */ | 1601 | /* Deregister the device */ |
1582 | del_mtd_device (mtd); | 1602 | del_mtd_device (mtd); |
1603 | |||
1604 | /* Free bad block table memory, if allocated */ | ||
1605 | if (this->bbm) | ||
1606 | kfree(this->bbm); | ||
1607 | /* Buffer allocated by onenand_scan */ | ||
1608 | if (this->options & ONENAND_PAGEBUF_ALLOC) | ||
1609 | kfree(this->page_buf); | ||
1583 | } | 1610 | } |
1584 | 1611 | ||
1585 | EXPORT_SYMBOL_GPL(onenand_scan); | 1612 | EXPORT_SYMBOL_GPL(onenand_scan); |
diff --git a/drivers/mtd/onenand/onenand_bbt.c b/drivers/mtd/onenand/onenand_bbt.c index f40190f499e1..4510d3361eaa 100644 --- a/drivers/mtd/onenand/onenand_bbt.c +++ b/drivers/mtd/onenand/onenand_bbt.c | |||
@@ -118,10 +118,10 @@ static int create_bbt(struct mtd_info *mtd, uint8_t *buf, struct nand_bbt_descr | |||
118 | */ | 118 | */ |
119 | static inline int onenand_memory_bbt (struct mtd_info *mtd, struct nand_bbt_descr *bd) | 119 | static inline int onenand_memory_bbt (struct mtd_info *mtd, struct nand_bbt_descr *bd) |
120 | { | 120 | { |
121 | unsigned char data_buf[MAX_ONENAND_PAGESIZE]; | 121 | struct onenand_chip *this = mtd->priv; |
122 | 122 | ||
123 | bd->options &= ~NAND_BBT_SCANEMPTY; | 123 | bd->options &= ~NAND_BBT_SCANEMPTY; |
124 | return create_bbt(mtd, data_buf, bd, -1); | 124 | return create_bbt(mtd, this->page_buf, bd, -1); |
125 | } | 125 | } |
126 | 126 | ||
127 | /** | 127 | /** |
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index be319229f543..8f6cf8c896a4 100644 --- a/drivers/net/pcnet32.c +++ b/drivers/net/pcnet32.c | |||
@@ -1251,12 +1251,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev) | |||
1251 | 1251 | ||
1252 | if (memcmp(promaddr, dev->dev_addr, 6) | 1252 | if (memcmp(promaddr, dev->dev_addr, 6) |
1253 | || !is_valid_ether_addr(dev->dev_addr)) { | 1253 | || !is_valid_ether_addr(dev->dev_addr)) { |
1254 | #ifndef __powerpc__ | ||
1255 | if (is_valid_ether_addr(promaddr)) { | 1254 | if (is_valid_ether_addr(promaddr)) { |
1256 | #else | ||
1257 | if (!is_valid_ether_addr(dev->dev_addr) | ||
1258 | && is_valid_ether_addr(promaddr)) { | ||
1259 | #endif | ||
1260 | if (pcnet32_debug & NETIF_MSG_PROBE) { | 1255 | if (pcnet32_debug & NETIF_MSG_PROBE) { |
1261 | printk(" warning: CSR address invalid,\n"); | 1256 | printk(" warning: CSR address invalid,\n"); |
1262 | printk(KERN_INFO " using instead PROM address of"); | 1257 | printk(KERN_INFO " using instead PROM address of"); |
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index e57df8dfe6b4..669dd52c412a 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
@@ -3078,7 +3078,7 @@ int s2io_set_swapper(nic_t * sp) | |||
3078 | 3078 | ||
3079 | static int wait_for_msix_trans(nic_t *nic, int i) | 3079 | static int wait_for_msix_trans(nic_t *nic, int i) |
3080 | { | 3080 | { |
3081 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; | 3081 | XENA_dev_config_t __iomem *bar0 = nic->bar0; |
3082 | u64 val64; | 3082 | u64 val64; |
3083 | int ret = 0, cnt = 0; | 3083 | int ret = 0, cnt = 0; |
3084 | 3084 | ||
@@ -3099,7 +3099,7 @@ static int wait_for_msix_trans(nic_t *nic, int i) | |||
3099 | 3099 | ||
3100 | void restore_xmsi_data(nic_t *nic) | 3100 | void restore_xmsi_data(nic_t *nic) |
3101 | { | 3101 | { |
3102 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; | 3102 | XENA_dev_config_t __iomem *bar0 = nic->bar0; |
3103 | u64 val64; | 3103 | u64 val64; |
3104 | int i; | 3104 | int i; |
3105 | 3105 | ||
@@ -3117,7 +3117,7 @@ void restore_xmsi_data(nic_t *nic) | |||
3117 | 3117 | ||
3118 | static void store_xmsi_data(nic_t *nic) | 3118 | static void store_xmsi_data(nic_t *nic) |
3119 | { | 3119 | { |
3120 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; | 3120 | XENA_dev_config_t __iomem *bar0 = nic->bar0; |
3121 | u64 val64, addr, data; | 3121 | u64 val64, addr, data; |
3122 | int i; | 3122 | int i; |
3123 | 3123 | ||
@@ -3140,7 +3140,7 @@ static void store_xmsi_data(nic_t *nic) | |||
3140 | 3140 | ||
3141 | int s2io_enable_msi(nic_t *nic) | 3141 | int s2io_enable_msi(nic_t *nic) |
3142 | { | 3142 | { |
3143 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; | 3143 | XENA_dev_config_t __iomem *bar0 = nic->bar0; |
3144 | u16 msi_ctrl, msg_val; | 3144 | u16 msi_ctrl, msg_val; |
3145 | struct config_param *config = &nic->config; | 3145 | struct config_param *config = &nic->config; |
3146 | struct net_device *dev = nic->dev; | 3146 | struct net_device *dev = nic->dev; |
@@ -3190,7 +3190,7 @@ int s2io_enable_msi(nic_t *nic) | |||
3190 | 3190 | ||
3191 | int s2io_enable_msi_x(nic_t *nic) | 3191 | int s2io_enable_msi_x(nic_t *nic) |
3192 | { | 3192 | { |
3193 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; | 3193 | XENA_dev_config_t __iomem *bar0 = nic->bar0; |
3194 | u64 tx_mat, rx_mat; | 3194 | u64 tx_mat, rx_mat; |
3195 | u16 msi_control; /* Temp variable */ | 3195 | u16 msi_control; /* Temp variable */ |
3196 | int ret, i, j, msix_indx = 1; | 3196 | int ret, i, j, msix_indx = 1; |
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c index 00c5d7f04c68..ae7343934758 100644 --- a/drivers/net/sk98lin/skge.c +++ b/drivers/net/sk98lin/skge.c | |||
@@ -818,7 +818,7 @@ uintptr_t VNextDescr; /* the virtual bus address of the next descriptor */ | |||
818 | /* set the pointers right */ | 818 | /* set the pointers right */ |
819 | pDescr->VNextRxd = VNextDescr & 0xffffffffULL; | 819 | pDescr->VNextRxd = VNextDescr & 0xffffffffULL; |
820 | pDescr->pNextRxd = pNextDescr; | 820 | pDescr->pNextRxd = pNextDescr; |
821 | pDescr->TcpSumStarts = 0; | 821 | if (!IsTx) pDescr->TcpSumStarts = ETH_HLEN << 16 | ETH_HLEN; |
822 | 822 | ||
823 | /* advance one step */ | 823 | /* advance one step */ |
824 | pPrevDescr = pDescr; | 824 | pPrevDescr = pDescr; |
@@ -2169,7 +2169,7 @@ rx_start: | |||
2169 | } /* frame > SK_COPY_TRESHOLD */ | 2169 | } /* frame > SK_COPY_TRESHOLD */ |
2170 | 2170 | ||
2171 | #ifdef USE_SK_RX_CHECKSUM | 2171 | #ifdef USE_SK_RX_CHECKSUM |
2172 | pMsg->csum = pRxd->TcpSums; | 2172 | pMsg->csum = pRxd->TcpSums & 0xffff; |
2173 | pMsg->ip_summed = CHECKSUM_HW; | 2173 | pMsg->ip_summed = CHECKSUM_HW; |
2174 | #else | 2174 | #else |
2175 | pMsg->ip_summed = CHECKSUM_NONE; | 2175 | pMsg->ip_summed = CHECKSUM_NONE; |
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index 716467879b9c..00d683063c01 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -2280,11 +2280,13 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev) | |||
2280 | } | 2280 | } |
2281 | 2281 | ||
2282 | if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) { | 2282 | if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) { |
2283 | netif_stop_queue(dev); | 2283 | if (!netif_queue_stopped(dev)) { |
2284 | spin_unlock_irqrestore(&skge->tx_lock, flags); | 2284 | netif_stop_queue(dev); |
2285 | 2285 | ||
2286 | printk(KERN_WARNING PFX "%s: ring full when queue awake!\n", | 2286 | printk(KERN_WARNING PFX "%s: ring full when queue awake!\n", |
2287 | dev->name); | 2287 | dev->name); |
2288 | } | ||
2289 | spin_unlock_irqrestore(&skge->tx_lock, flags); | ||
2288 | return NETDEV_TX_BUSY; | 2290 | return NETDEV_TX_BUSY; |
2289 | } | 2291 | } |
2290 | 2292 | ||
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 1828a6bf8458..cefb0c08a68d 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -68,8 +68,8 @@ | |||
68 | 68 | ||
69 | #define DRV_MODULE_NAME "tg3" | 69 | #define DRV_MODULE_NAME "tg3" |
70 | #define PFX DRV_MODULE_NAME ": " | 70 | #define PFX DRV_MODULE_NAME ": " |
71 | #define DRV_MODULE_VERSION "3.43" | 71 | #define DRV_MODULE_VERSION "3.46" |
72 | #define DRV_MODULE_RELDATE "Oct 24, 2005" | 72 | #define DRV_MODULE_RELDATE "Dec 19, 2005" |
73 | 73 | ||
74 | #define TG3_DEF_MAC_MODE 0 | 74 | #define TG3_DEF_MAC_MODE 0 |
75 | #define TG3_DEF_RX_MODE 0 | 75 | #define TG3_DEF_RX_MODE 0 |
@@ -341,6 +341,16 @@ static struct { | |||
341 | { "interrupt test (offline)" }, | 341 | { "interrupt test (offline)" }, |
342 | }; | 342 | }; |
343 | 343 | ||
344 | static void tg3_write32(struct tg3 *tp, u32 off, u32 val) | ||
345 | { | ||
346 | writel(val, tp->regs + off); | ||
347 | } | ||
348 | |||
349 | static u32 tg3_read32(struct tg3 *tp, u32 off) | ||
350 | { | ||
351 | return (readl(tp->regs + off)); | ||
352 | } | ||
353 | |||
344 | static void tg3_write_indirect_reg32(struct tg3 *tp, u32 off, u32 val) | 354 | static void tg3_write_indirect_reg32(struct tg3 *tp, u32 off, u32 val) |
345 | { | 355 | { |
346 | unsigned long flags; | 356 | unsigned long flags; |
@@ -411,13 +421,29 @@ static u32 tg3_read_indirect_mbox(struct tg3 *tp, u32 off) | |||
411 | return val; | 421 | return val; |
412 | } | 422 | } |
413 | 423 | ||
414 | static void _tw32_flush(struct tg3 *tp, u32 off, u32 val) | 424 | /* usec_wait specifies the wait time in usec when writing to certain registers |
425 | * where it is unsafe to read back the register without some delay. | ||
426 | * GRC_LOCAL_CTRL is one example if the GPIOs are toggled to switch power. | ||
427 | * TG3PCI_CLOCK_CTRL is another example if the clock frequencies are changed. | ||
428 | */ | ||
429 | static void _tw32_flush(struct tg3 *tp, u32 off, u32 val, u32 usec_wait) | ||
415 | { | 430 | { |
416 | tp->write32(tp, off, val); | 431 | if ((tp->tg3_flags & TG3_FLAG_PCIX_TARGET_HWBUG) || |
417 | if (!(tp->tg3_flags & TG3_FLAG_PCIX_TARGET_HWBUG) && | 432 | (tp->tg3_flags2 & TG3_FLG2_ICH_WORKAROUND)) |
418 | !(tp->tg3_flags & TG3_FLAG_5701_REG_WRITE_BUG) && | 433 | /* Non-posted methods */ |
419 | !(tp->tg3_flags2 & TG3_FLG2_ICH_WORKAROUND)) | 434 | tp->write32(tp, off, val); |
420 | tp->read32(tp, off); /* flush */ | 435 | else { |
436 | /* Posted method */ | ||
437 | tg3_write32(tp, off, val); | ||
438 | if (usec_wait) | ||
439 | udelay(usec_wait); | ||
440 | tp->read32(tp, off); | ||
441 | } | ||
442 | /* Wait again after the read for the posted method to guarantee that | ||
443 | * the wait time is met. | ||
444 | */ | ||
445 | if (usec_wait) | ||
446 | udelay(usec_wait); | ||
421 | } | 447 | } |
422 | 448 | ||
423 | static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val) | 449 | static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val) |
@@ -438,16 +464,6 @@ static void tg3_write32_tx_mbox(struct tg3 *tp, u32 off, u32 val) | |||
438 | readl(mbox); | 464 | readl(mbox); |
439 | } | 465 | } |
440 | 466 | ||
441 | static void tg3_write32(struct tg3 *tp, u32 off, u32 val) | ||
442 | { | ||
443 | writel(val, tp->regs + off); | ||
444 | } | ||
445 | |||
446 | static u32 tg3_read32(struct tg3 *tp, u32 off) | ||
447 | { | ||
448 | return (readl(tp->regs + off)); | ||
449 | } | ||
450 | |||
451 | #define tw32_mailbox(reg, val) tp->write32_mbox(tp, reg, val) | 467 | #define tw32_mailbox(reg, val) tp->write32_mbox(tp, reg, val) |
452 | #define tw32_mailbox_f(reg, val) tw32_mailbox_flush(tp, (reg), (val)) | 468 | #define tw32_mailbox_f(reg, val) tw32_mailbox_flush(tp, (reg), (val)) |
453 | #define tw32_rx_mbox(reg, val) tp->write32_rx_mbox(tp, reg, val) | 469 | #define tw32_rx_mbox(reg, val) tp->write32_rx_mbox(tp, reg, val) |
@@ -455,7 +471,8 @@ static u32 tg3_read32(struct tg3 *tp, u32 off) | |||
455 | #define tr32_mailbox(reg) tp->read32_mbox(tp, reg) | 471 | #define tr32_mailbox(reg) tp->read32_mbox(tp, reg) |
456 | 472 | ||
457 | #define tw32(reg,val) tp->write32(tp, reg, val) | 473 | #define tw32(reg,val) tp->write32(tp, reg, val) |
458 | #define tw32_f(reg,val) _tw32_flush(tp,(reg),(val)) | 474 | #define tw32_f(reg,val) _tw32_flush(tp,(reg),(val), 0) |
475 | #define tw32_wait_f(reg,val,us) _tw32_flush(tp,(reg),(val), (us)) | ||
459 | #define tr32(reg) tp->read32(tp, reg) | 476 | #define tr32(reg) tp->read32(tp, reg) |
460 | 477 | ||
461 | static void tg3_write_mem(struct tg3 *tp, u32 off, u32 val) | 478 | static void tg3_write_mem(struct tg3 *tp, u32 off, u32 val) |
@@ -595,21 +612,19 @@ static void tg3_switch_clocks(struct tg3 *tp) | |||
595 | 612 | ||
596 | if (tp->tg3_flags2 & TG3_FLG2_5705_PLUS) { | 613 | if (tp->tg3_flags2 & TG3_FLG2_5705_PLUS) { |
597 | if (orig_clock_ctrl & CLOCK_CTRL_625_CORE) { | 614 | if (orig_clock_ctrl & CLOCK_CTRL_625_CORE) { |
598 | tw32_f(TG3PCI_CLOCK_CTRL, | 615 | tw32_wait_f(TG3PCI_CLOCK_CTRL, |
599 | clock_ctrl | CLOCK_CTRL_625_CORE); | 616 | clock_ctrl | CLOCK_CTRL_625_CORE, 40); |
600 | udelay(40); | ||
601 | } | 617 | } |
602 | } else if ((orig_clock_ctrl & CLOCK_CTRL_44MHZ_CORE) != 0) { | 618 | } else if ((orig_clock_ctrl & CLOCK_CTRL_44MHZ_CORE) != 0) { |
603 | tw32_f(TG3PCI_CLOCK_CTRL, | 619 | tw32_wait_f(TG3PCI_CLOCK_CTRL, |
604 | clock_ctrl | | 620 | clock_ctrl | |
605 | (CLOCK_CTRL_44MHZ_CORE | CLOCK_CTRL_ALTCLK)); | 621 | (CLOCK_CTRL_44MHZ_CORE | CLOCK_CTRL_ALTCLK), |
606 | udelay(40); | 622 | 40); |
607 | tw32_f(TG3PCI_CLOCK_CTRL, | 623 | tw32_wait_f(TG3PCI_CLOCK_CTRL, |
608 | clock_ctrl | (CLOCK_CTRL_ALTCLK)); | 624 | clock_ctrl | (CLOCK_CTRL_ALTCLK), |
609 | udelay(40); | 625 | 40); |
610 | } | 626 | } |
611 | tw32_f(TG3PCI_CLOCK_CTRL, clock_ctrl); | 627 | tw32_wait_f(TG3PCI_CLOCK_CTRL, clock_ctrl, 40); |
612 | udelay(40); | ||
613 | } | 628 | } |
614 | 629 | ||
615 | #define PHY_BUSY_LOOPS 5000 | 630 | #define PHY_BUSY_LOOPS 5000 |
@@ -1017,37 +1032,50 @@ static void tg3_frob_aux_power(struct tg3 *tp) | |||
1017 | if ((tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) != 0) | 1032 | if ((tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) != 0) |
1018 | return; | 1033 | return; |
1019 | 1034 | ||
1020 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) { | 1035 | if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) || |
1021 | tp_peer = pci_get_drvdata(tp->pdev_peer); | 1036 | (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714)) { |
1022 | if (!tp_peer) | 1037 | struct net_device *dev_peer; |
1038 | |||
1039 | dev_peer = pci_get_drvdata(tp->pdev_peer); | ||
1040 | if (!dev_peer) | ||
1023 | BUG(); | 1041 | BUG(); |
1042 | tp_peer = netdev_priv(dev_peer); | ||
1024 | } | 1043 | } |
1025 | 1044 | ||
1026 | |||
1027 | if ((tp->tg3_flags & TG3_FLAG_WOL_ENABLE) != 0 || | 1045 | if ((tp->tg3_flags & TG3_FLAG_WOL_ENABLE) != 0 || |
1028 | (tp_peer->tg3_flags & TG3_FLAG_WOL_ENABLE) != 0) { | 1046 | (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) != 0 || |
1047 | (tp_peer->tg3_flags & TG3_FLAG_WOL_ENABLE) != 0 || | ||
1048 | (tp_peer->tg3_flags & TG3_FLAG_ENABLE_ASF) != 0) { | ||
1029 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || | 1049 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || |
1030 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) { | 1050 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701) { |
1031 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | | 1051 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | |
1032 | (GRC_LCLCTRL_GPIO_OE0 | | 1052 | (GRC_LCLCTRL_GPIO_OE0 | |
1033 | GRC_LCLCTRL_GPIO_OE1 | | 1053 | GRC_LCLCTRL_GPIO_OE1 | |
1034 | GRC_LCLCTRL_GPIO_OE2 | | 1054 | GRC_LCLCTRL_GPIO_OE2 | |
1035 | GRC_LCLCTRL_GPIO_OUTPUT0 | | 1055 | GRC_LCLCTRL_GPIO_OUTPUT0 | |
1036 | GRC_LCLCTRL_GPIO_OUTPUT1)); | 1056 | GRC_LCLCTRL_GPIO_OUTPUT1), |
1037 | udelay(100); | 1057 | 100); |
1038 | } else { | 1058 | } else { |
1039 | u32 no_gpio2; | 1059 | u32 no_gpio2; |
1040 | u32 grc_local_ctrl; | 1060 | u32 grc_local_ctrl = 0; |
1041 | 1061 | ||
1042 | if (tp_peer != tp && | 1062 | if (tp_peer != tp && |
1043 | (tp_peer->tg3_flags & TG3_FLAG_INIT_COMPLETE) != 0) | 1063 | (tp_peer->tg3_flags & TG3_FLAG_INIT_COMPLETE) != 0) |
1044 | return; | 1064 | return; |
1045 | 1065 | ||
1066 | /* Workaround to prevent overdrawing Amps. */ | ||
1067 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == | ||
1068 | ASIC_REV_5714) { | ||
1069 | grc_local_ctrl |= GRC_LCLCTRL_GPIO_OE3; | ||
1070 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | | ||
1071 | grc_local_ctrl, 100); | ||
1072 | } | ||
1073 | |||
1046 | /* On 5753 and variants, GPIO2 cannot be used. */ | 1074 | /* On 5753 and variants, GPIO2 cannot be used. */ |
1047 | no_gpio2 = tp->nic_sram_data_cfg & | 1075 | no_gpio2 = tp->nic_sram_data_cfg & |
1048 | NIC_SRAM_DATA_CFG_NO_GPIO2; | 1076 | NIC_SRAM_DATA_CFG_NO_GPIO2; |
1049 | 1077 | ||
1050 | grc_local_ctrl = GRC_LCLCTRL_GPIO_OE0 | | 1078 | grc_local_ctrl |= GRC_LCLCTRL_GPIO_OE0 | |
1051 | GRC_LCLCTRL_GPIO_OE1 | | 1079 | GRC_LCLCTRL_GPIO_OE1 | |
1052 | GRC_LCLCTRL_GPIO_OE2 | | 1080 | GRC_LCLCTRL_GPIO_OE2 | |
1053 | GRC_LCLCTRL_GPIO_OUTPUT1 | | 1081 | GRC_LCLCTRL_GPIO_OUTPUT1 | |
@@ -1056,21 +1084,18 @@ static void tg3_frob_aux_power(struct tg3 *tp) | |||
1056 | grc_local_ctrl &= ~(GRC_LCLCTRL_GPIO_OE2 | | 1084 | grc_local_ctrl &= ~(GRC_LCLCTRL_GPIO_OE2 | |
1057 | GRC_LCLCTRL_GPIO_OUTPUT2); | 1085 | GRC_LCLCTRL_GPIO_OUTPUT2); |
1058 | } | 1086 | } |
1059 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | | 1087 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | |
1060 | grc_local_ctrl); | 1088 | grc_local_ctrl, 100); |
1061 | udelay(100); | ||
1062 | 1089 | ||
1063 | grc_local_ctrl |= GRC_LCLCTRL_GPIO_OUTPUT0; | 1090 | grc_local_ctrl |= GRC_LCLCTRL_GPIO_OUTPUT0; |
1064 | 1091 | ||
1065 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | | 1092 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | |
1066 | grc_local_ctrl); | 1093 | grc_local_ctrl, 100); |
1067 | udelay(100); | ||
1068 | 1094 | ||
1069 | if (!no_gpio2) { | 1095 | if (!no_gpio2) { |
1070 | grc_local_ctrl &= ~GRC_LCLCTRL_GPIO_OUTPUT2; | 1096 | grc_local_ctrl &= ~GRC_LCLCTRL_GPIO_OUTPUT2; |
1071 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | | 1097 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | |
1072 | grc_local_ctrl); | 1098 | grc_local_ctrl, 100); |
1073 | udelay(100); | ||
1074 | } | 1099 | } |
1075 | } | 1100 | } |
1076 | } else { | 1101 | } else { |
@@ -1080,19 +1105,16 @@ static void tg3_frob_aux_power(struct tg3 *tp) | |||
1080 | (tp_peer->tg3_flags & TG3_FLAG_INIT_COMPLETE) != 0) | 1105 | (tp_peer->tg3_flags & TG3_FLAG_INIT_COMPLETE) != 0) |
1081 | return; | 1106 | return; |
1082 | 1107 | ||
1083 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | | 1108 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | |
1084 | (GRC_LCLCTRL_GPIO_OE1 | | 1109 | (GRC_LCLCTRL_GPIO_OE1 | |
1085 | GRC_LCLCTRL_GPIO_OUTPUT1)); | 1110 | GRC_LCLCTRL_GPIO_OUTPUT1), 100); |
1086 | udelay(100); | ||
1087 | 1111 | ||
1088 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | | 1112 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | |
1089 | (GRC_LCLCTRL_GPIO_OE1)); | 1113 | GRC_LCLCTRL_GPIO_OE1, 100); |
1090 | udelay(100); | ||
1091 | 1114 | ||
1092 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | | 1115 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl | |
1093 | (GRC_LCLCTRL_GPIO_OE1 | | 1116 | (GRC_LCLCTRL_GPIO_OE1 | |
1094 | GRC_LCLCTRL_GPIO_OUTPUT1)); | 1117 | GRC_LCLCTRL_GPIO_OUTPUT1), 100); |
1095 | udelay(100); | ||
1096 | } | 1118 | } |
1097 | } | 1119 | } |
1098 | } | 1120 | } |
@@ -1105,6 +1127,8 @@ static int tg3_setup_phy(struct tg3 *, int); | |||
1105 | 1127 | ||
1106 | static void tg3_write_sig_post_reset(struct tg3 *, int); | 1128 | static void tg3_write_sig_post_reset(struct tg3 *, int); |
1107 | static int tg3_halt_cpu(struct tg3 *, u32); | 1129 | static int tg3_halt_cpu(struct tg3 *, u32); |
1130 | static int tg3_nvram_lock(struct tg3 *); | ||
1131 | static void tg3_nvram_unlock(struct tg3 *); | ||
1108 | 1132 | ||
1109 | static int tg3_set_power_state(struct tg3 *tp, int state) | 1133 | static int tg3_set_power_state(struct tg3 *tp, int state) |
1110 | { | 1134 | { |
@@ -1133,10 +1157,8 @@ static int tg3_set_power_state(struct tg3 *tp, int state) | |||
1133 | udelay(100); /* Delay after power state change */ | 1157 | udelay(100); /* Delay after power state change */ |
1134 | 1158 | ||
1135 | /* Switch out of Vaux if it is not a LOM */ | 1159 | /* Switch out of Vaux if it is not a LOM */ |
1136 | if (!(tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT)) { | 1160 | if (!(tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT)) |
1137 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl); | 1161 | tw32_wait_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl, 100); |
1138 | udelay(100); | ||
1139 | } | ||
1140 | 1162 | ||
1141 | return 0; | 1163 | return 0; |
1142 | 1164 | ||
@@ -1179,6 +1201,21 @@ static int tg3_set_power_state(struct tg3 *tp, int state) | |||
1179 | tg3_setup_phy(tp, 0); | 1201 | tg3_setup_phy(tp, 0); |
1180 | } | 1202 | } |
1181 | 1203 | ||
1204 | if (!(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) { | ||
1205 | int i; | ||
1206 | u32 val; | ||
1207 | |||
1208 | for (i = 0; i < 200; i++) { | ||
1209 | tg3_read_mem(tp, NIC_SRAM_FW_ASF_STATUS_MBOX, &val); | ||
1210 | if (val == ~NIC_SRAM_FIRMWARE_MBOX_MAGIC1) | ||
1211 | break; | ||
1212 | msleep(1); | ||
1213 | } | ||
1214 | } | ||
1215 | tg3_write_mem(tp, NIC_SRAM_WOL_MBOX, WOL_SIGNATURE | | ||
1216 | WOL_DRV_STATE_SHUTDOWN | | ||
1217 | WOL_DRV_WOL | WOL_SET_MAGIC_PKT); | ||
1218 | |||
1182 | pci_read_config_word(tp->pdev, pm + PCI_PM_PMC, &power_caps); | 1219 | pci_read_config_word(tp->pdev, pm + PCI_PM_PMC, &power_caps); |
1183 | 1220 | ||
1184 | if (tp->tg3_flags & TG3_FLAG_WOL_ENABLE) { | 1221 | if (tp->tg3_flags & TG3_FLAG_WOL_ENABLE) { |
@@ -1220,10 +1257,8 @@ static int tg3_set_power_state(struct tg3 *tp, int state) | |||
1220 | base_val |= (CLOCK_CTRL_RXCLK_DISABLE | | 1257 | base_val |= (CLOCK_CTRL_RXCLK_DISABLE | |
1221 | CLOCK_CTRL_TXCLK_DISABLE); | 1258 | CLOCK_CTRL_TXCLK_DISABLE); |
1222 | 1259 | ||
1223 | tw32_f(TG3PCI_CLOCK_CTRL, base_val | | 1260 | tw32_wait_f(TG3PCI_CLOCK_CTRL, base_val | CLOCK_CTRL_ALTCLK | |
1224 | CLOCK_CTRL_ALTCLK | | 1261 | CLOCK_CTRL_PWRDOWN_PLL133, 40); |
1225 | CLOCK_CTRL_PWRDOWN_PLL133); | ||
1226 | udelay(40); | ||
1227 | } else if (tp->tg3_flags2 & TG3_FLG2_5780_CLASS) { | 1262 | } else if (tp->tg3_flags2 & TG3_FLG2_5780_CLASS) { |
1228 | /* do nothing */ | 1263 | /* do nothing */ |
1229 | } else if (!((tp->tg3_flags2 & TG3_FLG2_5750_PLUS) && | 1264 | } else if (!((tp->tg3_flags2 & TG3_FLG2_5750_PLUS) && |
@@ -1244,11 +1279,11 @@ static int tg3_set_power_state(struct tg3 *tp, int state) | |||
1244 | newbits2 = newbits1 | CLOCK_CTRL_44MHZ_CORE; | 1279 | newbits2 = newbits1 | CLOCK_CTRL_44MHZ_CORE; |
1245 | } | 1280 | } |
1246 | 1281 | ||
1247 | tw32_f(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl | newbits1); | 1282 | tw32_wait_f(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl | newbits1, |
1248 | udelay(40); | 1283 | 40); |
1249 | 1284 | ||
1250 | tw32_f(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl | newbits2); | 1285 | tw32_wait_f(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl | newbits2, |
1251 | udelay(40); | 1286 | 40); |
1252 | 1287 | ||
1253 | if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS)) { | 1288 | if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS)) { |
1254 | u32 newbits3; | 1289 | u32 newbits3; |
@@ -1262,9 +1297,20 @@ static int tg3_set_power_state(struct tg3 *tp, int state) | |||
1262 | newbits3 = CLOCK_CTRL_44MHZ_CORE; | 1297 | newbits3 = CLOCK_CTRL_44MHZ_CORE; |
1263 | } | 1298 | } |
1264 | 1299 | ||
1265 | tw32_f(TG3PCI_CLOCK_CTRL, | 1300 | tw32_wait_f(TG3PCI_CLOCK_CTRL, |
1266 | tp->pci_clock_ctrl | newbits3); | 1301 | tp->pci_clock_ctrl | newbits3, 40); |
1267 | udelay(40); | 1302 | } |
1303 | } | ||
1304 | |||
1305 | if (!(tp->tg3_flags & TG3_FLAG_WOL_ENABLE) && | ||
1306 | !(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) { | ||
1307 | /* Turn off the PHY */ | ||
1308 | if (!(tp->tg3_flags2 & TG3_FLG2_PHY_SERDES)) { | ||
1309 | tg3_writephy(tp, MII_TG3_EXT_CTRL, | ||
1310 | MII_TG3_EXT_CTRL_FORCE_LED_OFF); | ||
1311 | tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x01b2); | ||
1312 | if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700) | ||
1313 | tg3_writephy(tp, MII_BMCR, BMCR_PDOWN); | ||
1268 | } | 1314 | } |
1269 | } | 1315 | } |
1270 | 1316 | ||
@@ -1277,8 +1323,12 @@ static int tg3_set_power_state(struct tg3 *tp, int state) | |||
1277 | 1323 | ||
1278 | val &= ~((1 << 16) | (1 << 4) | (1 << 2) | (1 << 1) | 1); | 1324 | val &= ~((1 << 16) | (1 << 4) | (1 << 2) | (1 << 1) | 1); |
1279 | tw32(0x7d00, val); | 1325 | tw32(0x7d00, val); |
1280 | if (!(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) | 1326 | if (!(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) { |
1327 | tg3_nvram_lock(tp); | ||
1281 | tg3_halt_cpu(tp, RX_CPU_BASE); | 1328 | tg3_halt_cpu(tp, RX_CPU_BASE); |
1329 | tw32_f(NVRAM_SWARB, SWARB_REQ_CLR0); | ||
1330 | tg3_nvram_unlock(tp); | ||
1331 | } | ||
1282 | } | 1332 | } |
1283 | 1333 | ||
1284 | /* Finally, set the new power state. */ | 1334 | /* Finally, set the new power state. */ |
@@ -1812,7 +1862,7 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset) | |||
1812 | } | 1862 | } |
1813 | } | 1863 | } |
1814 | relink: | 1864 | relink: |
1815 | if (current_link_up == 0) { | 1865 | if (current_link_up == 0 || tp->link_config.phy_is_low_power) { |
1816 | u32 tmp; | 1866 | u32 tmp; |
1817 | 1867 | ||
1818 | tg3_phy_copper_begin(tp); | 1868 | tg3_phy_copper_begin(tp); |
@@ -3565,12 +3615,15 @@ static int tg3_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3565 | if (!spin_trylock(&tp->tx_lock)) | 3615 | if (!spin_trylock(&tp->tx_lock)) |
3566 | return NETDEV_TX_LOCKED; | 3616 | return NETDEV_TX_LOCKED; |
3567 | 3617 | ||
3568 | /* This is a hard error, log it. */ | ||
3569 | if (unlikely(TX_BUFFS_AVAIL(tp) <= (skb_shinfo(skb)->nr_frags + 1))) { | 3618 | if (unlikely(TX_BUFFS_AVAIL(tp) <= (skb_shinfo(skb)->nr_frags + 1))) { |
3570 | netif_stop_queue(dev); | 3619 | if (!netif_queue_stopped(dev)) { |
3620 | netif_stop_queue(dev); | ||
3621 | |||
3622 | /* This is a hard error, log it. */ | ||
3623 | printk(KERN_ERR PFX "%s: BUG! Tx Ring full when " | ||
3624 | "queue awake!\n", dev->name); | ||
3625 | } | ||
3571 | spin_unlock(&tp->tx_lock); | 3626 | spin_unlock(&tp->tx_lock); |
3572 | printk(KERN_ERR PFX "%s: BUG! Tx Ring full when queue awake!\n", | ||
3573 | dev->name); | ||
3574 | return NETDEV_TX_BUSY; | 3627 | return NETDEV_TX_BUSY; |
3575 | } | 3628 | } |
3576 | 3629 | ||
@@ -7922,13 +7975,12 @@ static int tg3_test_memory(struct tg3 *tp) | |||
7922 | u32 offset; | 7975 | u32 offset; |
7923 | u32 len; | 7976 | u32 len; |
7924 | } mem_tbl_570x[] = { | 7977 | } mem_tbl_570x[] = { |
7925 | { 0x00000000, 0x01000}, | 7978 | { 0x00000000, 0x00b50}, |
7926 | { 0x00002000, 0x1c000}, | 7979 | { 0x00002000, 0x1c000}, |
7927 | { 0xffffffff, 0x00000} | 7980 | { 0xffffffff, 0x00000} |
7928 | }, mem_tbl_5705[] = { | 7981 | }, mem_tbl_5705[] = { |
7929 | { 0x00000100, 0x0000c}, | 7982 | { 0x00000100, 0x0000c}, |
7930 | { 0x00000200, 0x00008}, | 7983 | { 0x00000200, 0x00008}, |
7931 | { 0x00000b50, 0x00400}, | ||
7932 | { 0x00004000, 0x00800}, | 7984 | { 0x00004000, 0x00800}, |
7933 | { 0x00006000, 0x01000}, | 7985 | { 0x00006000, 0x01000}, |
7934 | { 0x00008000, 0x02000}, | 7986 | { 0x00008000, 0x02000}, |
@@ -8530,6 +8582,7 @@ static void __devinit tg3_nvram_init(struct tg3 *tp) | |||
8530 | GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701) { | 8582 | GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5701) { |
8531 | tp->tg3_flags |= TG3_FLAG_NVRAM; | 8583 | tp->tg3_flags |= TG3_FLAG_NVRAM; |
8532 | 8584 | ||
8585 | tg3_nvram_lock(tp); | ||
8533 | tg3_enable_nvram_access(tp); | 8586 | tg3_enable_nvram_access(tp); |
8534 | 8587 | ||
8535 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752) | 8588 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752) |
@@ -8540,6 +8593,7 @@ static void __devinit tg3_nvram_init(struct tg3 *tp) | |||
8540 | tg3_get_nvram_size(tp); | 8593 | tg3_get_nvram_size(tp); |
8541 | 8594 | ||
8542 | tg3_disable_nvram_access(tp); | 8595 | tg3_disable_nvram_access(tp); |
8596 | tg3_nvram_unlock(tp); | ||
8543 | 8597 | ||
8544 | } else { | 8598 | } else { |
8545 | tp->tg3_flags &= ~(TG3_FLAG_NVRAM | TG3_FLAG_NVRAM_BUFFERED); | 8599 | tp->tg3_flags &= ~(TG3_FLAG_NVRAM | TG3_FLAG_NVRAM_BUFFERED); |
@@ -8637,10 +8691,10 @@ static int tg3_nvram_read(struct tg3 *tp, u32 offset, u32 *val) | |||
8637 | if (ret == 0) | 8691 | if (ret == 0) |
8638 | *val = swab32(tr32(NVRAM_RDDATA)); | 8692 | *val = swab32(tr32(NVRAM_RDDATA)); |
8639 | 8693 | ||
8640 | tg3_nvram_unlock(tp); | ||
8641 | |||
8642 | tg3_disable_nvram_access(tp); | 8694 | tg3_disable_nvram_access(tp); |
8643 | 8695 | ||
8696 | tg3_nvram_unlock(tp); | ||
8697 | |||
8644 | return ret; | 8698 | return ret; |
8645 | } | 8699 | } |
8646 | 8700 | ||
@@ -8725,6 +8779,10 @@ static int tg3_nvram_write_block_unbuffered(struct tg3 *tp, u32 offset, u32 len, | |||
8725 | 8779 | ||
8726 | offset = offset + (pagesize - page_off); | 8780 | offset = offset + (pagesize - page_off); |
8727 | 8781 | ||
8782 | /* Nvram lock released by tg3_nvram_read() above, | ||
8783 | * so need to get it again. | ||
8784 | */ | ||
8785 | tg3_nvram_lock(tp); | ||
8728 | tg3_enable_nvram_access(tp); | 8786 | tg3_enable_nvram_access(tp); |
8729 | 8787 | ||
8730 | /* | 8788 | /* |
@@ -10423,7 +10481,7 @@ static char * __devinit tg3_bus_string(struct tg3 *tp, char *str) | |||
10423 | return str; | 10481 | return str; |
10424 | } | 10482 | } |
10425 | 10483 | ||
10426 | static struct pci_dev * __devinit tg3_find_5704_peer(struct tg3 *tp) | 10484 | static struct pci_dev * __devinit tg3_find_peer(struct tg3 *tp) |
10427 | { | 10485 | { |
10428 | struct pci_dev *peer; | 10486 | struct pci_dev *peer; |
10429 | unsigned int func, devnr = tp->pdev->devfn & ~7; | 10487 | unsigned int func, devnr = tp->pdev->devfn & ~7; |
@@ -10434,8 +10492,13 @@ static struct pci_dev * __devinit tg3_find_5704_peer(struct tg3 *tp) | |||
10434 | break; | 10492 | break; |
10435 | pci_dev_put(peer); | 10493 | pci_dev_put(peer); |
10436 | } | 10494 | } |
10437 | if (!peer || peer == tp->pdev) | 10495 | /* 5704 can be configured in single-port mode, set peer to |
10438 | BUG(); | 10496 | * tp->pdev in that case. |
10497 | */ | ||
10498 | if (!peer) { | ||
10499 | peer = tp->pdev; | ||
10500 | return peer; | ||
10501 | } | ||
10439 | 10502 | ||
10440 | /* | 10503 | /* |
10441 | * We don't need to keep the refcount elevated; there's no way | 10504 | * We don't need to keep the refcount elevated; there's no way |
@@ -10671,8 +10734,9 @@ static int __devinit tg3_init_one(struct pci_dev *pdev, | |||
10671 | tp->rx_pending = 63; | 10734 | tp->rx_pending = 63; |
10672 | } | 10735 | } |
10673 | 10736 | ||
10674 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) | 10737 | if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) || |
10675 | tp->pdev_peer = tg3_find_5704_peer(tp); | 10738 | (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714)) |
10739 | tp->pdev_peer = tg3_find_peer(tp); | ||
10676 | 10740 | ||
10677 | err = tg3_get_device_address(tp); | 10741 | err = tg3_get_device_address(tp); |
10678 | if (err) { | 10742 | if (err) { |
@@ -10817,12 +10881,14 @@ static int tg3_suspend(struct pci_dev *pdev, pm_message_t state) | |||
10817 | 10881 | ||
10818 | tg3_full_lock(tp, 0); | 10882 | tg3_full_lock(tp, 0); |
10819 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); | 10883 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); |
10884 | tp->tg3_flags &= ~TG3_FLAG_INIT_COMPLETE; | ||
10820 | tg3_full_unlock(tp); | 10885 | tg3_full_unlock(tp); |
10821 | 10886 | ||
10822 | err = tg3_set_power_state(tp, pci_choose_state(pdev, state)); | 10887 | err = tg3_set_power_state(tp, pci_choose_state(pdev, state)); |
10823 | if (err) { | 10888 | if (err) { |
10824 | tg3_full_lock(tp, 0); | 10889 | tg3_full_lock(tp, 0); |
10825 | 10890 | ||
10891 | tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; | ||
10826 | tg3_init_hw(tp); | 10892 | tg3_init_hw(tp); |
10827 | 10893 | ||
10828 | tp->timer.expires = jiffies + tp->timer_offset; | 10894 | tp->timer.expires = jiffies + tp->timer_offset; |
@@ -10856,6 +10922,7 @@ static int tg3_resume(struct pci_dev *pdev) | |||
10856 | 10922 | ||
10857 | tg3_full_lock(tp, 0); | 10923 | tg3_full_lock(tp, 0); |
10858 | 10924 | ||
10925 | tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; | ||
10859 | tg3_init_hw(tp); | 10926 | tg3_init_hw(tp); |
10860 | 10927 | ||
10861 | tp->timer.expires = jiffies + tp->timer_offset; | 10928 | tp->timer.expires = jiffies + tp->timer_offset; |
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h index fb7e2a5f4a08..94dbcf3537ec 100644 --- a/drivers/net/tg3.h +++ b/drivers/net/tg3.h | |||
@@ -1529,6 +1529,12 @@ | |||
1529 | #define NIC_SRAM_MAC_ADDR_HIGH_MBOX 0x00000c14 | 1529 | #define NIC_SRAM_MAC_ADDR_HIGH_MBOX 0x00000c14 |
1530 | #define NIC_SRAM_MAC_ADDR_LOW_MBOX 0x00000c18 | 1530 | #define NIC_SRAM_MAC_ADDR_LOW_MBOX 0x00000c18 |
1531 | 1531 | ||
1532 | #define NIC_SRAM_WOL_MBOX 0x00000d30 | ||
1533 | #define WOL_SIGNATURE 0x474c0000 | ||
1534 | #define WOL_DRV_STATE_SHUTDOWN 0x00000001 | ||
1535 | #define WOL_DRV_WOL 0x00000002 | ||
1536 | #define WOL_SET_MAGIC_PKT 0x00000004 | ||
1537 | |||
1532 | #define NIC_SRAM_DATA_CFG_2 0x00000d38 | 1538 | #define NIC_SRAM_DATA_CFG_2 0x00000d38 |
1533 | 1539 | ||
1534 | #define SHASTA_EXT_LED_MODE_MASK 0x00018000 | 1540 | #define SHASTA_EXT_LED_MODE_MASK 0x00018000 |
@@ -1565,6 +1571,7 @@ | |||
1565 | #define MII_TG3_EXT_CTRL 0x10 /* Extended control register */ | 1571 | #define MII_TG3_EXT_CTRL 0x10 /* Extended control register */ |
1566 | #define MII_TG3_EXT_CTRL_FIFO_ELASTIC 0x0001 | 1572 | #define MII_TG3_EXT_CTRL_FIFO_ELASTIC 0x0001 |
1567 | #define MII_TG3_EXT_CTRL_LNK3_LED_MODE 0x0002 | 1573 | #define MII_TG3_EXT_CTRL_LNK3_LED_MODE 0x0002 |
1574 | #define MII_TG3_EXT_CTRL_FORCE_LED_OFF 0x0008 | ||
1568 | #define MII_TG3_EXT_CTRL_TBI 0x8000 | 1575 | #define MII_TG3_EXT_CTRL_TBI 0x8000 |
1569 | 1576 | ||
1570 | #define MII_TG3_EXT_STAT 0x11 /* Extended status register */ | 1577 | #define MII_TG3_EXT_STAT 0x11 /* Extended status register */ |
diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile index 716df015f8d0..6707df968934 100644 --- a/drivers/pci/Makefile +++ b/drivers/pci/Makefile | |||
@@ -6,6 +6,9 @@ obj-y += access.o bus.o probe.o remove.o pci.o quirks.o \ | |||
6 | pci-driver.o search.o pci-sysfs.o rom.o setup-res.o | 6 | pci-driver.o search.o pci-sysfs.o rom.o setup-res.o |
7 | obj-$(CONFIG_PROC_FS) += proc.o | 7 | obj-$(CONFIG_PROC_FS) += proc.o |
8 | 8 | ||
9 | # Build PCI Express stuff if needed | ||
10 | obj-$(CONFIG_PCIEPORTBUS) += pcie/ | ||
11 | |||
9 | obj-$(CONFIG_HOTPLUG) += hotplug.o | 12 | obj-$(CONFIG_HOTPLUG) += hotplug.o |
10 | 13 | ||
11 | # Build the PCI Hotplug drivers if we were asked to | 14 | # Build the PCI Hotplug drivers if we were asked to |
@@ -40,7 +43,3 @@ endif | |||
40 | ifeq ($(CONFIG_PCI_DEBUG),y) | 43 | ifeq ($(CONFIG_PCI_DEBUG),y) |
41 | EXTRA_CFLAGS += -DDEBUG | 44 | EXTRA_CFLAGS += -DDEBUG |
42 | endif | 45 | endif |
43 | |||
44 | # Build PCI Express stuff if needed | ||
45 | obj-$(CONFIG_PCIEPORTBUS) += pcie/ | ||
46 | |||
diff --git a/drivers/sbus/char/jsflash.c b/drivers/sbus/char/jsflash.c index c12c5046e2fa..14631ac11bc7 100644 --- a/drivers/sbus/char/jsflash.c +++ b/drivers/sbus/char/jsflash.c | |||
@@ -249,11 +249,11 @@ static loff_t jsf_lseek(struct file * file, loff_t offset, int orig) | |||
249 | /* | 249 | /* |
250 | * OS SIMM Cannot be read in other size but a 32bits word. | 250 | * OS SIMM Cannot be read in other size but a 32bits word. |
251 | */ | 251 | */ |
252 | static ssize_t jsf_read(struct file * file, char * buf, | 252 | static ssize_t jsf_read(struct file * file, char __user * buf, |
253 | size_t togo, loff_t *ppos) | 253 | size_t togo, loff_t *ppos) |
254 | { | 254 | { |
255 | unsigned long p = *ppos; | 255 | unsigned long p = *ppos; |
256 | char *tmp = buf; | 256 | char __user *tmp = buf; |
257 | 257 | ||
258 | union byte4 { | 258 | union byte4 { |
259 | char s[4]; | 259 | char s[4]; |
@@ -305,7 +305,7 @@ static ssize_t jsf_read(struct file * file, char * buf, | |||
305 | return tmp-buf; | 305 | return tmp-buf; |
306 | } | 306 | } |
307 | 307 | ||
308 | static ssize_t jsf_write(struct file * file, const char * buf, | 308 | static ssize_t jsf_write(struct file * file, const char __user * buf, |
309 | size_t count, loff_t *ppos) | 309 | size_t count, loff_t *ppos) |
310 | { | 310 | { |
311 | return -ENOSPC; | 311 | return -ENOSPC; |
@@ -356,10 +356,10 @@ static int jsf_ioctl_erase(unsigned long arg) | |||
356 | * Program a block of flash. | 356 | * Program a block of flash. |
357 | * Very simple because we can do it byte by byte anyway. | 357 | * Very simple because we can do it byte by byte anyway. |
358 | */ | 358 | */ |
359 | static int jsf_ioctl_program(unsigned long arg) | 359 | static int jsf_ioctl_program(void __user *arg) |
360 | { | 360 | { |
361 | struct jsflash_program_arg abuf; | 361 | struct jsflash_program_arg abuf; |
362 | char *uptr; | 362 | char __user *uptr; |
363 | unsigned long p; | 363 | unsigned long p; |
364 | unsigned int togo; | 364 | unsigned int togo; |
365 | union { | 365 | union { |
@@ -367,13 +367,13 @@ static int jsf_ioctl_program(unsigned long arg) | |||
367 | char s[4]; | 367 | char s[4]; |
368 | } b; | 368 | } b; |
369 | 369 | ||
370 | if (copy_from_user(&abuf, (char *)arg, JSFPRGSZ)) | 370 | if (copy_from_user(&abuf, arg, JSFPRGSZ)) |
371 | return -EFAULT; | 371 | return -EFAULT; |
372 | p = abuf.off; | 372 | p = abuf.off; |
373 | togo = abuf.size; | 373 | togo = abuf.size; |
374 | if ((togo & 3) || (p & 3)) return -EINVAL; | 374 | if ((togo & 3) || (p & 3)) return -EINVAL; |
375 | 375 | ||
376 | uptr = (char *) (unsigned long) abuf.data; | 376 | uptr = (char __user *) (unsigned long) abuf.data; |
377 | while (togo != 0) { | 377 | while (togo != 0) { |
378 | togo -= 4; | 378 | togo -= 4; |
379 | if (copy_from_user(&b.s[0], uptr, 4)) | 379 | if (copy_from_user(&b.s[0], uptr, 4)) |
@@ -390,19 +390,20 @@ static int jsf_ioctl(struct inode *inode, struct file *f, unsigned int cmd, | |||
390 | unsigned long arg) | 390 | unsigned long arg) |
391 | { | 391 | { |
392 | int error = -ENOTTY; | 392 | int error = -ENOTTY; |
393 | void __user *argp = (void __user *)arg; | ||
393 | 394 | ||
394 | if (!capable(CAP_SYS_ADMIN)) | 395 | if (!capable(CAP_SYS_ADMIN)) |
395 | return -EPERM; | 396 | return -EPERM; |
396 | switch (cmd) { | 397 | switch (cmd) { |
397 | case JSFLASH_IDENT: | 398 | case JSFLASH_IDENT: |
398 | if (copy_to_user((void *)arg, &jsf0.id, JSFIDSZ)) | 399 | if (copy_to_user(argp, &jsf0.id, JSFIDSZ)) |
399 | return -EFAULT; | 400 | return -EFAULT; |
400 | break; | 401 | break; |
401 | case JSFLASH_ERASE: | 402 | case JSFLASH_ERASE: |
402 | error = jsf_ioctl_erase(arg); | 403 | error = jsf_ioctl_erase(arg); |
403 | break; | 404 | break; |
404 | case JSFLASH_PROGRAM: | 405 | case JSFLASH_PROGRAM: |
405 | error = jsf_ioctl_program(arg); | 406 | error = jsf_ioctl_program(argp); |
406 | break; | 407 | break; |
407 | } | 408 | } |
408 | 409 | ||
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c index 858cc683f85c..e2d9a7c85427 100644 --- a/drivers/sbus/char/uctrl.c +++ b/drivers/sbus/char/uctrl.c | |||
@@ -309,7 +309,7 @@ static void uctrl_do_txn(struct uctrl_txn *txn) | |||
309 | } | 309 | } |
310 | } | 310 | } |
311 | 311 | ||
312 | void uctrl_get_event_status() | 312 | void uctrl_get_event_status(void) |
313 | { | 313 | { |
314 | struct uctrl_driver *driver = &drv; | 314 | struct uctrl_driver *driver = &drv; |
315 | struct uctrl_txn txn; | 315 | struct uctrl_txn txn; |
@@ -318,7 +318,7 @@ void uctrl_get_event_status() | |||
318 | txn.opcode = READ_EVENT_STATUS; | 318 | txn.opcode = READ_EVENT_STATUS; |
319 | txn.inbits = 0; | 319 | txn.inbits = 0; |
320 | txn.outbits = 2; | 320 | txn.outbits = 2; |
321 | txn.inbuf = 0; | 321 | txn.inbuf = NULL; |
322 | txn.outbuf = outbits; | 322 | txn.outbuf = outbits; |
323 | 323 | ||
324 | uctrl_do_txn(&txn); | 324 | uctrl_do_txn(&txn); |
@@ -329,7 +329,7 @@ void uctrl_get_event_status() | |||
329 | dprintk(("ev is %x\n", driver->status.event_status)); | 329 | dprintk(("ev is %x\n", driver->status.event_status)); |
330 | } | 330 | } |
331 | 331 | ||
332 | void uctrl_get_external_status() | 332 | void uctrl_get_external_status(void) |
333 | { | 333 | { |
334 | struct uctrl_driver *driver = &drv; | 334 | struct uctrl_driver *driver = &drv; |
335 | struct uctrl_txn txn; | 335 | struct uctrl_txn txn; |
@@ -339,7 +339,7 @@ void uctrl_get_external_status() | |||
339 | txn.opcode = READ_EXTERNAL_STATUS; | 339 | txn.opcode = READ_EXTERNAL_STATUS; |
340 | txn.inbits = 0; | 340 | txn.inbits = 0; |
341 | txn.outbits = 2; | 341 | txn.outbits = 2; |
342 | txn.inbuf = 0; | 342 | txn.inbuf = NULL; |
343 | txn.outbuf = outbits; | 343 | txn.outbuf = outbits; |
344 | 344 | ||
345 | uctrl_do_txn(&txn); | 345 | uctrl_do_txn(&txn); |
@@ -414,7 +414,7 @@ static void __exit ts102_uctrl_cleanup(void) | |||
414 | if (driver->irq) | 414 | if (driver->irq) |
415 | free_irq(driver->irq, driver); | 415 | free_irq(driver->irq, driver); |
416 | if (driver->regs) | 416 | if (driver->regs) |
417 | driver->regs = 0; | 417 | driver->regs = NULL; |
418 | } | 418 | } |
419 | 419 | ||
420 | module_init(ts102_uctrl_init); | 420 | module_init(ts102_uctrl_init); |
diff --git a/drivers/sbus/char/vfc.h b/drivers/sbus/char/vfc.h index a7782e7da42e..8045cd5e7cb3 100644 --- a/drivers/sbus/char/vfc.h +++ b/drivers/sbus/char/vfc.h | |||
@@ -125,7 +125,7 @@ struct vfc_regs { | |||
125 | 125 | ||
126 | 126 | ||
127 | struct vfc_dev { | 127 | struct vfc_dev { |
128 | volatile struct vfc_regs *regs; | 128 | volatile struct vfc_regs __iomem *regs; |
129 | struct vfc_regs *phys_regs; | 129 | struct vfc_regs *phys_regs; |
130 | unsigned int control_reg; | 130 | unsigned int control_reg; |
131 | struct semaphore device_lock_sem; | 131 | struct semaphore device_lock_sem; |
diff --git a/drivers/sbus/char/vfc_dev.c b/drivers/sbus/char/vfc_dev.c index 7a103698fa3c..dfdd6be551f3 100644 --- a/drivers/sbus/char/vfc_dev.c +++ b/drivers/sbus/char/vfc_dev.c | |||
@@ -149,7 +149,7 @@ int init_vfc_device(struct sbus_dev *sdev,struct vfc_dev *dev, int instance) | |||
149 | } | 149 | } |
150 | printk("Initializing vfc%d\n",instance); | 150 | printk("Initializing vfc%d\n",instance); |
151 | dev->regs = NULL; | 151 | dev->regs = NULL; |
152 | dev->regs = (volatile struct vfc_regs *) | 152 | dev->regs = (volatile struct vfc_regs __iomem *) |
153 | sbus_ioremap(&sdev->resource[0], 0, | 153 | sbus_ioremap(&sdev->resource[0], 0, |
154 | sizeof(struct vfc_regs), vfcstr); | 154 | sizeof(struct vfc_regs), vfcstr); |
155 | dev->which_io = sdev->reg_addrs[0].which_io; | 155 | dev->which_io = sdev->reg_addrs[0].which_io; |
@@ -319,7 +319,7 @@ int vfc_capture_poll(struct vfc_dev *dev) | |||
319 | int timeout = 1000; | 319 | int timeout = 1000; |
320 | 320 | ||
321 | while (!timeout--) { | 321 | while (!timeout--) { |
322 | if (dev->regs->control & VFC_STATUS_CAPTURE) | 322 | if (sbus_readl(&dev->regs->control) & VFC_STATUS_CAPTURE) |
323 | break; | 323 | break; |
324 | vfc_i2c_delay_no_busy(dev, 100); | 324 | vfc_i2c_delay_no_busy(dev, 100); |
325 | } | 325 | } |
@@ -718,7 +718,7 @@ static void deinit_vfc_device(struct vfc_dev *dev) | |||
718 | if(dev == NULL) | 718 | if(dev == NULL) |
719 | return; | 719 | return; |
720 | devfs_remove("vfc/%d", dev->instance); | 720 | devfs_remove("vfc/%d", dev->instance); |
721 | sbus_iounmap((unsigned long)dev->regs, sizeof(struct vfc_regs)); | 721 | sbus_iounmap(dev->regs, sizeof(struct vfc_regs)); |
722 | kfree(dev); | 722 | kfree(dev); |
723 | } | 723 | } |
724 | 724 | ||
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c index 418fc7b896ac..6252b9ddc01e 100644 --- a/drivers/scsi/dpt_i2o.c +++ b/drivers/scsi/dpt_i2o.c | |||
@@ -660,7 +660,12 @@ static int adpt_abort(struct scsi_cmnd * cmd) | |||
660 | msg[2] = 0; | 660 | msg[2] = 0; |
661 | msg[3]= 0; | 661 | msg[3]= 0; |
662 | msg[4] = (u32)cmd; | 662 | msg[4] = (u32)cmd; |
663 | if( (rcode = adpt_i2o_post_wait(pHba, msg, sizeof(msg), FOREVER)) != 0){ | 663 | if (pHba->host) |
664 | spin_lock_irq(pHba->host->host_lock); | ||
665 | rcode = adpt_i2o_post_wait(pHba, msg, sizeof(msg), FOREVER); | ||
666 | if (pHba->host) | ||
667 | spin_unlock_irq(pHba->host->host_lock); | ||
668 | if (rcode != 0) { | ||
664 | if(rcode == -EOPNOTSUPP ){ | 669 | if(rcode == -EOPNOTSUPP ){ |
665 | printk(KERN_INFO"%s: Abort cmd not supported\n",pHba->name); | 670 | printk(KERN_INFO"%s: Abort cmd not supported\n",pHba->name); |
666 | return FAILED; | 671 | return FAILED; |
@@ -697,10 +702,15 @@ static int adpt_device_reset(struct scsi_cmnd* cmd) | |||
697 | msg[2] = 0; | 702 | msg[2] = 0; |
698 | msg[3] = 0; | 703 | msg[3] = 0; |
699 | 704 | ||
705 | if (pHba->host) | ||
706 | spin_lock_irq(pHba->host->host_lock); | ||
700 | old_state = d->state; | 707 | old_state = d->state; |
701 | d->state |= DPTI_DEV_RESET; | 708 | d->state |= DPTI_DEV_RESET; |
702 | if( (rcode = adpt_i2o_post_wait(pHba, msg,sizeof(msg), FOREVER)) ){ | 709 | rcode = adpt_i2o_post_wait(pHba, msg,sizeof(msg), FOREVER); |
703 | d->state = old_state; | 710 | d->state = old_state; |
711 | if (pHba->host) | ||
712 | spin_unlock_irq(pHba->host->host_lock); | ||
713 | if (rcode != 0) { | ||
704 | if(rcode == -EOPNOTSUPP ){ | 714 | if(rcode == -EOPNOTSUPP ){ |
705 | printk(KERN_INFO"%s: Device reset not supported\n",pHba->name); | 715 | printk(KERN_INFO"%s: Device reset not supported\n",pHba->name); |
706 | return FAILED; | 716 | return FAILED; |
@@ -708,7 +718,6 @@ static int adpt_device_reset(struct scsi_cmnd* cmd) | |||
708 | printk(KERN_INFO"%s: Device reset failed\n",pHba->name); | 718 | printk(KERN_INFO"%s: Device reset failed\n",pHba->name); |
709 | return FAILED; | 719 | return FAILED; |
710 | } else { | 720 | } else { |
711 | d->state = old_state; | ||
712 | printk(KERN_INFO"%s: Device reset successful\n",pHba->name); | 721 | printk(KERN_INFO"%s: Device reset successful\n",pHba->name); |
713 | return SUCCESS; | 722 | return SUCCESS; |
714 | } | 723 | } |
@@ -721,6 +730,7 @@ static int adpt_bus_reset(struct scsi_cmnd* cmd) | |||
721 | { | 730 | { |
722 | adpt_hba* pHba; | 731 | adpt_hba* pHba; |
723 | u32 msg[4]; | 732 | u32 msg[4]; |
733 | u32 rcode; | ||
724 | 734 | ||
725 | pHba = (adpt_hba*)cmd->device->host->hostdata[0]; | 735 | pHba = (adpt_hba*)cmd->device->host->hostdata[0]; |
726 | memset(msg, 0, sizeof(msg)); | 736 | memset(msg, 0, sizeof(msg)); |
@@ -729,7 +739,12 @@ static int adpt_bus_reset(struct scsi_cmnd* cmd) | |||
729 | msg[1] = (I2O_HBA_BUS_RESET<<24|HOST_TID<<12|pHba->channel[cmd->device->channel].tid); | 739 | msg[1] = (I2O_HBA_BUS_RESET<<24|HOST_TID<<12|pHba->channel[cmd->device->channel].tid); |
730 | msg[2] = 0; | 740 | msg[2] = 0; |
731 | msg[3] = 0; | 741 | msg[3] = 0; |
732 | if(adpt_i2o_post_wait(pHba, msg,sizeof(msg), FOREVER) ){ | 742 | if (pHba->host) |
743 | spin_lock_irq(pHba->host->host_lock); | ||
744 | rcode = adpt_i2o_post_wait(pHba, msg,sizeof(msg), FOREVER); | ||
745 | if (pHba->host) | ||
746 | spin_unlock_irq(pHba->host->host_lock); | ||
747 | if (rcode != 0) { | ||
733 | printk(KERN_WARNING"%s: Bus reset failed.\n",pHba->name); | 748 | printk(KERN_WARNING"%s: Bus reset failed.\n",pHba->name); |
734 | return FAILED; | 749 | return FAILED; |
735 | } else { | 750 | } else { |
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.h b/drivers/scsi/ibmvscsi/ibmvscsi.h index 8bec0438dc8a..5b0edd1f1921 100644 --- a/drivers/scsi/ibmvscsi/ibmvscsi.h +++ b/drivers/scsi/ibmvscsi/ibmvscsi.h | |||
@@ -100,7 +100,7 @@ int ibmvscsi_init_crq_queue(struct crq_queue *queue, | |||
100 | void ibmvscsi_release_crq_queue(struct crq_queue *queue, | 100 | void ibmvscsi_release_crq_queue(struct crq_queue *queue, |
101 | struct ibmvscsi_host_data *hostdata, | 101 | struct ibmvscsi_host_data *hostdata, |
102 | int max_requests); | 102 | int max_requests); |
103 | void ibmvscsi_reset_crq_queue(struct crq_queue *queue, | 103 | int ibmvscsi_reset_crq_queue(struct crq_queue *queue, |
104 | struct ibmvscsi_host_data *hostdata); | 104 | struct ibmvscsi_host_data *hostdata); |
105 | 105 | ||
106 | void ibmvscsi_handle_crq(struct viosrp_crq *crq, | 106 | void ibmvscsi_handle_crq(struct viosrp_crq *crq, |
diff --git a/drivers/scsi/ibmvscsi/iseries_vscsi.c b/drivers/scsi/ibmvscsi/iseries_vscsi.c index 1045872b0175..ce15d9e39621 100644 --- a/drivers/scsi/ibmvscsi/iseries_vscsi.c +++ b/drivers/scsi/ibmvscsi/iseries_vscsi.c | |||
@@ -117,9 +117,10 @@ void ibmvscsi_release_crq_queue(struct crq_queue *queue, | |||
117 | * | 117 | * |
118 | * no-op for iSeries | 118 | * no-op for iSeries |
119 | */ | 119 | */ |
120 | void ibmvscsi_reset_crq_queue(struct crq_queue *queue, | 120 | int ibmvscsi_reset_crq_queue(struct crq_queue *queue, |
121 | struct ibmvscsi_host_data *hostdata) | 121 | struct ibmvscsi_host_data *hostdata) |
122 | { | 122 | { |
123 | return 0; | ||
123 | } | 124 | } |
124 | 125 | ||
125 | /** | 126 | /** |
diff --git a/drivers/scsi/ibmvscsi/rpa_vscsi.c b/drivers/scsi/ibmvscsi/rpa_vscsi.c index 8bf5652f1060..75db2f5c545e 100644 --- a/drivers/scsi/ibmvscsi/rpa_vscsi.c +++ b/drivers/scsi/ibmvscsi/rpa_vscsi.c | |||
@@ -230,6 +230,11 @@ int ibmvscsi_init_crq_queue(struct crq_queue *queue, | |||
230 | rc = plpar_hcall_norets(H_REG_CRQ, | 230 | rc = plpar_hcall_norets(H_REG_CRQ, |
231 | vdev->unit_address, | 231 | vdev->unit_address, |
232 | queue->msg_token, PAGE_SIZE); | 232 | queue->msg_token, PAGE_SIZE); |
233 | if (rc == H_Resource) | ||
234 | /* maybe kexecing and resource is busy. try a reset */ | ||
235 | rc = ibmvscsi_reset_crq_queue(queue, | ||
236 | hostdata); | ||
237 | |||
233 | if (rc == 2) { | 238 | if (rc == 2) { |
234 | /* Adapter is good, but other end is not ready */ | 239 | /* Adapter is good, but other end is not ready */ |
235 | printk(KERN_WARNING "ibmvscsi: Partner adapter not ready\n"); | 240 | printk(KERN_WARNING "ibmvscsi: Partner adapter not ready\n"); |
@@ -281,7 +286,7 @@ int ibmvscsi_init_crq_queue(struct crq_queue *queue, | |||
281 | * @hostdata: ibmvscsi_host_data of host | 286 | * @hostdata: ibmvscsi_host_data of host |
282 | * | 287 | * |
283 | */ | 288 | */ |
284 | void ibmvscsi_reset_crq_queue(struct crq_queue *queue, | 289 | int ibmvscsi_reset_crq_queue(struct crq_queue *queue, |
285 | struct ibmvscsi_host_data *hostdata) | 290 | struct ibmvscsi_host_data *hostdata) |
286 | { | 291 | { |
287 | int rc; | 292 | int rc; |
@@ -309,4 +314,5 @@ void ibmvscsi_reset_crq_queue(struct crq_queue *queue, | |||
309 | printk(KERN_WARNING | 314 | printk(KERN_WARNING |
310 | "ibmvscsi: couldn't register crq--rc 0x%x\n", rc); | 315 | "ibmvscsi: couldn't register crq--rc 0x%x\n", rc); |
311 | } | 316 | } |
317 | return rc; | ||
312 | } | 318 | } |
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c index 4fea3e4edaa7..3d8009f55342 100644 --- a/drivers/scsi/iscsi_tcp.c +++ b/drivers/scsi/iscsi_tcp.c | |||
@@ -3368,7 +3368,7 @@ iscsi_conn_set_param(iscsi_connh_t connh, enum iscsi_param param, | |||
3368 | switch(param) { | 3368 | switch(param) { |
3369 | case ISCSI_PARAM_MAX_RECV_DLENGTH: { | 3369 | case ISCSI_PARAM_MAX_RECV_DLENGTH: { |
3370 | char *saveptr = conn->data; | 3370 | char *saveptr = conn->data; |
3371 | int flags = GFP_KERNEL; | 3371 | gfp_t flags = GFP_KERNEL; |
3372 | 3372 | ||
3373 | if (conn->data_size >= value) { | 3373 | if (conn->data_size >= value) { |
3374 | conn->max_recv_dlength = value; | 3374 | conn->max_recv_dlength = value; |
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 665ae79e1fd6..d0a0fdbd0fc4 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c | |||
@@ -2443,7 +2443,7 @@ static void ata_sg_clean(struct ata_queued_cmd *qc) | |||
2443 | struct scatterlist *psg = &qc->pad_sgent; | 2443 | struct scatterlist *psg = &qc->pad_sgent; |
2444 | void *addr = kmap_atomic(psg->page, KM_IRQ0); | 2444 | void *addr = kmap_atomic(psg->page, KM_IRQ0); |
2445 | memcpy(addr + psg->offset, pad_buf, qc->pad_len); | 2445 | memcpy(addr + psg->offset, pad_buf, qc->pad_len); |
2446 | kunmap_atomic(psg->page, KM_IRQ0); | 2446 | kunmap_atomic(addr, KM_IRQ0); |
2447 | } | 2447 | } |
2448 | } else { | 2448 | } else { |
2449 | if (sg_dma_len(&sg[0]) > 0) | 2449 | if (sg_dma_len(&sg[0]) > 0) |
@@ -2717,7 +2717,7 @@ static int ata_sg_setup(struct ata_queued_cmd *qc) | |||
2717 | if (qc->tf.flags & ATA_TFLAG_WRITE) { | 2717 | if (qc->tf.flags & ATA_TFLAG_WRITE) { |
2718 | void *addr = kmap_atomic(psg->page, KM_IRQ0); | 2718 | void *addr = kmap_atomic(psg->page, KM_IRQ0); |
2719 | memcpy(pad_buf, addr + psg->offset, qc->pad_len); | 2719 | memcpy(pad_buf, addr + psg->offset, qc->pad_len); |
2720 | kunmap_atomic(psg->page, KM_IRQ0); | 2720 | kunmap_atomic(addr, KM_IRQ0); |
2721 | } | 2721 | } |
2722 | 2722 | ||
2723 | sg_dma_address(psg) = ap->pad_dma + (qc->tag * ATA_DMA_PAD_SZ); | 2723 | sg_dma_address(psg) = ap->pad_dma + (qc->tag * ATA_DMA_PAD_SZ); |
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index 379e87089764..72ddba98f8fb 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
@@ -2173,9 +2173,12 @@ ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev) | |||
2173 | if (unlikely(!ata_dev_present(dev))) | 2173 | if (unlikely(!ata_dev_present(dev))) |
2174 | return NULL; | 2174 | return NULL; |
2175 | 2175 | ||
2176 | if (!atapi_enabled) { | 2176 | if (!atapi_enabled || (ap->flags & ATA_FLAG_NO_ATAPI)) { |
2177 | if (unlikely(dev->class == ATA_DEV_ATAPI)) | 2177 | if (unlikely(dev->class == ATA_DEV_ATAPI)) { |
2178 | printk(KERN_WARNING "ata%u(%u): WARNING: ATAPI is %s, device ignored.\n", | ||
2179 | ap->id, dev->devno, atapi_enabled ? "not supported with this driver" : "disabled"); | ||
2178 | return NULL; | 2180 | return NULL; |
2181 | } | ||
2179 | } | 2182 | } |
2180 | 2183 | ||
2181 | return dev; | 2184 | return dev; |
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index f9792528e33f..578143e93a6f 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
@@ -664,7 +664,7 @@ mega_build_cmd(adapter_t *adapter, Scsi_Cmnd *cmd, int *busy) | |||
664 | sg->offset; | 664 | sg->offset; |
665 | } else | 665 | } else |
666 | buf = cmd->request_buffer; | 666 | buf = cmd->request_buffer; |
667 | memset(cmd->request_buffer, 0, cmd->cmnd[4]); | 667 | memset(buf, 0, cmd->cmnd[4]); |
668 | if (cmd->use_sg) { | 668 | if (cmd->use_sg) { |
669 | struct scatterlist *sg; | 669 | struct scatterlist *sg; |
670 | 670 | ||
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 7096945ea234..7b3efd531297 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -2476,17 +2476,9 @@ typedef struct scsi_qla_host { | |||
2476 | */ | 2476 | */ |
2477 | #define LOOP_TRANSITION(ha) \ | 2477 | #define LOOP_TRANSITION(ha) \ |
2478 | (test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || \ | 2478 | (test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || \ |
2479 | test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) | 2479 | test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || \ |
2480 | |||
2481 | #define LOOP_NOT_READY(ha) \ | ||
2482 | ((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || \ | ||
2483 | test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) || \ | ||
2484 | test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || \ | ||
2485 | test_bit(LOOP_RESYNC_ACTIVE, &ha->dpc_flags)) || \ | ||
2486 | atomic_read(&ha->loop_state) == LOOP_DOWN) | 2480 | atomic_read(&ha->loop_state) == LOOP_DOWN) |
2487 | 2481 | ||
2488 | #define LOOP_RDY(ha) (!LOOP_NOT_READY(ha)) | ||
2489 | |||
2490 | #define TGT_Q(ha, t) (ha->otgt[t]) | 2482 | #define TGT_Q(ha, t) (ha->otgt[t]) |
2491 | 2483 | ||
2492 | #define to_qla_host(x) ((scsi_qla_host_t *) (x)->hostdata) | 2484 | #define to_qla_host(x) ((scsi_qla_host_t *) (x)->hostdata) |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 2d720121a0d3..c46d2469b85f 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -1259,7 +1259,7 @@ qla2x00_configure_hba(scsi_qla_host_t *ha) | |||
1259 | rval = qla2x00_get_adapter_id(ha, | 1259 | rval = qla2x00_get_adapter_id(ha, |
1260 | &loop_id, &al_pa, &area, &domain, &topo); | 1260 | &loop_id, &al_pa, &area, &domain, &topo); |
1261 | if (rval != QLA_SUCCESS) { | 1261 | if (rval != QLA_SUCCESS) { |
1262 | if (LOOP_NOT_READY(ha) || atomic_read(&ha->loop_down_timer) || | 1262 | if (LOOP_TRANSITION(ha) || atomic_read(&ha->loop_down_timer) || |
1263 | (rval == QLA_COMMAND_ERROR && loop_id == 0x7)) { | 1263 | (rval == QLA_COMMAND_ERROR && loop_id == 0x7)) { |
1264 | DEBUG2(printk("%s(%ld) Loop is in a transition state\n", | 1264 | DEBUG2(printk("%s(%ld) Loop is in a transition state\n", |
1265 | __func__, ha->host_no)); | 1265 | __func__, ha->host_no)); |
@@ -1796,7 +1796,7 @@ qla2x00_configure_loop(scsi_qla_host_t *ha) | |||
1796 | } | 1796 | } |
1797 | 1797 | ||
1798 | if (rval == QLA_SUCCESS && test_bit(RSCN_UPDATE, &flags)) { | 1798 | if (rval == QLA_SUCCESS && test_bit(RSCN_UPDATE, &flags)) { |
1799 | if (LOOP_NOT_READY(ha)) { | 1799 | if (LOOP_TRANSITION(ha)) { |
1800 | rval = QLA_FUNCTION_FAILED; | 1800 | rval = QLA_FUNCTION_FAILED; |
1801 | } else { | 1801 | } else { |
1802 | rval = qla2x00_configure_fabric(ha); | 1802 | rval = qla2x00_configure_fabric(ha); |
@@ -2369,7 +2369,7 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *ha, struct list_head *new_fcports) | |||
2369 | if (qla2x00_is_reserved_id(ha, loop_id)) | 2369 | if (qla2x00_is_reserved_id(ha, loop_id)) |
2370 | continue; | 2370 | continue; |
2371 | 2371 | ||
2372 | if (atomic_read(&ha->loop_down_timer) || LOOP_NOT_READY(ha)) | 2372 | if (atomic_read(&ha->loop_down_timer) || LOOP_TRANSITION(ha)) |
2373 | break; | 2373 | break; |
2374 | 2374 | ||
2375 | if (swl != NULL) { | 2375 | if (swl != NULL) { |
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 09afc0f06bd4..5181d966fecb 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -909,6 +909,21 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
909 | resid = resid_len; | 909 | resid = resid_len; |
910 | cp->resid = resid; | 910 | cp->resid = resid; |
911 | CMD_RESID_LEN(cp) = resid; | 911 | CMD_RESID_LEN(cp) = resid; |
912 | |||
913 | if (!lscsi_status && | ||
914 | ((unsigned)(cp->request_bufflen - resid) < | ||
915 | cp->underflow)) { | ||
916 | qla_printk(KERN_INFO, ha, | ||
917 | "scsi(%ld:%d:%d:%d): Mid-layer underflow " | ||
918 | "detected (%x of %x bytes)...returning " | ||
919 | "error status.\n", ha->host_no, | ||
920 | cp->device->channel, cp->device->id, | ||
921 | cp->device->lun, resid, | ||
922 | cp->request_bufflen); | ||
923 | |||
924 | cp->result = DID_ERROR << 16; | ||
925 | break; | ||
926 | } | ||
912 | } | 927 | } |
913 | cp->result = DID_OK << 16 | lscsi_status; | 928 | cp->result = DID_OK << 16 | lscsi_status; |
914 | 929 | ||
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index ab7432a5778e..9321cdf45680 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c | |||
@@ -86,7 +86,8 @@ enum { | |||
86 | MV_FLAG_DUAL_HC = (1 << 30), /* two SATA Host Controllers */ | 86 | MV_FLAG_DUAL_HC = (1 << 30), /* two SATA Host Controllers */ |
87 | MV_FLAG_IRQ_COALESCE = (1 << 29), /* IRQ coalescing capability */ | 87 | MV_FLAG_IRQ_COALESCE = (1 << 29), /* IRQ coalescing capability */ |
88 | MV_COMMON_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 88 | MV_COMMON_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
89 | ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO), | 89 | ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO | |
90 | ATA_FLAG_NO_ATAPI), | ||
90 | MV_6XXX_FLAGS = MV_FLAG_IRQ_COALESCE, | 91 | MV_6XXX_FLAGS = MV_FLAG_IRQ_COALESCE, |
91 | 92 | ||
92 | CRQB_FLAG_READ = (1 << 0), | 93 | CRQB_FLAG_READ = (1 << 0), |
diff --git a/drivers/scsi/sata_promise.c b/drivers/scsi/sata_promise.c index 8a8e3e3ef0ed..2691625f9bce 100644 --- a/drivers/scsi/sata_promise.c +++ b/drivers/scsi/sata_promise.c | |||
@@ -70,6 +70,9 @@ enum { | |||
70 | PDC_HAS_PATA = (1 << 1), /* PDC20375 has PATA */ | 70 | PDC_HAS_PATA = (1 << 1), /* PDC20375 has PATA */ |
71 | 71 | ||
72 | PDC_RESET = (1 << 11), /* HDMA reset */ | 72 | PDC_RESET = (1 << 11), /* HDMA reset */ |
73 | |||
74 | PDC_COMMON_FLAGS = ATA_FLAG_NO_LEGACY | ATA_FLAG_SRST | | ||
75 | ATA_FLAG_MMIO | ATA_FLAG_NO_ATAPI, | ||
73 | }; | 76 | }; |
74 | 77 | ||
75 | 78 | ||
@@ -162,8 +165,7 @@ static struct ata_port_info pdc_port_info[] = { | |||
162 | /* board_2037x */ | 165 | /* board_2037x */ |
163 | { | 166 | { |
164 | .sht = &pdc_ata_sht, | 167 | .sht = &pdc_ata_sht, |
165 | .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 168 | .host_flags = PDC_COMMON_FLAGS | ATA_FLAG_SATA, |
166 | ATA_FLAG_SRST | ATA_FLAG_MMIO, | ||
167 | .pio_mask = 0x1f, /* pio0-4 */ | 169 | .pio_mask = 0x1f, /* pio0-4 */ |
168 | .mwdma_mask = 0x07, /* mwdma0-2 */ | 170 | .mwdma_mask = 0x07, /* mwdma0-2 */ |
169 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 171 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
@@ -173,8 +175,7 @@ static struct ata_port_info pdc_port_info[] = { | |||
173 | /* board_20319 */ | 175 | /* board_20319 */ |
174 | { | 176 | { |
175 | .sht = &pdc_ata_sht, | 177 | .sht = &pdc_ata_sht, |
176 | .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 178 | .host_flags = PDC_COMMON_FLAGS | ATA_FLAG_SATA, |
177 | ATA_FLAG_SRST | ATA_FLAG_MMIO, | ||
178 | .pio_mask = 0x1f, /* pio0-4 */ | 179 | .pio_mask = 0x1f, /* pio0-4 */ |
179 | .mwdma_mask = 0x07, /* mwdma0-2 */ | 180 | .mwdma_mask = 0x07, /* mwdma0-2 */ |
180 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 181 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
@@ -184,8 +185,7 @@ static struct ata_port_info pdc_port_info[] = { | |||
184 | /* board_20619 */ | 185 | /* board_20619 */ |
185 | { | 186 | { |
186 | .sht = &pdc_ata_sht, | 187 | .sht = &pdc_ata_sht, |
187 | .host_flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_SRST | | 188 | .host_flags = PDC_COMMON_FLAGS | ATA_FLAG_SLAVE_POSS, |
188 | ATA_FLAG_MMIO | ATA_FLAG_SLAVE_POSS, | ||
189 | .pio_mask = 0x1f, /* pio0-4 */ | 189 | .pio_mask = 0x1f, /* pio0-4 */ |
190 | .mwdma_mask = 0x07, /* mwdma0-2 */ | 190 | .mwdma_mask = 0x07, /* mwdma0-2 */ |
191 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 191 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
diff --git a/drivers/scsi/sata_sx4.c b/drivers/scsi/sata_sx4.c index dcc3ad9a9d6e..ac7b0d819ebc 100644 --- a/drivers/scsi/sata_sx4.c +++ b/drivers/scsi/sata_sx4.c | |||
@@ -220,7 +220,8 @@ static struct ata_port_info pdc_port_info[] = { | |||
220 | { | 220 | { |
221 | .sht = &pdc_sata_sht, | 221 | .sht = &pdc_sata_sht, |
222 | .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 222 | .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
223 | ATA_FLAG_SRST | ATA_FLAG_MMIO, | 223 | ATA_FLAG_SRST | ATA_FLAG_MMIO | |
224 | ATA_FLAG_NO_ATAPI, | ||
224 | .pio_mask = 0x1f, /* pio0-4 */ | 225 | .pio_mask = 0x1f, /* pio0-4 */ |
225 | .mwdma_mask = 0x07, /* mwdma0-2 */ | 226 | .mwdma_mask = 0x07, /* mwdma0-2 */ |
226 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 227 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 18c5d2523014..c0ae9e965f6f 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
@@ -422,10 +422,15 @@ static int scsi_eh_completed_normally(struct scsi_cmnd *scmd) | |||
422 | **/ | 422 | **/ |
423 | static void scsi_eh_done(struct scsi_cmnd *scmd) | 423 | static void scsi_eh_done(struct scsi_cmnd *scmd) |
424 | { | 424 | { |
425 | struct completion *eh_action; | ||
426 | |||
425 | SCSI_LOG_ERROR_RECOVERY(3, | 427 | SCSI_LOG_ERROR_RECOVERY(3, |
426 | printk("%s scmd: %p result: %x\n", | 428 | printk("%s scmd: %p result: %x\n", |
427 | __FUNCTION__, scmd, scmd->result)); | 429 | __FUNCTION__, scmd, scmd->result)); |
428 | complete(scmd->device->host->eh_action); | 430 | |
431 | eh_action = scmd->device->host->eh_action; | ||
432 | if (eh_action) | ||
433 | complete(eh_action); | ||
429 | } | 434 | } |
430 | 435 | ||
431 | /** | 436 | /** |
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 4afef5cdcb17..dc249cb970ea 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -542,10 +542,17 @@ static void scsi_requeue_command(struct request_queue *q, struct scsi_cmnd *cmd) | |||
542 | 542 | ||
543 | void scsi_next_command(struct scsi_cmnd *cmd) | 543 | void scsi_next_command(struct scsi_cmnd *cmd) |
544 | { | 544 | { |
545 | struct request_queue *q = cmd->device->request_queue; | 545 | struct scsi_device *sdev = cmd->device; |
546 | struct request_queue *q = sdev->request_queue; | ||
547 | |||
548 | /* need to hold a reference on the device before we let go of the cmd */ | ||
549 | get_device(&sdev->sdev_gendev); | ||
546 | 550 | ||
547 | scsi_put_command(cmd); | 551 | scsi_put_command(cmd); |
548 | scsi_run_queue(q); | 552 | scsi_run_queue(q); |
553 | |||
554 | /* ok to remove device now */ | ||
555 | put_device(&sdev->sdev_gendev); | ||
549 | } | 556 | } |
550 | 557 | ||
551 | void scsi_run_host_queues(struct Scsi_Host *shost) | 558 | void scsi_run_host_queues(struct Scsi_Host *shost) |
@@ -1078,6 +1085,26 @@ static void scsi_generic_done(struct scsi_cmnd *cmd) | |||
1078 | scsi_io_completion(cmd, cmd->result == 0 ? cmd->bufflen : 0, 0); | 1085 | scsi_io_completion(cmd, cmd->result == 0 ? cmd->bufflen : 0, 0); |
1079 | } | 1086 | } |
1080 | 1087 | ||
1088 | void scsi_setup_blk_pc_cmnd(struct scsi_cmnd *cmd, int retries) | ||
1089 | { | ||
1090 | struct request *req = cmd->request; | ||
1091 | |||
1092 | BUG_ON(sizeof(req->cmd) > sizeof(cmd->cmnd)); | ||
1093 | memcpy(cmd->cmnd, req->cmd, sizeof(cmd->cmnd)); | ||
1094 | cmd->cmd_len = req->cmd_len; | ||
1095 | if (!req->data_len) | ||
1096 | cmd->sc_data_direction = DMA_NONE; | ||
1097 | else if (rq_data_dir(req) == WRITE) | ||
1098 | cmd->sc_data_direction = DMA_TO_DEVICE; | ||
1099 | else | ||
1100 | cmd->sc_data_direction = DMA_FROM_DEVICE; | ||
1101 | |||
1102 | cmd->transfersize = req->data_len; | ||
1103 | cmd->allowed = retries; | ||
1104 | cmd->timeout_per_command = req->timeout; | ||
1105 | } | ||
1106 | EXPORT_SYMBOL_GPL(scsi_setup_blk_pc_cmnd); | ||
1107 | |||
1081 | static int scsi_prep_fn(struct request_queue *q, struct request *req) | 1108 | static int scsi_prep_fn(struct request_queue *q, struct request *req) |
1082 | { | 1109 | { |
1083 | struct scsi_device *sdev = q->queuedata; | 1110 | struct scsi_device *sdev = q->queuedata; |
@@ -1213,18 +1240,7 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req) | |||
1213 | goto kill; | 1240 | goto kill; |
1214 | } | 1241 | } |
1215 | } else { | 1242 | } else { |
1216 | memcpy(cmd->cmnd, req->cmd, sizeof(cmd->cmnd)); | 1243 | scsi_setup_blk_pc_cmnd(cmd, 3); |
1217 | cmd->cmd_len = req->cmd_len; | ||
1218 | if (rq_data_dir(req) == WRITE) | ||
1219 | cmd->sc_data_direction = DMA_TO_DEVICE; | ||
1220 | else if (req->data_len) | ||
1221 | cmd->sc_data_direction = DMA_FROM_DEVICE; | ||
1222 | else | ||
1223 | cmd->sc_data_direction = DMA_NONE; | ||
1224 | |||
1225 | cmd->transfersize = req->data_len; | ||
1226 | cmd->allowed = 3; | ||
1227 | cmd->timeout_per_command = req->timeout; | ||
1228 | cmd->done = scsi_generic_done; | 1244 | cmd->done = scsi_generic_done; |
1229 | } | 1245 | } |
1230 | } | 1246 | } |
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 374853df9cca..94e5167f260d 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c | |||
@@ -266,8 +266,6 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget, | |||
266 | /* | 266 | /* |
267 | * if LLDD reports slave not present, don't clutter | 267 | * if LLDD reports slave not present, don't clutter |
268 | * console with alloc failure messages | 268 | * console with alloc failure messages |
269 | |||
270 | |||
271 | */ | 269 | */ |
272 | if (ret == -ENXIO) | 270 | if (ret == -ENXIO) |
273 | display_failure_msg = 0; | 271 | display_failure_msg = 0; |
@@ -279,7 +277,6 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget, | |||
279 | 277 | ||
280 | out_device_destroy: | 278 | out_device_destroy: |
281 | transport_destroy_device(&sdev->sdev_gendev); | 279 | transport_destroy_device(&sdev->sdev_gendev); |
282 | scsi_free_queue(sdev->request_queue); | ||
283 | put_device(&sdev->sdev_gendev); | 280 | put_device(&sdev->sdev_gendev); |
284 | out: | 281 | out: |
285 | if (display_failure_msg) | 282 | if (display_failure_msg) |
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index 49fd18c1a9c6..e08462d50c97 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c | |||
@@ -249,7 +249,7 @@ static inline struct list_head *skb_to_lh(struct sk_buff *skb) | |||
249 | } | 249 | } |
250 | 250 | ||
251 | static void* | 251 | static void* |
252 | mempool_zone_alloc_skb(unsigned int gfp_mask, void *pool_data) | 252 | mempool_zone_alloc_skb(gfp_t gfp_mask, void *pool_data) |
253 | { | 253 | { |
254 | struct mempool_zone *zone = pool_data; | 254 | struct mempool_zone *zone = pool_data; |
255 | 255 | ||
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 8613a1317712..03fcbab30033 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -245,24 +245,10 @@ static int sd_init_command(struct scsi_cmnd * SCpnt) | |||
245 | * SG_IO from block layer already setup, just copy cdb basically | 245 | * SG_IO from block layer already setup, just copy cdb basically |
246 | */ | 246 | */ |
247 | if (blk_pc_request(rq)) { | 247 | if (blk_pc_request(rq)) { |
248 | if (sizeof(rq->cmd) > sizeof(SCpnt->cmnd)) | 248 | scsi_setup_blk_pc_cmnd(SCpnt, SD_PASSTHROUGH_RETRIES); |
249 | return 0; | ||
250 | |||
251 | memcpy(SCpnt->cmnd, rq->cmd, sizeof(SCpnt->cmnd)); | ||
252 | SCpnt->cmd_len = rq->cmd_len; | ||
253 | if (rq_data_dir(rq) == WRITE) | ||
254 | SCpnt->sc_data_direction = DMA_TO_DEVICE; | ||
255 | else if (rq->data_len) | ||
256 | SCpnt->sc_data_direction = DMA_FROM_DEVICE; | ||
257 | else | ||
258 | SCpnt->sc_data_direction = DMA_NONE; | ||
259 | |||
260 | this_count = rq->data_len; | ||
261 | if (rq->timeout) | 249 | if (rq->timeout) |
262 | timeout = rq->timeout; | 250 | timeout = rq->timeout; |
263 | 251 | ||
264 | SCpnt->transfersize = rq->data_len; | ||
265 | SCpnt->allowed = SD_PASSTHROUGH_RETRIES; | ||
266 | goto queue; | 252 | goto queue; |
267 | } | 253 | } |
268 | 254 | ||
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index d68cea753bb2..fb4012b5c188 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c | |||
@@ -320,25 +320,11 @@ static int sr_init_command(struct scsi_cmnd * SCpnt) | |||
320 | * these are already setup, just copy cdb basically | 320 | * these are already setup, just copy cdb basically |
321 | */ | 321 | */ |
322 | if (SCpnt->request->flags & REQ_BLOCK_PC) { | 322 | if (SCpnt->request->flags & REQ_BLOCK_PC) { |
323 | struct request *rq = SCpnt->request; | 323 | scsi_setup_blk_pc_cmnd(SCpnt, MAX_RETRIES); |
324 | 324 | ||
325 | if (sizeof(rq->cmd) > sizeof(SCpnt->cmnd)) | 325 | if (SCpnt->timeout_per_command) |
326 | return 0; | 326 | timeout = SCpnt->timeout_per_command; |
327 | |||
328 | memcpy(SCpnt->cmnd, rq->cmd, sizeof(SCpnt->cmnd)); | ||
329 | SCpnt->cmd_len = rq->cmd_len; | ||
330 | if (!rq->data_len) | ||
331 | SCpnt->sc_data_direction = DMA_NONE; | ||
332 | else if (rq_data_dir(rq) == WRITE) | ||
333 | SCpnt->sc_data_direction = DMA_TO_DEVICE; | ||
334 | else | ||
335 | SCpnt->sc_data_direction = DMA_FROM_DEVICE; | ||
336 | |||
337 | this_count = rq->data_len; | ||
338 | if (rq->timeout) | ||
339 | timeout = rq->timeout; | ||
340 | 327 | ||
341 | SCpnt->transfersize = rq->data_len; | ||
342 | goto queue; | 328 | goto queue; |
343 | } | 329 | } |
344 | 330 | ||
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 7ac6ea141fff..dd592f6a2529 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c | |||
@@ -4194,27 +4194,10 @@ static void st_intr(struct scsi_cmnd *SCpnt) | |||
4194 | */ | 4194 | */ |
4195 | static int st_init_command(struct scsi_cmnd *SCpnt) | 4195 | static int st_init_command(struct scsi_cmnd *SCpnt) |
4196 | { | 4196 | { |
4197 | struct request *rq; | ||
4198 | |||
4199 | if (!(SCpnt->request->flags & REQ_BLOCK_PC)) | 4197 | if (!(SCpnt->request->flags & REQ_BLOCK_PC)) |
4200 | return 0; | 4198 | return 0; |
4201 | 4199 | ||
4202 | rq = SCpnt->request; | 4200 | scsi_setup_blk_pc_cmnd(SCpnt, 0); |
4203 | if (sizeof(rq->cmd) > sizeof(SCpnt->cmnd)) | ||
4204 | return 0; | ||
4205 | |||
4206 | memcpy(SCpnt->cmnd, rq->cmd, sizeof(SCpnt->cmnd)); | ||
4207 | SCpnt->cmd_len = rq->cmd_len; | ||
4208 | |||
4209 | if (rq_data_dir(rq) == WRITE) | ||
4210 | SCpnt->sc_data_direction = DMA_TO_DEVICE; | ||
4211 | else if (rq->data_len) | ||
4212 | SCpnt->sc_data_direction = DMA_FROM_DEVICE; | ||
4213 | else | ||
4214 | SCpnt->sc_data_direction = DMA_NONE; | ||
4215 | |||
4216 | SCpnt->timeout_per_command = rq->timeout; | ||
4217 | SCpnt->transfersize = rq->data_len; | ||
4218 | SCpnt->done = st_intr; | 4201 | SCpnt->done = st_intr; |
4219 | return 1; | 4202 | return 1; |
4220 | } | 4203 | } |
diff --git a/drivers/scsi/sym53c8xx_2/sym_hipd.c b/drivers/scsi/sym53c8xx_2/sym_hipd.c index a7420cad4547..1564ca203a3e 100644 --- a/drivers/scsi/sym53c8xx_2/sym_hipd.c +++ b/drivers/scsi/sym53c8xx_2/sym_hipd.c | |||
@@ -1405,7 +1405,6 @@ static void sym_check_goals(struct sym_hcb *np, struct scsi_target *starget, | |||
1405 | goal->iu = 0; | 1405 | goal->iu = 0; |
1406 | goal->dt = 0; | 1406 | goal->dt = 0; |
1407 | goal->qas = 0; | 1407 | goal->qas = 0; |
1408 | goal->period = 0; | ||
1409 | goal->offset = 0; | 1408 | goal->offset = 0; |
1410 | return; | 1409 | return; |
1411 | } | 1410 | } |
@@ -1465,7 +1464,8 @@ static int sym_prepare_nego(struct sym_hcb *np, struct sym_ccb *cp, u_char *msgp | |||
1465 | * Many devices implement PPR in a buggy way, so only use it if we | 1464 | * Many devices implement PPR in a buggy way, so only use it if we |
1466 | * really want to. | 1465 | * really want to. |
1467 | */ | 1466 | */ |
1468 | if (goal->iu || goal->dt || goal->qas || (goal->period < 0xa)) { | 1467 | if (goal->offset && |
1468 | (goal->iu || goal->dt || goal->qas || (goal->period < 0xa))) { | ||
1469 | nego = NS_PPR; | 1469 | nego = NS_PPR; |
1470 | } else if (spi_width(starget) != goal->width) { | 1470 | } else if (spi_width(starget) != goal->width) { |
1471 | nego = NS_WIDE; | 1471 | nego = NS_WIDE; |
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c index 8d92adfbb8bd..8adca0ce267f 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/serial/8250_pci.c | |||
@@ -516,7 +516,7 @@ pci_timedia_setup(struct serial_private *priv, struct pciserial_board *board, | |||
516 | break; | 516 | break; |
517 | case 3: | 517 | case 3: |
518 | offset = board->uart_offset; | 518 | offset = board->uart_offset; |
519 | bar = 1; | 519 | /* FALLTHROUGH */ |
520 | case 4: /* BAR 2 */ | 520 | case 4: /* BAR 2 */ |
521 | case 5: /* BAR 3 */ | 521 | case 5: /* BAR 3 */ |
522 | case 6: /* BAR 4 */ | 522 | case 6: /* BAR 4 */ |
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c index ed550132db0b..79efaf7d86a3 100644 --- a/drivers/usb/host/uhci-hcd.c +++ b/drivers/usb/host/uhci-hcd.c | |||
@@ -717,6 +717,7 @@ static int uhci_suspend(struct usb_hcd *hcd, pm_message_t message) | |||
717 | * at the source, so we must turn off PIRQ. | 717 | * at the source, so we must turn off PIRQ. |
718 | */ | 718 | */ |
719 | pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, 0); | 719 | pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, 0); |
720 | mb(); | ||
720 | clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); | 721 | clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); |
721 | uhci->hc_inaccessible = 1; | 722 | uhci->hc_inaccessible = 1; |
722 | hcd->poll_rh = 0; | 723 | hcd->poll_rh = 0; |
@@ -738,6 +739,7 @@ static int uhci_resume(struct usb_hcd *hcd) | |||
738 | * really don't want to keep a stale HCD_FLAG_HW_ACCESSIBLE=0 | 739 | * really don't want to keep a stale HCD_FLAG_HW_ACCESSIBLE=0 |
739 | */ | 740 | */ |
740 | set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); | 741 | set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); |
742 | mb(); | ||
741 | 743 | ||
742 | if (uhci->rh_state == UHCI_RH_RESET) /* Dead */ | 744 | if (uhci->rh_state == UHCI_RH_RESET) /* Dead */ |
743 | return 0; | 745 | return 0; |
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c index 45f3130fadea..a3e44ef1df43 100644 --- a/drivers/usb/input/hid-core.c +++ b/drivers/usb/input/hid-core.c | |||
@@ -893,8 +893,10 @@ static int hid_input_report(int type, struct urb *urb, int interrupt, struct pt_ | |||
893 | 893 | ||
894 | size = ((report->size - 1) >> 3) + 1; | 894 | size = ((report->size - 1) >> 3) + 1; |
895 | 895 | ||
896 | if (len < size) | 896 | if (len < size) { |
897 | dbg("report %d is too short, (%d < %d)", report->id, len, size); | 897 | dbg("report %d is too short, (%d < %d)", report->id, len, size); |
898 | memset(data + len, 0, size - len); | ||
899 | } | ||
898 | 900 | ||
899 | if (hid->claimed & HID_CLAIMED_HIDDEV) | 901 | if (hid->claimed & HID_CLAIMED_HIDDEV) |
900 | hiddev_report_event(hid, report); | 902 | hiddev_report_event(hid, report); |
diff --git a/drivers/usb/input/hid-input.c b/drivers/usb/input/hid-input.c index 9ff25eb520a6..1220a5004a5c 100644 --- a/drivers/usb/input/hid-input.c +++ b/drivers/usb/input/hid-input.c | |||
@@ -137,6 +137,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel | |||
137 | switch (usage->hid & 0xffff) { | 137 | switch (usage->hid & 0xffff) { |
138 | case 0xba: map_abs(ABS_RUDDER); break; | 138 | case 0xba: map_abs(ABS_RUDDER); break; |
139 | case 0xbb: map_abs(ABS_THROTTLE); break; | 139 | case 0xbb: map_abs(ABS_THROTTLE); break; |
140 | default: goto ignore; | ||
140 | } | 141 | } |
141 | break; | 142 | break; |
142 | 143 | ||
diff --git a/drivers/usb/misc/auerswald.c b/drivers/usb/misc/auerswald.c index 2a28ceeaa66a..b293db3c28c3 100644 --- a/drivers/usb/misc/auerswald.c +++ b/drivers/usb/misc/auerswald.c | |||
@@ -1696,7 +1696,7 @@ static ssize_t auerchar_write (struct file *file, const char __user *buf, size_t | |||
1696 | int ret; | 1696 | int ret; |
1697 | wait_queue_t wait; | 1697 | wait_queue_t wait; |
1698 | 1698 | ||
1699 | dbg ("auerchar_write %d bytes", len); | 1699 | dbg ("auerchar_write %zd bytes", len); |
1700 | 1700 | ||
1701 | /* Error checking */ | 1701 | /* Error checking */ |
1702 | if (!ccp) | 1702 | if (!ccp) |
diff --git a/drivers/video/arcfb.c b/drivers/video/arcfb.c index 080db812ca48..2784f0a9d693 100644 --- a/drivers/video/arcfb.c +++ b/drivers/video/arcfb.c | |||
@@ -441,7 +441,7 @@ static int arcfb_ioctl(struct inode *inode, struct file *file, | |||
441 | * the fb. it's inefficient for them to do anything less than 64*8 | 441 | * the fb. it's inefficient for them to do anything less than 64*8 |
442 | * writes since we update the lcd in each write() anyway. | 442 | * writes since we update the lcd in each write() anyway. |
443 | */ | 443 | */ |
444 | static ssize_t arcfb_write(struct file *file, const char *buf, size_t count, | 444 | static ssize_t arcfb_write(struct file *file, const char __user *buf, size_t count, |
445 | loff_t *ppos) | 445 | loff_t *ppos) |
446 | { | 446 | { |
447 | /* modded from epson 1355 */ | 447 | /* modded from epson 1355 */ |
diff --git a/drivers/video/bw2.c b/drivers/video/bw2.c index d3728f60961e..9248fe1fbb1a 100644 --- a/drivers/video/bw2.c +++ b/drivers/video/bw2.c | |||
@@ -121,7 +121,6 @@ struct bw2_par { | |||
121 | unsigned long fbsize; | 121 | unsigned long fbsize; |
122 | 122 | ||
123 | struct sbus_dev *sdev; | 123 | struct sbus_dev *sdev; |
124 | struct list_head list; | ||
125 | }; | 124 | }; |
126 | 125 | ||
127 | /** | 126 | /** |
diff --git a/drivers/video/cfbcopyarea.c b/drivers/video/cfbcopyarea.c index cdc71572cf35..74415325b016 100644 --- a/drivers/video/cfbcopyarea.c +++ b/drivers/video/cfbcopyarea.c | |||
@@ -64,8 +64,8 @@ bitcpy(unsigned long __iomem *dst, int dst_idx, const unsigned long __iomem *src | |||
64 | int const shift = dst_idx-src_idx; | 64 | int const shift = dst_idx-src_idx; |
65 | int left, right; | 65 | int left, right; |
66 | 66 | ||
67 | first = ~0UL >> dst_idx; | 67 | first = FB_SHIFT_HIGH(~0UL, dst_idx); |
68 | last = ~(~0UL >> ((dst_idx+n) % bits)); | 68 | last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits)); |
69 | 69 | ||
70 | if (!shift) { | 70 | if (!shift) { |
71 | // Same alignment for source and dest | 71 | // Same alignment for source and dest |
@@ -216,8 +216,8 @@ bitcpy_rev(unsigned long __iomem *dst, int dst_idx, const unsigned long __iomem | |||
216 | 216 | ||
217 | shift = dst_idx-src_idx; | 217 | shift = dst_idx-src_idx; |
218 | 218 | ||
219 | first = ~0UL << (bits - 1 - dst_idx); | 219 | first = FB_SHIFT_LOW(~0UL, bits - 1 - dst_idx); |
220 | last = ~(~0UL << (bits - 1 - ((dst_idx-n) % bits))); | 220 | last = ~(FB_SHIFT_LOW(~0UL, bits - 1 - ((dst_idx-n) % bits))); |
221 | 221 | ||
222 | if (!shift) { | 222 | if (!shift) { |
223 | // Same alignment for source and dest | 223 | // Same alignment for source and dest |
diff --git a/drivers/video/cfbfillrect.c b/drivers/video/cfbfillrect.c index 167d9314e6eb..e5ff62e9cfb8 100644 --- a/drivers/video/cfbfillrect.c +++ b/drivers/video/cfbfillrect.c | |||
@@ -110,8 +110,8 @@ bitfill_aligned(unsigned long __iomem *dst, int dst_idx, unsigned long pat, unsi | |||
110 | if (!n) | 110 | if (!n) |
111 | return; | 111 | return; |
112 | 112 | ||
113 | first = ~0UL >> dst_idx; | 113 | first = FB_SHIFT_HIGH(~0UL, dst_idx); |
114 | last = ~(~0UL >> ((dst_idx+n) % bits)); | 114 | last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits)); |
115 | 115 | ||
116 | if (dst_idx+n <= bits) { | 116 | if (dst_idx+n <= bits) { |
117 | // Single word | 117 | // Single word |
@@ -167,8 +167,8 @@ bitfill_unaligned(unsigned long __iomem *dst, int dst_idx, unsigned long pat, | |||
167 | if (!n) | 167 | if (!n) |
168 | return; | 168 | return; |
169 | 169 | ||
170 | first = ~0UL >> dst_idx; | 170 | first = FB_SHIFT_HIGH(~0UL, dst_idx); |
171 | last = ~(~0UL >> ((dst_idx+n) % bits)); | 171 | last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits)); |
172 | 172 | ||
173 | if (dst_idx+n <= bits) { | 173 | if (dst_idx+n <= bits) { |
174 | // Single word | 174 | // Single word |
@@ -221,8 +221,8 @@ bitfill_aligned_rev(unsigned long __iomem *dst, int dst_idx, unsigned long pat, | |||
221 | if (!n) | 221 | if (!n) |
222 | return; | 222 | return; |
223 | 223 | ||
224 | first = ~0UL >> dst_idx; | 224 | first = FB_SHIFT_HIGH(~0UL, dst_idx); |
225 | last = ~(~0UL >> ((dst_idx+n) % bits)); | 225 | last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits)); |
226 | 226 | ||
227 | if (dst_idx+n <= bits) { | 227 | if (dst_idx+n <= bits) { |
228 | // Single word | 228 | // Single word |
@@ -290,8 +290,8 @@ bitfill_unaligned_rev(unsigned long __iomem *dst, int dst_idx, unsigned long pat | |||
290 | if (!n) | 290 | if (!n) |
291 | return; | 291 | return; |
292 | 292 | ||
293 | first = ~0UL >> dst_idx; | 293 | first = FB_SHIFT_HIGH(~0UL, dst_idx); |
294 | last = ~(~0UL >> ((dst_idx+n) % bits)); | 294 | last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits)); |
295 | 295 | ||
296 | if (dst_idx+n <= bits) { | 296 | if (dst_idx+n <= bits) { |
297 | // Single word | 297 | // Single word |
diff --git a/drivers/video/cfbimgblt.c b/drivers/video/cfbimgblt.c index a7770c4f17d0..910e2338a27e 100644 --- a/drivers/video/cfbimgblt.c +++ b/drivers/video/cfbimgblt.c | |||
@@ -76,18 +76,6 @@ static u32 cfb_tab32[] = { | |||
76 | #define FB_WRITEL fb_writel | 76 | #define FB_WRITEL fb_writel |
77 | #define FB_READL fb_readl | 77 | #define FB_READL fb_readl |
78 | 78 | ||
79 | #if defined (__BIG_ENDIAN) | ||
80 | #define LEFT_POS(bpp) (32 - bpp) | ||
81 | #define SHIFT_HIGH(val, bits) ((val) >> (bits)) | ||
82 | #define SHIFT_LOW(val, bits) ((val) << (bits)) | ||
83 | #define BIT_NR(b) (7 - (b)) | ||
84 | #else | ||
85 | #define LEFT_POS(bpp) (0) | ||
86 | #define SHIFT_HIGH(val, bits) ((val) << (bits)) | ||
87 | #define SHIFT_LOW(val, bits) ((val) >> (bits)) | ||
88 | #define BIT_NR(b) (b) | ||
89 | #endif | ||
90 | |||
91 | static inline void color_imageblit(const struct fb_image *image, | 79 | static inline void color_imageblit(const struct fb_image *image, |
92 | struct fb_info *p, u8 __iomem *dst1, | 80 | struct fb_info *p, u8 __iomem *dst1, |
93 | u32 start_index, | 81 | u32 start_index, |
@@ -109,7 +97,7 @@ static inline void color_imageblit(const struct fb_image *image, | |||
109 | val = 0; | 97 | val = 0; |
110 | 98 | ||
111 | if (start_index) { | 99 | if (start_index) { |
112 | u32 start_mask = ~(SHIFT_HIGH(~(u32)0, start_index)); | 100 | u32 start_mask = ~(FB_SHIFT_HIGH(~(u32)0, start_index)); |
113 | val = FB_READL(dst) & start_mask; | 101 | val = FB_READL(dst) & start_mask; |
114 | shift = start_index; | 102 | shift = start_index; |
115 | } | 103 | } |
@@ -119,20 +107,20 @@ static inline void color_imageblit(const struct fb_image *image, | |||
119 | color = palette[*src]; | 107 | color = palette[*src]; |
120 | else | 108 | else |
121 | color = *src; | 109 | color = *src; |
122 | color <<= LEFT_POS(bpp); | 110 | color <<= FB_LEFT_POS(bpp); |
123 | val |= SHIFT_HIGH(color, shift); | 111 | val |= FB_SHIFT_HIGH(color, shift); |
124 | if (shift >= null_bits) { | 112 | if (shift >= null_bits) { |
125 | FB_WRITEL(val, dst++); | 113 | FB_WRITEL(val, dst++); |
126 | 114 | ||
127 | val = (shift == null_bits) ? 0 : | 115 | val = (shift == null_bits) ? 0 : |
128 | SHIFT_LOW(color, 32 - shift); | 116 | FB_SHIFT_LOW(color, 32 - shift); |
129 | } | 117 | } |
130 | shift += bpp; | 118 | shift += bpp; |
131 | shift &= (32 - 1); | 119 | shift &= (32 - 1); |
132 | src++; | 120 | src++; |
133 | } | 121 | } |
134 | if (shift) { | 122 | if (shift) { |
135 | u32 end_mask = SHIFT_HIGH(~(u32)0, shift); | 123 | u32 end_mask = FB_SHIFT_HIGH(~(u32)0, shift); |
136 | 124 | ||
137 | FB_WRITEL((FB_READL(dst) & end_mask) | val, dst); | 125 | FB_WRITEL((FB_READL(dst) & end_mask) | val, dst); |
138 | } | 126 | } |
@@ -162,6 +150,8 @@ static inline void slow_imageblit(const struct fb_image *image, struct fb_info * | |||
162 | u32 i, j, l; | 150 | u32 i, j, l; |
163 | 151 | ||
164 | dst2 = (u32 __iomem *) dst1; | 152 | dst2 = (u32 __iomem *) dst1; |
153 | fgcolor <<= FB_LEFT_POS(bpp); | ||
154 | bgcolor <<= FB_LEFT_POS(bpp); | ||
165 | 155 | ||
166 | for (i = image->height; i--; ) { | 156 | for (i = image->height; i--; ) { |
167 | shift = val = 0; | 157 | shift = val = 0; |
@@ -172,22 +162,21 @@ static inline void slow_imageblit(const struct fb_image *image, struct fb_info * | |||
172 | 162 | ||
173 | /* write leading bits */ | 163 | /* write leading bits */ |
174 | if (start_index) { | 164 | if (start_index) { |
175 | u32 start_mask = ~(SHIFT_HIGH(~(u32)0, start_index)); | 165 | u32 start_mask = ~(FB_SHIFT_HIGH(~(u32)0,start_index)); |
176 | val = FB_READL(dst) & start_mask; | 166 | val = FB_READL(dst) & start_mask; |
177 | shift = start_index; | 167 | shift = start_index; |
178 | } | 168 | } |
179 | 169 | ||
180 | while (j--) { | 170 | while (j--) { |
181 | l--; | 171 | l--; |
182 | color = (*s & 1 << (BIT_NR(l))) ? fgcolor : bgcolor; | 172 | color = (*s & 1 << (FB_BIT_NR(l))) ? fgcolor : bgcolor; |
183 | color <<= LEFT_POS(bpp); | 173 | val |= FB_SHIFT_HIGH(color, shift); |
184 | val |= SHIFT_HIGH(color, shift); | ||
185 | 174 | ||
186 | /* Did the bitshift spill bits to the next long? */ | 175 | /* Did the bitshift spill bits to the next long? */ |
187 | if (shift >= null_bits) { | 176 | if (shift >= null_bits) { |
188 | FB_WRITEL(val, dst++); | 177 | FB_WRITEL(val, dst++); |
189 | val = (shift == null_bits) ? 0 : | 178 | val = (shift == null_bits) ? 0 : |
190 | SHIFT_LOW(color,32 - shift); | 179 | FB_SHIFT_LOW(color,32 - shift); |
191 | } | 180 | } |
192 | shift += bpp; | 181 | shift += bpp; |
193 | shift &= (32 - 1); | 182 | shift &= (32 - 1); |
@@ -196,7 +185,7 @@ static inline void slow_imageblit(const struct fb_image *image, struct fb_info * | |||
196 | 185 | ||
197 | /* write trailing bits */ | 186 | /* write trailing bits */ |
198 | if (shift) { | 187 | if (shift) { |
199 | u32 end_mask = SHIFT_HIGH(~(u32)0, shift); | 188 | u32 end_mask = FB_SHIFT_HIGH(~(u32)0, shift); |
200 | 189 | ||
201 | FB_WRITEL((FB_READL(dst) & end_mask) | val, dst); | 190 | FB_WRITEL((FB_READL(dst) & end_mask) | val, dst); |
202 | } | 191 | } |
diff --git a/drivers/video/cg14.c b/drivers/video/cg14.c index 1bed50f2a276..a56147102abb 100644 --- a/drivers/video/cg14.c +++ b/drivers/video/cg14.c | |||
@@ -206,7 +206,6 @@ struct cg14_par { | |||
206 | int mode; | 206 | int mode; |
207 | int ramsize; | 207 | int ramsize; |
208 | struct sbus_dev *sdev; | 208 | struct sbus_dev *sdev; |
209 | struct list_head list; | ||
210 | }; | 209 | }; |
211 | 210 | ||
212 | static void __cg14_reset(struct cg14_par *par) | 211 | static void __cg14_reset(struct cg14_par *par) |
diff --git a/drivers/video/cg3.c b/drivers/video/cg3.c index a1354e7e0513..9fcd89608ed7 100644 --- a/drivers/video/cg3.c +++ b/drivers/video/cg3.c | |||
@@ -124,7 +124,6 @@ struct cg3_par { | |||
124 | unsigned long fbsize; | 124 | unsigned long fbsize; |
125 | 125 | ||
126 | struct sbus_dev *sdev; | 126 | struct sbus_dev *sdev; |
127 | struct list_head list; | ||
128 | }; | 127 | }; |
129 | 128 | ||
130 | /** | 129 | /** |
diff --git a/drivers/video/cg6.c b/drivers/video/cg6.c index 9debe642fd2f..050835e39aa3 100644 --- a/drivers/video/cg6.c +++ b/drivers/video/cg6.c | |||
@@ -265,7 +265,6 @@ struct cg6_par { | |||
265 | unsigned long fbsize; | 265 | unsigned long fbsize; |
266 | 266 | ||
267 | struct sbus_dev *sdev; | 267 | struct sbus_dev *sdev; |
268 | struct list_head list; | ||
269 | }; | 268 | }; |
270 | 269 | ||
271 | static int cg6_sync(struct fb_info *info) | 270 | static int cg6_sync(struct fb_info *info) |
@@ -612,7 +611,7 @@ static void cg6_chip_init(struct fb_info *info) | |||
612 | struct cg6_par *par = (struct cg6_par *) info->par; | 611 | struct cg6_par *par = (struct cg6_par *) info->par; |
613 | struct cg6_tec __iomem *tec = par->tec; | 612 | struct cg6_tec __iomem *tec = par->tec; |
614 | struct cg6_fbc __iomem *fbc = par->fbc; | 613 | struct cg6_fbc __iomem *fbc = par->fbc; |
615 | u32 rev, conf, mode, tmp; | 614 | u32 rev, conf, mode; |
616 | int i; | 615 | int i; |
617 | 616 | ||
618 | /* Turn off stuff in the Transform Engine. */ | 617 | /* Turn off stuff in the Transform Engine. */ |
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index bcea87c3cc06..3660e51b2612 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
@@ -2048,7 +2048,7 @@ static int fbcon_switch(struct vc_data *vc) | |||
2048 | struct fbcon_ops *ops; | 2048 | struct fbcon_ops *ops; |
2049 | struct display *p = &fb_display[vc->vc_num]; | 2049 | struct display *p = &fb_display[vc->vc_num]; |
2050 | struct fb_var_screeninfo var; | 2050 | struct fb_var_screeninfo var; |
2051 | int i, prev_console; | 2051 | int i, prev_console, charcnt = 256; |
2052 | 2052 | ||
2053 | info = registered_fb[con2fb_map[vc->vc_num]]; | 2053 | info = registered_fb[con2fb_map[vc->vc_num]]; |
2054 | ops = info->fbcon_par; | 2054 | ops = info->fbcon_par; |
@@ -2103,7 +2103,8 @@ static int fbcon_switch(struct vc_data *vc) | |||
2103 | fb_set_var(info, &var); | 2103 | fb_set_var(info, &var); |
2104 | ops->var = info->var; | 2104 | ops->var = info->var; |
2105 | 2105 | ||
2106 | if (old_info != NULL && old_info != info) { | 2106 | if (old_info != NULL && (old_info != info || |
2107 | info->flags & FBINFO_MISC_ALWAYS_SETPAR)) { | ||
2107 | if (info->fbops->fb_set_par) | 2108 | if (info->fbops->fb_set_par) |
2108 | info->fbops->fb_set_par(info); | 2109 | info->fbops->fb_set_par(info); |
2109 | fbcon_del_cursor_timer(old_info); | 2110 | fbcon_del_cursor_timer(old_info); |
@@ -2120,6 +2121,13 @@ static int fbcon_switch(struct vc_data *vc) | |||
2120 | 2121 | ||
2121 | vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); | 2122 | vc->vc_can_do_color = (fb_get_color_depth(&info->var, &info->fix)!=1); |
2122 | vc->vc_complement_mask = vc->vc_can_do_color ? 0x7700 : 0x0800; | 2123 | vc->vc_complement_mask = vc->vc_can_do_color ? 0x7700 : 0x0800; |
2124 | |||
2125 | if (p->userfont) | ||
2126 | charcnt = FNTCHARCNT(vc->vc_font.data); | ||
2127 | |||
2128 | if (charcnt > 256) | ||
2129 | vc->vc_complement_mask <<= 1; | ||
2130 | |||
2123 | updatescrollmode(p, info, vc); | 2131 | updatescrollmode(p, info, vc); |
2124 | 2132 | ||
2125 | switch (p->scrollmode) { | 2133 | switch (p->scrollmode) { |
@@ -2139,8 +2147,12 @@ static int fbcon_switch(struct vc_data *vc) | |||
2139 | 2147 | ||
2140 | scrollback_max = 0; | 2148 | scrollback_max = 0; |
2141 | scrollback_current = 0; | 2149 | scrollback_current = 0; |
2142 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | 2150 | |
2143 | ops->update_start(info); | 2151 | if (!fbcon_is_inactive(vc, info)) { |
2152 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | ||
2153 | ops->update_start(info); | ||
2154 | } | ||
2155 | |||
2144 | fbcon_set_palette(vc, color_table); | 2156 | fbcon_set_palette(vc, color_table); |
2145 | fbcon_clear_margins(vc, 0); | 2157 | fbcon_clear_margins(vc, 0); |
2146 | 2158 | ||
@@ -2184,11 +2196,14 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch) | |||
2184 | ops->graphics = 1; | 2196 | ops->graphics = 1; |
2185 | 2197 | ||
2186 | if (!blank) { | 2198 | if (!blank) { |
2199 | if (info->fbops->fb_save_state) | ||
2200 | info->fbops->fb_save_state(info); | ||
2187 | var.activate = FB_ACTIVATE_NOW | FB_ACTIVATE_FORCE; | 2201 | var.activate = FB_ACTIVATE_NOW | FB_ACTIVATE_FORCE; |
2188 | fb_set_var(info, &var); | 2202 | fb_set_var(info, &var); |
2189 | ops->graphics = 0; | 2203 | ops->graphics = 0; |
2190 | ops->var = info->var; | 2204 | ops->var = info->var; |
2191 | } | 2205 | } else if (info->fbops->fb_restore_state) |
2206 | info->fbops->fb_restore_state(info); | ||
2192 | } | 2207 | } |
2193 | 2208 | ||
2194 | if (!fbcon_is_inactive(vc, info)) { | 2209 | if (!fbcon_is_inactive(vc, info)) { |
@@ -2736,8 +2751,12 @@ static void fbcon_modechanged(struct fb_info *info) | |||
2736 | updatescrollmode(p, info, vc); | 2751 | updatescrollmode(p, info, vc); |
2737 | scrollback_max = 0; | 2752 | scrollback_max = 0; |
2738 | scrollback_current = 0; | 2753 | scrollback_current = 0; |
2739 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | 2754 | |
2740 | ops->update_start(info); | 2755 | if (!fbcon_is_inactive(vc, info)) { |
2756 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | ||
2757 | ops->update_start(info); | ||
2758 | } | ||
2759 | |||
2741 | fbcon_set_palette(vc, color_table); | 2760 | fbcon_set_palette(vc, color_table); |
2742 | update_screen(vc); | 2761 | update_screen(vc); |
2743 | if (softback_buf) | 2762 | if (softback_buf) |
@@ -2774,8 +2793,13 @@ static void fbcon_set_all_vcs(struct fb_info *info) | |||
2774 | updatescrollmode(p, info, vc); | 2793 | updatescrollmode(p, info, vc); |
2775 | scrollback_max = 0; | 2794 | scrollback_max = 0; |
2776 | scrollback_current = 0; | 2795 | scrollback_current = 0; |
2777 | ops->var.xoffset = ops->var.yoffset = p->yscroll = 0; | 2796 | |
2778 | ops->update_start(info); | 2797 | if (!fbcon_is_inactive(vc, info)) { |
2798 | ops->var.xoffset = ops->var.yoffset = | ||
2799 | p->yscroll = 0; | ||
2800 | ops->update_start(info); | ||
2801 | } | ||
2802 | |||
2779 | fbcon_set_palette(vc, color_table); | 2803 | fbcon_set_palette(vc, color_table); |
2780 | update_screen(vc); | 2804 | update_screen(vc); |
2781 | if (softback_buf) | 2805 | if (softback_buf) |
diff --git a/drivers/video/console/fbcon_ud.c b/drivers/video/console/fbcon_ud.c index c4d7c89212b4..9dd059e8b645 100644 --- a/drivers/video/console/fbcon_ud.c +++ b/drivers/video/console/fbcon_ud.c | |||
@@ -420,13 +420,15 @@ static void ud_cursor(struct vc_data *vc, struct fb_info *info, | |||
420 | int ud_update_start(struct fb_info *info) | 420 | int ud_update_start(struct fb_info *info) |
421 | { | 421 | { |
422 | struct fbcon_ops *ops = info->fbcon_par; | 422 | struct fbcon_ops *ops = info->fbcon_par; |
423 | u32 xoffset, yoffset; | 423 | int xoffset, yoffset; |
424 | u32 vyres = GETVYRES(ops->p->scrollmode, info); | 424 | u32 vyres = GETVYRES(ops->p->scrollmode, info); |
425 | u32 vxres = GETVXRES(ops->p->scrollmode, info); | 425 | u32 vxres = GETVXRES(ops->p->scrollmode, info); |
426 | int err; | 426 | int err; |
427 | 427 | ||
428 | xoffset = (vxres - info->var.xres) - ops->var.xoffset; | 428 | xoffset = vxres - info->var.xres - ops->var.xoffset; |
429 | yoffset = (vyres - info->var.yres) - ops->var.yoffset; | 429 | yoffset = vyres - info->var.yres - ops->var.yoffset; |
430 | if (yoffset < 0) | ||
431 | yoffset += vyres; | ||
430 | ops->var.xoffset = xoffset; | 432 | ops->var.xoffset = xoffset; |
431 | ops->var.yoffset = yoffset; | 433 | ops->var.yoffset = yoffset; |
432 | err = fb_pan_display(info, &ops->var); | 434 | err = fb_pan_display(info, &ops->var); |
diff --git a/drivers/video/cyber2000fb.c b/drivers/video/cyber2000fb.c index c589d23e7f91..a9300f930ef2 100644 --- a/drivers/video/cyber2000fb.c +++ b/drivers/video/cyber2000fb.c | |||
@@ -1512,7 +1512,7 @@ static int cyberpro_pci_enable_mmio(struct cfb_info *cfb) | |||
1512 | * I/O cycles storing into a reserved memory space at | 1512 | * I/O cycles storing into a reserved memory space at |
1513 | * physical address 0x3000000 | 1513 | * physical address 0x3000000 |
1514 | */ | 1514 | */ |
1515 | unsigned char *iop; | 1515 | unsigned char __iomem *iop; |
1516 | 1516 | ||
1517 | iop = ioremap(0x3000000, 0x5000); | 1517 | iop = ioremap(0x3000000, 0x5000); |
1518 | if (iop == NULL) { | 1518 | if (iop == NULL) { |
@@ -1526,7 +1526,7 @@ static int cyberpro_pci_enable_mmio(struct cfb_info *cfb) | |||
1526 | writeb(EXT_BIU_MISC, iop + 0x3ce); | 1526 | writeb(EXT_BIU_MISC, iop + 0x3ce); |
1527 | writeb(EXT_BIU_MISC_LIN_ENABLE, iop + 0x3cf); | 1527 | writeb(EXT_BIU_MISC_LIN_ENABLE, iop + 0x3cf); |
1528 | 1528 | ||
1529 | iounmap((void *)iop); | 1529 | iounmap(iop); |
1530 | #else | 1530 | #else |
1531 | /* | 1531 | /* |
1532 | * Most other machine types are "normal", so | 1532 | * Most other machine types are "normal", so |
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c index 6240aedb4154..10dfdf035264 100644 --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c | |||
@@ -722,14 +722,30 @@ static void try_to_load(int fb) | |||
722 | int | 722 | int |
723 | fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var) | 723 | fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var) |
724 | { | 724 | { |
725 | struct fb_fix_screeninfo *fix = &info->fix; | ||
725 | int xoffset = var->xoffset; | 726 | int xoffset = var->xoffset; |
726 | int yoffset = var->yoffset; | 727 | int yoffset = var->yoffset; |
727 | int err; | 728 | int err = 0, yres = info->var.yres; |
729 | |||
730 | if (var->yoffset > 0) { | ||
731 | if (var->vmode & FB_VMODE_YWRAP) { | ||
732 | if (!fix->ywrapstep || (var->yoffset % fix->ywrapstep)) | ||
733 | err = -EINVAL; | ||
734 | else | ||
735 | yres = 0; | ||
736 | } else if (!fix->ypanstep || (var->yoffset % fix->ypanstep)) | ||
737 | err = -EINVAL; | ||
738 | } | ||
739 | |||
740 | if (var->xoffset > 0 && (!fix->xpanstep || | ||
741 | (var->xoffset % fix->xpanstep))) | ||
742 | err = -EINVAL; | ||
743 | |||
744 | if (err || !info->fbops->fb_pan_display || xoffset < 0 || | ||
745 | yoffset < 0 || var->yoffset + yres > info->var.yres_virtual || | ||
746 | var->xoffset + info->var.xres > info->var.xres_virtual) | ||
747 | return -EINVAL; | ||
728 | 748 | ||
729 | if (xoffset < 0 || yoffset < 0 || !info->fbops->fb_pan_display || | ||
730 | xoffset + info->var.xres > info->var.xres_virtual || | ||
731 | yoffset + info->var.yres > info->var.yres_virtual) | ||
732 | return -EINVAL; | ||
733 | if ((err = info->fbops->fb_pan_display(var, info))) | 749 | if ((err = info->fbops->fb_pan_display(var, info))) |
734 | return err; | 750 | return err; |
735 | info->var.xoffset = var->xoffset; | 751 | info->var.xoffset = var->xoffset; |
diff --git a/drivers/video/ffb.c b/drivers/video/ffb.c index 2584daec7bbf..c4870d559afc 100644 --- a/drivers/video/ffb.c +++ b/drivers/video/ffb.c | |||
@@ -359,7 +359,6 @@ struct ffb_par { | |||
359 | int prom_parent_node; | 359 | int prom_parent_node; |
360 | int dac_rev; | 360 | int dac_rev; |
361 | int board_type; | 361 | int board_type; |
362 | struct list_head list; | ||
363 | }; | 362 | }; |
364 | 363 | ||
365 | static void FFBFifo(struct ffb_par *par, int n) | 364 | static void FFBFifo(struct ffb_par *par, int n) |
diff --git a/drivers/video/intelfb/intelfb.h b/drivers/video/intelfb/intelfb.h index f077ca34faba..da29d007f215 100644 --- a/drivers/video/intelfb/intelfb.h +++ b/drivers/video/intelfb/intelfb.h | |||
@@ -41,6 +41,10 @@ | |||
41 | 41 | ||
42 | /*** hw-related values ***/ | 42 | /*** hw-related values ***/ |
43 | 43 | ||
44 | /* Resource Allocation */ | ||
45 | #define INTELFB_FB_ACQUIRED 1 | ||
46 | #define INTELFB_MMIO_ACQUIRED 2 | ||
47 | |||
44 | /* PCI ids for supported devices */ | 48 | /* PCI ids for supported devices */ |
45 | #define PCI_DEVICE_ID_INTEL_830M 0x3577 | 49 | #define PCI_DEVICE_ID_INTEL_830M 0x3577 |
46 | #define PCI_DEVICE_ID_INTEL_845G 0x2562 | 50 | #define PCI_DEVICE_ID_INTEL_845G 0x2562 |
@@ -257,6 +261,7 @@ struct intelfb_info { | |||
257 | int hwcursor; | 261 | int hwcursor; |
258 | int fixed_mode; | 262 | int fixed_mode; |
259 | int ring_active; | 263 | int ring_active; |
264 | int flag; | ||
260 | 265 | ||
261 | /* hw cursor */ | 266 | /* hw cursor */ |
262 | int cursor_on; | 267 | int cursor_on; |
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c index 427689e584da..0090544842f5 100644 --- a/drivers/video/intelfb/intelfbdrv.c +++ b/drivers/video/intelfb/intelfbdrv.c | |||
@@ -135,9 +135,6 @@ | |||
135 | static void __devinit get_initial_mode(struct intelfb_info *dinfo); | 135 | static void __devinit get_initial_mode(struct intelfb_info *dinfo); |
136 | static void update_dinfo(struct intelfb_info *dinfo, | 136 | static void update_dinfo(struct intelfb_info *dinfo, |
137 | struct fb_var_screeninfo *var); | 137 | struct fb_var_screeninfo *var); |
138 | static int intelfb_get_fix(struct fb_fix_screeninfo *fix, | ||
139 | struct fb_info *info); | ||
140 | |||
141 | static int intelfb_check_var(struct fb_var_screeninfo *var, | 138 | static int intelfb_check_var(struct fb_var_screeninfo *var, |
142 | struct fb_info *info); | 139 | struct fb_info *info); |
143 | static int intelfb_set_par(struct fb_info *info); | 140 | static int intelfb_set_par(struct fb_info *info); |
@@ -473,9 +470,9 @@ cleanup(struct intelfb_info *dinfo) | |||
473 | if (dinfo->aperture.virtual) | 470 | if (dinfo->aperture.virtual) |
474 | iounmap((void __iomem *)dinfo->aperture.virtual); | 471 | iounmap((void __iomem *)dinfo->aperture.virtual); |
475 | 472 | ||
476 | if (dinfo->mmio_base_phys) | 473 | if (dinfo->flag & INTELFB_MMIO_ACQUIRED) |
477 | release_mem_region(dinfo->mmio_base_phys, INTEL_REG_SIZE); | 474 | release_mem_region(dinfo->mmio_base_phys, INTEL_REG_SIZE); |
478 | if (dinfo->aperture.physical) | 475 | if (dinfo->flag & INTELFB_FB_ACQUIRED) |
479 | release_mem_region(dinfo->aperture.physical, | 476 | release_mem_region(dinfo->aperture.physical, |
480 | dinfo->aperture.size); | 477 | dinfo->aperture.size); |
481 | framebuffer_release(dinfo->info); | 478 | framebuffer_release(dinfo->info); |
@@ -572,6 +569,9 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
572 | cleanup(dinfo); | 569 | cleanup(dinfo); |
573 | return -ENODEV; | 570 | return -ENODEV; |
574 | } | 571 | } |
572 | |||
573 | dinfo->flag |= INTELFB_FB_ACQUIRED; | ||
574 | |||
575 | if (!request_mem_region(dinfo->mmio_base_phys, | 575 | if (!request_mem_region(dinfo->mmio_base_phys, |
576 | INTEL_REG_SIZE, | 576 | INTEL_REG_SIZE, |
577 | INTELFB_MODULE_NAME)) { | 577 | INTELFB_MODULE_NAME)) { |
@@ -580,6 +580,8 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
580 | return -ENODEV; | 580 | return -ENODEV; |
581 | } | 581 | } |
582 | 582 | ||
583 | dinfo->flag |= INTELFB_MMIO_ACQUIRED; | ||
584 | |||
583 | /* Get the chipset info. */ | 585 | /* Get the chipset info. */ |
584 | dinfo->pci_chipset = pdev->device; | 586 | dinfo->pci_chipset = pdev->device; |
585 | 587 | ||
@@ -1091,7 +1093,17 @@ intelfb_set_fbinfo(struct intelfb_info *dinfo) | |||
1091 | return 1; | 1093 | return 1; |
1092 | 1094 | ||
1093 | info->pixmap.scan_align = 1; | 1095 | info->pixmap.scan_align = 1; |
1094 | 1096 | strcpy(info->fix.id, dinfo->name); | |
1097 | info->fix.smem_start = dinfo->fb.physical; | ||
1098 | info->fix.smem_len = dinfo->fb.size; | ||
1099 | info->fix.type = FB_TYPE_PACKED_PIXELS; | ||
1100 | info->fix.type_aux = 0; | ||
1101 | info->fix.xpanstep = 8; | ||
1102 | info->fix.ypanstep = 1; | ||
1103 | info->fix.ywrapstep = 0; | ||
1104 | info->fix.mmio_start = dinfo->mmio_base_phys; | ||
1105 | info->fix.mmio_len = INTEL_REG_SIZE; | ||
1106 | info->fix.accel = FB_ACCEL_I830; | ||
1095 | update_dinfo(dinfo, &info->var); | 1107 | update_dinfo(dinfo, &info->var); |
1096 | 1108 | ||
1097 | return 0; | 1109 | return 0; |
@@ -1109,7 +1121,8 @@ update_dinfo(struct intelfb_info *dinfo, struct fb_var_screeninfo *var) | |||
1109 | dinfo->yres = var->xres; | 1121 | dinfo->yres = var->xres; |
1110 | dinfo->pixclock = var->pixclock; | 1122 | dinfo->pixclock = var->pixclock; |
1111 | 1123 | ||
1112 | intelfb_get_fix(&dinfo->info->fix, dinfo->info); | 1124 | dinfo->info->fix.visual = dinfo->visual; |
1125 | dinfo->info->fix.line_length = dinfo->pitch; | ||
1113 | 1126 | ||
1114 | switch (dinfo->bpp) { | 1127 | switch (dinfo->bpp) { |
1115 | case 8: | 1128 | case 8: |
@@ -1139,30 +1152,6 @@ update_dinfo(struct intelfb_info *dinfo, struct fb_var_screeninfo *var) | |||
1139 | 1152 | ||
1140 | /* fbops functions */ | 1153 | /* fbops functions */ |
1141 | 1154 | ||
1142 | static int | ||
1143 | intelfb_get_fix(struct fb_fix_screeninfo *fix, struct fb_info *info) | ||
1144 | { | ||
1145 | struct intelfb_info *dinfo = GET_DINFO(info); | ||
1146 | |||
1147 | DBG_MSG("intelfb_get_fix\n"); | ||
1148 | |||
1149 | memset(fix, 0, sizeof(*fix)); | ||
1150 | strcpy(fix->id, dinfo->name); | ||
1151 | fix->smem_start = dinfo->fb.physical; | ||
1152 | fix->smem_len = dinfo->fb.size; | ||
1153 | fix->type = FB_TYPE_PACKED_PIXELS; | ||
1154 | fix->type_aux = 0; | ||
1155 | fix->visual = dinfo->visual; | ||
1156 | fix->xpanstep = 8; | ||
1157 | fix->ypanstep = 1; | ||
1158 | fix->ywrapstep = 0; | ||
1159 | fix->line_length = dinfo->pitch; | ||
1160 | fix->mmio_start = dinfo->mmio_base_phys; | ||
1161 | fix->mmio_len = INTEL_REG_SIZE; | ||
1162 | fix->accel = FB_ACCEL_I830; | ||
1163 | return 0; | ||
1164 | } | ||
1165 | |||
1166 | /*************************************************************** | 1155 | /*************************************************************** |
1167 | * fbdev interface * | 1156 | * fbdev interface * |
1168 | ***************************************************************/ | 1157 | ***************************************************************/ |
diff --git a/drivers/video/leo.c b/drivers/video/leo.c index 376d4a171ec7..494287f8f8bf 100644 --- a/drivers/video/leo.c +++ b/drivers/video/leo.c | |||
@@ -197,7 +197,6 @@ struct leo_par { | |||
197 | unsigned long fbsize; | 197 | unsigned long fbsize; |
198 | 198 | ||
199 | struct sbus_dev *sdev; | 199 | struct sbus_dev *sdev; |
200 | struct list_head list; | ||
201 | }; | 200 | }; |
202 | 201 | ||
203 | static void leo_wait(struct leo_lx_krn __iomem *lx_krn) | 202 | static void leo_wait(struct leo_lx_krn __iomem *lx_krn) |
diff --git a/drivers/video/p9100.c b/drivers/video/p9100.c index 18bcda23d2cf..b251e754e16c 100644 --- a/drivers/video/p9100.c +++ b/drivers/video/p9100.c | |||
@@ -140,7 +140,6 @@ struct p9100_par { | |||
140 | unsigned long fbsize; | 140 | unsigned long fbsize; |
141 | 141 | ||
142 | struct sbus_dev *sdev; | 142 | struct sbus_dev *sdev; |
143 | struct list_head list; | ||
144 | }; | 143 | }; |
145 | 144 | ||
146 | /** | 145 | /** |
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c index 7b4cd250bec8..9fc10b9e6f57 100644 --- a/drivers/video/pxafb.c +++ b/drivers/video/pxafb.c | |||
@@ -1396,7 +1396,8 @@ static struct platform_driver pxafb_driver = { | |||
1396 | int __devinit pxafb_setup(char *options) | 1396 | int __devinit pxafb_setup(char *options) |
1397 | { | 1397 | { |
1398 | # ifdef CONFIG_FB_PXA_PARAMETERS | 1398 | # ifdef CONFIG_FB_PXA_PARAMETERS |
1399 | strlcpy(g_options, options, sizeof(g_options)); | 1399 | if (options) |
1400 | strlcpy(g_options, options, sizeof(g_options)); | ||
1400 | # endif | 1401 | # endif |
1401 | return 0; | 1402 | return 0; |
1402 | } | 1403 | } |
diff --git a/drivers/video/tcx.c b/drivers/video/tcx.c index fe4f63f3849d..2b27b4474001 100644 --- a/drivers/video/tcx.c +++ b/drivers/video/tcx.c | |||
@@ -125,7 +125,6 @@ struct tcx_par { | |||
125 | int lowdepth; | 125 | int lowdepth; |
126 | 126 | ||
127 | struct sbus_dev *sdev; | 127 | struct sbus_dev *sdev; |
128 | struct list_head list; | ||
129 | }; | 128 | }; |
130 | 129 | ||
131 | /* Reset control plane so that WID is 8-bit plane. */ | 130 | /* Reset control plane so that WID is 8-bit plane. */ |
@@ -444,7 +443,7 @@ static void tcx_init_one(struct sbus_dev *sdev) | |||
444 | 443 | ||
445 | tcx_reset(&all->info); | 444 | tcx_reset(&all->info); |
446 | 445 | ||
447 | tcx_blank(0, &all->info); | 446 | tcx_blank(FB_BLANK_UNBLANK, &all->info); |
448 | 447 | ||
449 | if (fb_alloc_cmap(&all->info.cmap, 256, 0)) { | 448 | if (fb_alloc_cmap(&all->info.cmap, 256, 0)) { |
450 | printk(KERN_ERR "tcx: Could not allocate color map.\n"); | 449 | printk(KERN_ERR "tcx: Could not allocate color map.\n"); |