Cleanup umem driver: fix most checkpatch warnings, conform to kernel coding style.

linux-2.6.24-rc5-git3> checkpatch.pl-next patches/block-umem-ckpatch.patch
total: 0 errors, 5 warnings, 530 lines checked

All of these are line-length warnings.

Only change in generated object file is due to not initializing a
static global variable to 0.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

authored by Randy Dunlap and committed by Jens Axboe 458cf5e9 2fdd82bd

+81 -156
+81 -156
drivers/block/umem.c
··· 34 * - set initialised bit then. 35 */ 36 37 - //#define DEBUG /* uncomment if you want debugging info (pr_debug) */ 38 #include <linux/fs.h> 39 #include <linux/bio.h> 40 #include <linux/kernel.h> ··· 143 static struct block_device_operations mm_fops; 144 static struct timer_list battery_timer; 145 146 - static int num_cards = 0; 147 148 static struct gendisk *mm_gendisk[MM_MAXCARDS]; 149 150 static void check_batteries(struct cardinfo *card); 151 152 - /* 153 - ----------------------------------------------------------------------------------- 154 - -- get_userbit 155 - ----------------------------------------------------------------------------------- 156 - */ 157 static int get_userbit(struct cardinfo *card, int bit) 158 { 159 unsigned char led; ··· 156 led = readb(card->csr_remap + MEMCTRLCMD_LEDCTRL); 157 return led & bit; 158 } 159 - /* 160 - ----------------------------------------------------------------------------------- 161 - -- set_userbit 162 - ----------------------------------------------------------------------------------- 163 - */ 164 static int set_userbit(struct cardinfo *card, int bit, unsigned char state) 165 { 166 unsigned char led; ··· 170 171 return 0; 172 } 173 - /* 174 - ----------------------------------------------------------------------------------- 175 - -- set_led 176 - ----------------------------------------------------------------------------------- 177 - */ 178 /* 179 * NOTE: For the power LED, use the LED_POWER_* macros since they differ 180 */ ··· 190 } 191 192 #ifdef MM_DIAG 193 - /* 194 - ----------------------------------------------------------------------------------- 195 - -- dump_regs 196 - ----------------------------------------------------------------------------------- 197 - */ 198 static void dump_regs(struct cardinfo *card) 199 { 200 unsigned char *p; ··· 206 } 207 } 208 #endif 209 - /* 210 - ----------------------------------------------------------------------------------- 211 - -- dump_dmastat 212 - ----------------------------------------------------------------------------------- 213 - */ 214 static void dump_dmastat(struct cardinfo *card, unsigned int dmastat) 215 { 216 dev_printk(KERN_DEBUG, &card->dev->dev, "DMAstat - "); 217 if (dmastat & DMASCR_ANY_ERR) 218 - printk("ANY_ERR "); 219 if (dmastat & DMASCR_MBE_ERR) 220 - printk("MBE_ERR "); 221 if (dmastat & DMASCR_PARITY_ERR_REP) 222 - printk("PARITY_ERR_REP "); 223 if (dmastat & DMASCR_PARITY_ERR_DET) 224 - printk("PARITY_ERR_DET "); 225 if (dmastat & DMASCR_SYSTEM_ERR_SIG) 226 - printk("SYSTEM_ERR_SIG "); 227 if (dmastat & DMASCR_TARGET_ABT) 228 - printk("TARGET_ABT "); 229 if (dmastat & DMASCR_MASTER_ABT) 230 - printk("MASTER_ABT "); 231 if (dmastat & DMASCR_CHAIN_COMPLETE) 232 - printk("CHAIN_COMPLETE "); 233 if (dmastat & DMASCR_DMA_COMPLETE) 234 - printk("DMA_COMPLETE "); 235 printk("\n"); 236 } 237 ··· 264 265 /* make the last descriptor end the chain */ 266 page = &card->mm_pages[card->Active]; 267 - pr_debug("start_io: %d %d->%d\n", card->Active, page->headcnt, page->cnt-1); 268 desc = &page->desc[page->cnt-1]; 269 270 desc->control_bits |= cpu_to_le32(DMASCR_CHAIN_COMP_EN); ··· 289 writel(0, card->csr_remap + DMA_SEMAPHORE_ADDR); 290 writel(0, card->csr_remap + DMA_SEMAPHORE_ADDR + 4); 291 292 - offset = ((char*)desc) - ((char*)page->desc); 293 - writel(cpu_to_le32((page->page_dma+offset)&0xffffffff), 294 card->csr_remap + DMA_DESCRIPTOR_ADDR); 295 /* Force the value to u64 before shifting otherwise >> 32 is undefined C 296 * and on some ports will do nothing ! */ ··· 331 page->cnt = 0; 332 page->headcnt = 0; 333 page->bio = NULL; 334 - page->biotail = & page->bio; 335 } 336 337 static void mm_unplug_device(struct request_queue *q) ··· 387 vec->bv_page, 388 vec->bv_offset, 389 len, 390 - (rw==READ) ? 391 PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE); 392 393 p = &card->mm_pages[card->Ready]; ··· 406 desc->pci_addr = cpu_to_le64((u64)desc->data_dma_handle); 407 desc->local_addr = cpu_to_le64(card->current_sector << 9); 408 desc->transfer_size = cpu_to_le32(len); 409 - offset = ( ((char*)&desc->sem_control_bits) - ((char*)p->desc)); 410 desc->sem_addr = cpu_to_le64((u64)(p->page_dma+offset)); 411 desc->zero1 = desc->zero2 = 0; 412 - offset = ( ((char*)(desc+1)) - ((char*)p->desc)); 413 desc->next_desc_addr = cpu_to_le64(p->page_dma+offset); 414 desc->control_bits = cpu_to_le32(DMASCR_GO|DMASCR_ERR_INT_EN| 415 DMASCR_PARITY_INT_EN| ··· 434 /* check if any of the requests in the page are DMA_COMPLETE, 435 * and deal with them appropriately. 436 * If we find a descriptor without DMA_COMPLETE in the semaphore, then 437 - * dma must have hit an error on that descriptor, so use dma_status instead 438 - * and assume that all following descriptors must be re-tried. 439 */ 440 struct mm_page *page; 441 - struct bio *return_bio=NULL; 442 struct cardinfo *card = (struct cardinfo *)data; 443 unsigned int dma_status = card->dma_status; 444 ··· 451 struct bio *bio = page->bio; 452 struct mm_dma_desc *desc = &page->desc[page->headcnt]; 453 int control = le32_to_cpu(desc->sem_control_bits); 454 - int last=0; 455 int idx; 456 457 if (!(control & DMASCR_DMA_COMPLETE)) { 458 control = dma_status; 459 - last=1; 460 } 461 page->headcnt++; 462 idx = page->idx; ··· 468 } 469 470 pci_unmap_page(card->dev, desc->data_dma_handle, 471 - bio_iovec_idx(bio,idx)->bv_len, 472 - (control& DMASCR_TRANSFER_READ) ? 473 PCI_DMA_TODEVICE : PCI_DMA_FROMDEVICE); 474 if (control & DMASCR_HARD_ERROR) { 475 /* error */ ··· 480 le32_to_cpu(desc->transfer_size)); 481 dump_dmastat(card, control); 482 } else if (test_bit(BIO_RW, &bio->bi_rw) && 483 - le32_to_cpu(desc->local_addr)>>9 == card->init_size) { 484 - card->init_size += le32_to_cpu(desc->transfer_size)>>9; 485 - if (card->init_size>>1 >= card->mm_size) { 486 dev_printk(KERN_INFO, &card->dev->dev, 487 "memory now initialised\n"); 488 set_userbit(card, MEMORY_INITIALIZED, 1); ··· 494 return_bio = bio; 495 } 496 497 - if (last) break; 498 } 499 500 if (debug & DEBUG_LED_ON_TRANSFER) ··· 517 out_unlock: 518 spin_unlock_bh(&card->lock); 519 520 - while(return_bio) { 521 struct bio *bio = return_bio; 522 523 return_bio = bio->bi_next; ··· 526 } 527 } 528 529 - /* 530 - ----------------------------------------------------------------------------------- 531 - -- mm_make_request 532 - ----------------------------------------------------------------------------------- 533 - */ 534 static int mm_make_request(struct request_queue *q, struct bio *bio) 535 { 536 struct cardinfo *card = q->queuedata; ··· 542 return 0; 543 } 544 545 - /* 546 - ----------------------------------------------------------------------------------- 547 - -- mm_interrupt 548 - ----------------------------------------------------------------------------------- 549 - */ 550 static irqreturn_t mm_interrupt(int irq, void *__card) 551 { 552 struct cardinfo *card = (struct cardinfo *) __card; ··· 555 if (!(dma_status & (DMASCR_ERROR_MASK | DMASCR_CHAIN_COMPLETE))) { 556 /* interrupt wasn't for me ... */ 557 return IRQ_NONE; 558 - } 559 560 /* clear COMPLETION interrupts */ 561 if (card->flags & UM_FLAG_NO_BYTE_STATUS) 562 writel(cpu_to_le32(DMASCR_DMA_COMPLETE|DMASCR_CHAIN_COMPLETE), 563 - card->csr_remap+ DMA_STATUS_CTRL); 564 else 565 writeb((DMASCR_DMA_COMPLETE|DMASCR_CHAIN_COMPLETE) >> 16, 566 - card->csr_remap+ DMA_STATUS_CTRL + 2); 567 568 /* log errors and clear interrupt status */ 569 if (dma_status & DMASCR_ANY_ERR) { ··· 573 574 stat = readb(card->csr_remap + MEMCTRLCMD_ERRSTATUS); 575 576 - data_log1 = le32_to_cpu(readl(card->csr_remap + ERROR_DATA_LOG)); 577 - data_log2 = le32_to_cpu(readl(card->csr_remap + ERROR_DATA_LOG + 4)); 578 - addr_log1 = le32_to_cpu(readl(card->csr_remap + ERROR_ADDR_LOG)); 579 addr_log2 = readb(card->csr_remap + ERROR_ADDR_LOG + 4); 580 581 count = readb(card->csr_remap + ERROR_COUNT); ··· 645 646 return IRQ_HANDLED; 647 } 648 - /* 649 - ----------------------------------------------------------------------------------- 650 - -- set_fault_to_battery_status 651 - ----------------------------------------------------------------------------------- 652 - */ 653 /* 654 * If both batteries are good, no LED 655 * If either battery has been warned, solid LED ··· 666 667 static void init_battery_timer(void); 668 669 - 670 - /* 671 - ----------------------------------------------------------------------------------- 672 - -- check_battery 673 - ----------------------------------------------------------------------------------- 674 - */ 675 static int check_battery(struct cardinfo *card, int battery, int status) 676 { 677 if (status != card->battery[battery].good) { ··· 694 695 return 0; 696 } 697 - /* 698 - ----------------------------------------------------------------------------------- 699 - -- check_batteries 700 - ----------------------------------------------------------------------------------- 701 - */ 702 static void check_batteries(struct cardinfo *card) 703 { 704 /* NOTE: this must *never* be called while the card ··· 735 736 init_battery_timer(); 737 } 738 - /* 739 - ----------------------------------------------------------------------------------- 740 - -- init_battery_timer 741 - ----------------------------------------------------------------------------------- 742 - */ 743 static void init_battery_timer(void) 744 { 745 init_timer(&battery_timer); ··· 743 battery_timer.expires = jiffies + (HZ * 60); 744 add_timer(&battery_timer); 745 } 746 - /* 747 - ----------------------------------------------------------------------------------- 748 - -- del_battery_timer 749 - ----------------------------------------------------------------------------------- 750 - */ 751 static void del_battery_timer(void) 752 { 753 del_timer(&battery_timer); 754 } 755 - /* 756 - ----------------------------------------------------------------------------------- 757 - -- mm_revalidate 758 - ----------------------------------------------------------------------------------- 759 - */ 760 /* 761 * Note no locks taken out here. In a worst case scenario, we could drop 762 * a chunk of system memory. But that should never happen, since validation ··· 781 } 782 783 /* 784 - ----------------------------------------------------------------------------------- 785 - -- mm_check_change 786 - ----------------------------------------------------------------------------------- 787 - Future support for removable devices 788 - */ 789 static int mm_check_change(struct gendisk *disk) 790 { 791 /* struct cardinfo *dev = disk->private_data; */ 792 return 0; 793 } 794 - /* 795 - ----------------------------------------------------------------------------------- 796 - -- mm_fops 797 - ----------------------------------------------------------------------------------- 798 - */ 799 static struct block_device_operations mm_fops = { 800 .owner = THIS_MODULE, 801 .getgeo = mm_getgeo, 802 - .revalidate_disk= mm_revalidate, 803 .media_changed = mm_check_change, 804 }; 805 - /* 806 - ----------------------------------------------------------------------------------- 807 - -- mm_pci_probe 808 - ----------------------------------------------------------------------------------- 809 - */ 810 - static int __devinit mm_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) 811 { 812 int ret = -ENODEV; 813 struct cardinfo *card = &cards[num_cards]; ··· 827 return -ENODEV; 828 829 dev_printk(KERN_INFO, &dev->dev, 830 - "Micro Memory(tm) controller found (PCI Mem Module (Battery Backup))\n"); 831 832 if (pci_set_dma_mask(dev, DMA_64BIT_MASK) && 833 pci_set_dma_mask(dev, DMA_32BIT_MASK)) { ··· 855 "CSR 0x%08lx -> 0x%p (0x%lx)\n", 856 csr_base, card->csr_remap, csr_len); 857 858 - switch(card->dev->device) { 859 case 0x5415: 860 card->flags |= UM_FLAG_NO_BYTE_STATUS | UM_FLAG_NO_BATTREG; 861 magic_number = 0x59; ··· 867 break; 868 869 case 0x6155: 870 - card->flags |= UM_FLAG_NO_BYTE_STATUS | UM_FLAG_NO_BATTREG | UM_FLAG_NO_BATT; 871 magic_number = 0x99; 872 break; 873 ··· 884 } 885 886 card->mm_pages[0].desc = pci_alloc_consistent(card->dev, 887 - PAGE_SIZE*2, 888 - &card->mm_pages[0].page_dma); 889 card->mm_pages[1].desc = pci_alloc_consistent(card->dev, 890 - PAGE_SIZE*2, 891 - &card->mm_pages[1].page_dma); 892 if (card->mm_pages[0].desc == NULL || 893 card->mm_pages[1].desc == NULL) { 894 dev_printk(KERN_ERR, &card->dev->dev, "alloc failed\n"); ··· 952 dev_printk(KERN_INFO, &card->dev->dev, 953 "Size %d KB, Battery 1 %s (%s), Battery 2 %s (%s)\n", 954 card->mm_size, 955 - (batt_status & BATTERY_1_DISABLED ? "Disabled" : "Enabled"), 956 card->battery[0].good ? "OK" : "FAILURE", 957 - (batt_status & BATTERY_2_DISABLED ? "Disabled" : "Enabled"), 958 card->battery[1].good ? "OK" : "FAILURE"); 959 960 set_fault_to_battery_status(card); ··· 969 data = ~data; 970 data += 1; 971 972 - if (request_irq(dev->irq, mm_interrupt, IRQF_SHARED, DRIVER_NAME, card)) { 973 dev_printk(KERN_ERR, &card->dev->dev, 974 "Unable to allocate IRQ\n"); 975 ret = -ENODEV; 976 - 977 goto failed_req_irq; 978 } 979 980 dev_printk(KERN_INFO, &card->dev->dev, 981 "Window size %d bytes, IRQ %d\n", data, dev->irq); 982 983 - spin_lock_init(&card->lock); 984 985 pci_set_drvdata(dev, card); 986 ··· 999 1000 if (!get_userbit(card, MEMORY_INITIALIZED)) { 1001 dev_printk(KERN_INFO, &card->dev->dev, 1002 - "memory NOT initialized. Consider over-writing whole device.\n"); 1003 card->init_size = 0; 1004 } else { 1005 dev_printk(KERN_INFO, &card->dev->dev, ··· 1030 1031 return ret; 1032 } 1033 - /* 1034 - ----------------------------------------------------------------------------------- 1035 - -- mm_pci_remove 1036 - ----------------------------------------------------------------------------------- 1037 - */ 1038 static void mm_pci_remove(struct pci_dev *dev) 1039 { 1040 struct cardinfo *card = pci_get_drvdata(dev); ··· 1054 } 1055 1056 static const struct pci_device_id mm_pci_ids[] = { 1057 - {PCI_DEVICE(PCI_VENDOR_ID_MICRO_MEMORY,PCI_DEVICE_ID_MICRO_MEMORY_5415CN)}, 1058 - {PCI_DEVICE(PCI_VENDOR_ID_MICRO_MEMORY,PCI_DEVICE_ID_MICRO_MEMORY_5425CN)}, 1059 - {PCI_DEVICE(PCI_VENDOR_ID_MICRO_MEMORY,PCI_DEVICE_ID_MICRO_MEMORY_6155)}, 1060 { 1061 .vendor = 0x8086, 1062 .device = 0xB555, 1063 - .subvendor= 0x1332, 1064 - .subdevice= 0x5460, 1065 - .class = 0x050000, 1066 - .class_mask= 0, 1067 }, { /* end: all zeroes */ } 1068 }; 1069 ··· 1075 .probe = mm_pci_probe, 1076 .remove = mm_pci_remove, 1077 }; 1078 - 1079 - /* 1080 - ----------------------------------------------------------------------------------- 1081 - -- mm_init 1082 - ----------------------------------------------------------------------------------- 1083 - */ 1084 1085 static int __init mm_init(void) 1086 { ··· 1122 put_disk(mm_gendisk[i]); 1123 return -ENOMEM; 1124 } 1125 - /* 1126 - ----------------------------------------------------------------------------------- 1127 - -- mm_cleanup 1128 - ----------------------------------------------------------------------------------- 1129 - */ 1130 static void __exit mm_cleanup(void) 1131 { 1132 int i; 1133 1134 del_battery_timer(); 1135 1136 - for (i=0; i < num_cards ; i++) { 1137 del_gendisk(mm_gendisk[i]); 1138 put_disk(mm_gendisk[i]); 1139 }
··· 34 * - set initialised bit then. 35 */ 36 37 + #undef DEBUG /* #define DEBUG if you want debugging info (pr_debug) */ 38 #include <linux/fs.h> 39 #include <linux/bio.h> 40 #include <linux/kernel.h> ··· 143 static struct block_device_operations mm_fops; 144 static struct timer_list battery_timer; 145 146 + static int num_cards; 147 148 static struct gendisk *mm_gendisk[MM_MAXCARDS]; 149 150 static void check_batteries(struct cardinfo *card); 151 152 static int get_userbit(struct cardinfo *card, int bit) 153 { 154 unsigned char led; ··· 161 led = readb(card->csr_remap + MEMCTRLCMD_LEDCTRL); 162 return led & bit; 163 } 164 + 165 static int set_userbit(struct cardinfo *card, int bit, unsigned char state) 166 { 167 unsigned char led; ··· 179 180 return 0; 181 } 182 + 183 /* 184 * NOTE: For the power LED, use the LED_POWER_* macros since they differ 185 */ ··· 203 } 204 205 #ifdef MM_DIAG 206 static void dump_regs(struct cardinfo *card) 207 { 208 unsigned char *p; ··· 224 } 225 } 226 #endif 227 + 228 static void dump_dmastat(struct cardinfo *card, unsigned int dmastat) 229 { 230 dev_printk(KERN_DEBUG, &card->dev->dev, "DMAstat - "); 231 if (dmastat & DMASCR_ANY_ERR) 232 + printk(KERN_CONT "ANY_ERR "); 233 if (dmastat & DMASCR_MBE_ERR) 234 + printk(KERN_CONT "MBE_ERR "); 235 if (dmastat & DMASCR_PARITY_ERR_REP) 236 + printk(KERN_CONT "PARITY_ERR_REP "); 237 if (dmastat & DMASCR_PARITY_ERR_DET) 238 + printk(KERN_CONT "PARITY_ERR_DET "); 239 if (dmastat & DMASCR_SYSTEM_ERR_SIG) 240 + printk(KERN_CONT "SYSTEM_ERR_SIG "); 241 if (dmastat & DMASCR_TARGET_ABT) 242 + printk(KERN_CONT "TARGET_ABT "); 243 if (dmastat & DMASCR_MASTER_ABT) 244 + printk(KERN_CONT "MASTER_ABT "); 245 if (dmastat & DMASCR_CHAIN_COMPLETE) 246 + printk(KERN_CONT "CHAIN_COMPLETE "); 247 if (dmastat & DMASCR_DMA_COMPLETE) 248 + printk(KERN_CONT "DMA_COMPLETE "); 249 printk("\n"); 250 } 251 ··· 286 287 /* make the last descriptor end the chain */ 288 page = &card->mm_pages[card->Active]; 289 + pr_debug("start_io: %d %d->%d\n", 290 + card->Active, page->headcnt, page->cnt - 1); 291 desc = &page->desc[page->cnt-1]; 292 293 desc->control_bits |= cpu_to_le32(DMASCR_CHAIN_COMP_EN); ··· 310 writel(0, card->csr_remap + DMA_SEMAPHORE_ADDR); 311 writel(0, card->csr_remap + DMA_SEMAPHORE_ADDR + 4); 312 313 + offset = ((char *)desc) - ((char *)page->desc); 314 + writel(cpu_to_le32((page->page_dma+offset) & 0xffffffff), 315 card->csr_remap + DMA_DESCRIPTOR_ADDR); 316 /* Force the value to u64 before shifting otherwise >> 32 is undefined C 317 * and on some ports will do nothing ! */ ··· 352 page->cnt = 0; 353 page->headcnt = 0; 354 page->bio = NULL; 355 + page->biotail = &page->bio; 356 } 357 358 static void mm_unplug_device(struct request_queue *q) ··· 408 vec->bv_page, 409 vec->bv_offset, 410 len, 411 + (rw == READ) ? 412 PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE); 413 414 p = &card->mm_pages[card->Ready]; ··· 427 desc->pci_addr = cpu_to_le64((u64)desc->data_dma_handle); 428 desc->local_addr = cpu_to_le64(card->current_sector << 9); 429 desc->transfer_size = cpu_to_le32(len); 430 + offset = (((char *)&desc->sem_control_bits) - ((char *)p->desc)); 431 desc->sem_addr = cpu_to_le64((u64)(p->page_dma+offset)); 432 desc->zero1 = desc->zero2 = 0; 433 + offset = (((char *)(desc+1)) - ((char *)p->desc)); 434 desc->next_desc_addr = cpu_to_le64(p->page_dma+offset); 435 desc->control_bits = cpu_to_le32(DMASCR_GO|DMASCR_ERR_INT_EN| 436 DMASCR_PARITY_INT_EN| ··· 455 /* check if any of the requests in the page are DMA_COMPLETE, 456 * and deal with them appropriately. 457 * If we find a descriptor without DMA_COMPLETE in the semaphore, then 458 + * dma must have hit an error on that descriptor, so use dma_status 459 + * instead and assume that all following descriptors must be re-tried. 460 */ 461 struct mm_page *page; 462 + struct bio *return_bio = NULL; 463 struct cardinfo *card = (struct cardinfo *)data; 464 unsigned int dma_status = card->dma_status; 465 ··· 472 struct bio *bio = page->bio; 473 struct mm_dma_desc *desc = &page->desc[page->headcnt]; 474 int control = le32_to_cpu(desc->sem_control_bits); 475 + int last = 0; 476 int idx; 477 478 if (!(control & DMASCR_DMA_COMPLETE)) { 479 control = dma_status; 480 + last = 1; 481 } 482 page->headcnt++; 483 idx = page->idx; ··· 489 } 490 491 pci_unmap_page(card->dev, desc->data_dma_handle, 492 + bio_iovec_idx(bio, idx)->bv_len, 493 + (control & DMASCR_TRANSFER_READ) ? 494 PCI_DMA_TODEVICE : PCI_DMA_FROMDEVICE); 495 if (control & DMASCR_HARD_ERROR) { 496 /* error */ ··· 501 le32_to_cpu(desc->transfer_size)); 502 dump_dmastat(card, control); 503 } else if (test_bit(BIO_RW, &bio->bi_rw) && 504 + le32_to_cpu(desc->local_addr) >> 9 == 505 + card->init_size) { 506 + card->init_size += le32_to_cpu(desc->transfer_size) >> 9; 507 + if (card->init_size >> 1 >= card->mm_size) { 508 dev_printk(KERN_INFO, &card->dev->dev, 509 "memory now initialised\n"); 510 set_userbit(card, MEMORY_INITIALIZED, 1); ··· 514 return_bio = bio; 515 } 516 517 + if (last) 518 + break; 519 } 520 521 if (debug & DEBUG_LED_ON_TRANSFER) ··· 536 out_unlock: 537 spin_unlock_bh(&card->lock); 538 539 + while (return_bio) { 540 struct bio *bio = return_bio; 541 542 return_bio = bio->bi_next; ··· 545 } 546 } 547 548 static int mm_make_request(struct request_queue *q, struct bio *bio) 549 { 550 struct cardinfo *card = q->queuedata; ··· 566 return 0; 567 } 568 569 static irqreturn_t mm_interrupt(int irq, void *__card) 570 { 571 struct cardinfo *card = (struct cardinfo *) __card; ··· 584 if (!(dma_status & (DMASCR_ERROR_MASK | DMASCR_CHAIN_COMPLETE))) { 585 /* interrupt wasn't for me ... */ 586 return IRQ_NONE; 587 + } 588 589 /* clear COMPLETION interrupts */ 590 if (card->flags & UM_FLAG_NO_BYTE_STATUS) 591 writel(cpu_to_le32(DMASCR_DMA_COMPLETE|DMASCR_CHAIN_COMPLETE), 592 + card->csr_remap + DMA_STATUS_CTRL); 593 else 594 writeb((DMASCR_DMA_COMPLETE|DMASCR_CHAIN_COMPLETE) >> 16, 595 + card->csr_remap + DMA_STATUS_CTRL + 2); 596 597 /* log errors and clear interrupt status */ 598 if (dma_status & DMASCR_ANY_ERR) { ··· 602 603 stat = readb(card->csr_remap + MEMCTRLCMD_ERRSTATUS); 604 605 + data_log1 = le32_to_cpu(readl(card->csr_remap + 606 + ERROR_DATA_LOG)); 607 + data_log2 = le32_to_cpu(readl(card->csr_remap + 608 + ERROR_DATA_LOG + 4)); 609 + addr_log1 = le32_to_cpu(readl(card->csr_remap + 610 + ERROR_ADDR_LOG)); 611 addr_log2 = readb(card->csr_remap + ERROR_ADDR_LOG + 4); 612 613 count = readb(card->csr_remap + ERROR_COUNT); ··· 671 672 return IRQ_HANDLED; 673 } 674 + 675 /* 676 * If both batteries are good, no LED 677 * If either battery has been warned, solid LED ··· 696 697 static void init_battery_timer(void); 698 699 static int check_battery(struct cardinfo *card, int battery, int status) 700 { 701 if (status != card->battery[battery].good) { ··· 730 731 return 0; 732 } 733 + 734 static void check_batteries(struct cardinfo *card) 735 { 736 /* NOTE: this must *never* be called while the card ··· 775 776 init_battery_timer(); 777 } 778 + 779 static void init_battery_timer(void) 780 { 781 init_timer(&battery_timer); ··· 787 battery_timer.expires = jiffies + (HZ * 60); 788 add_timer(&battery_timer); 789 } 790 + 791 static void del_battery_timer(void) 792 { 793 del_timer(&battery_timer); 794 } 795 + 796 /* 797 * Note no locks taken out here. In a worst case scenario, we could drop 798 * a chunk of system memory. But that should never happen, since validation ··· 833 } 834 835 /* 836 + * Future support for removable devices 837 + */ 838 static int mm_check_change(struct gendisk *disk) 839 { 840 /* struct cardinfo *dev = disk->private_data; */ 841 return 0; 842 } 843 + 844 static struct block_device_operations mm_fops = { 845 .owner = THIS_MODULE, 846 .getgeo = mm_getgeo, 847 + .revalidate_disk = mm_revalidate, 848 .media_changed = mm_check_change, 849 }; 850 + 851 + static int __devinit mm_pci_probe(struct pci_dev *dev, 852 + const struct pci_device_id *id) 853 { 854 int ret = -ENODEV; 855 struct cardinfo *card = &cards[num_cards]; ··· 889 return -ENODEV; 890 891 dev_printk(KERN_INFO, &dev->dev, 892 + "Micro Memory(tm) controller found (PCI Mem Module (Battery Backup))\n"); 893 894 if (pci_set_dma_mask(dev, DMA_64BIT_MASK) && 895 pci_set_dma_mask(dev, DMA_32BIT_MASK)) { ··· 917 "CSR 0x%08lx -> 0x%p (0x%lx)\n", 918 csr_base, card->csr_remap, csr_len); 919 920 + switch (card->dev->device) { 921 case 0x5415: 922 card->flags |= UM_FLAG_NO_BYTE_STATUS | UM_FLAG_NO_BATTREG; 923 magic_number = 0x59; ··· 929 break; 930 931 case 0x6155: 932 + card->flags |= UM_FLAG_NO_BYTE_STATUS | 933 + UM_FLAG_NO_BATTREG | UM_FLAG_NO_BATT; 934 magic_number = 0x99; 935 break; 936 ··· 945 } 946 947 card->mm_pages[0].desc = pci_alloc_consistent(card->dev, 948 + PAGE_SIZE * 2, 949 + &card->mm_pages[0].page_dma); 950 card->mm_pages[1].desc = pci_alloc_consistent(card->dev, 951 + PAGE_SIZE * 2, 952 + &card->mm_pages[1].page_dma); 953 if (card->mm_pages[0].desc == NULL || 954 card->mm_pages[1].desc == NULL) { 955 dev_printk(KERN_ERR, &card->dev->dev, "alloc failed\n"); ··· 1013 dev_printk(KERN_INFO, &card->dev->dev, 1014 "Size %d KB, Battery 1 %s (%s), Battery 2 %s (%s)\n", 1015 card->mm_size, 1016 + batt_status & BATTERY_1_DISABLED ? "Disabled" : "Enabled", 1017 card->battery[0].good ? "OK" : "FAILURE", 1018 + batt_status & BATTERY_2_DISABLED ? "Disabled" : "Enabled", 1019 card->battery[1].good ? "OK" : "FAILURE"); 1020 1021 set_fault_to_battery_status(card); ··· 1030 data = ~data; 1031 data += 1; 1032 1033 + if (request_irq(dev->irq, mm_interrupt, IRQF_SHARED, DRIVER_NAME, 1034 + card)) { 1035 dev_printk(KERN_ERR, &card->dev->dev, 1036 "Unable to allocate IRQ\n"); 1037 ret = -ENODEV; 1038 goto failed_req_irq; 1039 } 1040 1041 dev_printk(KERN_INFO, &card->dev->dev, 1042 "Window size %d bytes, IRQ %d\n", data, dev->irq); 1043 1044 + spin_lock_init(&card->lock); 1045 1046 pci_set_drvdata(dev, card); 1047 ··· 1060 1061 if (!get_userbit(card, MEMORY_INITIALIZED)) { 1062 dev_printk(KERN_INFO, &card->dev->dev, 1063 + "memory NOT initialized. Consider over-writing whole device.\n"); 1064 card->init_size = 0; 1065 } else { 1066 dev_printk(KERN_INFO, &card->dev->dev, ··· 1091 1092 return ret; 1093 } 1094 + 1095 static void mm_pci_remove(struct pci_dev *dev) 1096 { 1097 struct cardinfo *card = pci_get_drvdata(dev); ··· 1119 } 1120 1121 static const struct pci_device_id mm_pci_ids[] = { 1122 + {PCI_DEVICE(PCI_VENDOR_ID_MICRO_MEMORY, PCI_DEVICE_ID_MICRO_MEMORY_5415CN)}, 1123 + {PCI_DEVICE(PCI_VENDOR_ID_MICRO_MEMORY, PCI_DEVICE_ID_MICRO_MEMORY_5425CN)}, 1124 + {PCI_DEVICE(PCI_VENDOR_ID_MICRO_MEMORY, PCI_DEVICE_ID_MICRO_MEMORY_6155)}, 1125 { 1126 .vendor = 0x8086, 1127 .device = 0xB555, 1128 + .subvendor = 0x1332, 1129 + .subdevice = 0x5460, 1130 + .class = 0x050000, 1131 + .class_mask = 0, 1132 }, { /* end: all zeroes */ } 1133 }; 1134 ··· 1140 .probe = mm_pci_probe, 1141 .remove = mm_pci_remove, 1142 }; 1143 1144 static int __init mm_init(void) 1145 { ··· 1193 put_disk(mm_gendisk[i]); 1194 return -ENOMEM; 1195 } 1196 + 1197 static void __exit mm_cleanup(void) 1198 { 1199 int i; 1200 1201 del_battery_timer(); 1202 1203 + for (i = 0; i < num_cards ; i++) { 1204 del_gendisk(mm_gendisk[i]); 1205 put_disk(mm_gendisk[i]); 1206 }