.. | .. |
---|
252 | 252 | |
---|
253 | 253 | char device_name[25]; /* device instance name */ |
---|
254 | 254 | |
---|
255 | | - unsigned int bus_type; /* expansion bus type (ISA,EISA,PCI) */ |
---|
256 | 255 | unsigned char bus; /* expansion bus number (zero based) */ |
---|
257 | 256 | unsigned char function; /* PCI device number */ |
---|
258 | 257 | |
---|
.. | .. |
---|
943 | 942 | return 0; |
---|
944 | 943 | } |
---|
945 | 944 | |
---|
946 | | -/** |
---|
| 945 | +/* |
---|
947 | 946 | * line discipline callback wrappers |
---|
948 | 947 | * |
---|
949 | 948 | * The wrappers maintain line discipline references |
---|
.. | .. |
---|
2959 | 2958 | if (mgsl_paranoia_check(info, tty->name, "mgsl_ioctl")) |
---|
2960 | 2959 | return -ENODEV; |
---|
2961 | 2960 | |
---|
2962 | | - if ((cmd != TIOCGSERIAL) && (cmd != TIOCSSERIAL) && |
---|
2963 | | - (cmd != TIOCMIWAIT)) { |
---|
| 2961 | + if (cmd != TIOCMIWAIT) { |
---|
2964 | 2962 | if (tty_io_error(tty)) |
---|
2965 | 2963 | return -EIO; |
---|
2966 | 2964 | } |
---|
.. | .. |
---|
3433 | 3431 | char stat_buf[30]; |
---|
3434 | 3432 | unsigned long flags; |
---|
3435 | 3433 | |
---|
3436 | | - if (info->bus_type == MGSL_BUS_TYPE_PCI) { |
---|
3437 | | - seq_printf(m, "%s:PCI io:%04X irq:%d mem:%08X lcr:%08X", |
---|
3438 | | - info->device_name, info->io_base, info->irq_level, |
---|
3439 | | - info->phys_memory_base, info->phys_lcr_base); |
---|
3440 | | - } else { |
---|
3441 | | - seq_printf(m, "%s:(E)ISA io:%04X irq:%d dma:%d", |
---|
3442 | | - info->device_name, info->io_base, |
---|
3443 | | - info->irq_level, info->dma_level); |
---|
3444 | | - } |
---|
| 3434 | + seq_printf(m, "%s:PCI io:%04X irq:%d mem:%08X lcr:%08X", |
---|
| 3435 | + info->device_name, info->io_base, info->irq_level, |
---|
| 3436 | + info->phys_memory_base, info->phys_lcr_base); |
---|
3445 | 3437 | |
---|
3446 | 3438 | /* output current serial signal states */ |
---|
3447 | 3439 | spin_lock_irqsave(&info->irq_spinlock,flags); |
---|
.. | .. |
---|
3557 | 3549 | if ( info->max_frame_size % DMABUFFERSIZE ) |
---|
3558 | 3550 | BuffersPerFrame++; |
---|
3559 | 3551 | |
---|
3560 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) { |
---|
3561 | | - /* |
---|
3562 | | - * The PCI adapter has 256KBytes of shared memory to use. |
---|
3563 | | - * This is 64 PAGE_SIZE buffers. |
---|
3564 | | - * |
---|
3565 | | - * The first page is used for padding at this time so the |
---|
3566 | | - * buffer list does not begin at offset 0 of the PCI |
---|
3567 | | - * adapter's shared memory. |
---|
3568 | | - * |
---|
3569 | | - * The 2nd page is used for the buffer list. A 4K buffer |
---|
3570 | | - * list can hold 128 DMA_BUFFER structures at 32 bytes |
---|
3571 | | - * each. |
---|
3572 | | - * |
---|
3573 | | - * This leaves 62 4K pages. |
---|
3574 | | - * |
---|
3575 | | - * The next N pages are used for transmit frame(s). We |
---|
3576 | | - * reserve enough 4K page blocks to hold the required |
---|
3577 | | - * number of transmit dma buffers (num_tx_dma_buffers), |
---|
3578 | | - * each of MaxFrameSize size. |
---|
3579 | | - * |
---|
3580 | | - * Of the remaining pages (62-N), determine how many can |
---|
3581 | | - * be used to receive full MaxFrameSize inbound frames |
---|
3582 | | - */ |
---|
3583 | | - info->tx_buffer_count = info->num_tx_dma_buffers * BuffersPerFrame; |
---|
3584 | | - info->rx_buffer_count = 62 - info->tx_buffer_count; |
---|
3585 | | - } else { |
---|
3586 | | - /* Calculate the number of PAGE_SIZE buffers needed for */ |
---|
3587 | | - /* receive and transmit DMA buffers. */ |
---|
3588 | | - |
---|
3589 | | - |
---|
3590 | | - /* Calculate the number of DMA buffers necessary to */ |
---|
3591 | | - /* hold 7 max size receive frames and one max size transmit frame. */ |
---|
3592 | | - /* The receive buffer count is bumped by one so we avoid an */ |
---|
3593 | | - /* End of List condition if all receive buffers are used when */ |
---|
3594 | | - /* using linked list DMA buffers. */ |
---|
3595 | | - |
---|
3596 | | - info->tx_buffer_count = info->num_tx_dma_buffers * BuffersPerFrame; |
---|
3597 | | - info->rx_buffer_count = (BuffersPerFrame * MAXRXFRAMES) + 6; |
---|
3598 | | - |
---|
3599 | | - /* |
---|
3600 | | - * limit total TxBuffers & RxBuffers to 62 4K total |
---|
3601 | | - * (ala PCI Allocation) |
---|
3602 | | - */ |
---|
3603 | | - |
---|
3604 | | - if ( (info->tx_buffer_count + info->rx_buffer_count) > 62 ) |
---|
3605 | | - info->rx_buffer_count = 62 - info->tx_buffer_count; |
---|
3606 | | - |
---|
3607 | | - } |
---|
| 3552 | + /* |
---|
| 3553 | + * The PCI adapter has 256KBytes of shared memory to use. This is 64 |
---|
| 3554 | + * PAGE_SIZE buffers. |
---|
| 3555 | + * |
---|
| 3556 | + * The first page is used for padding at this time so the buffer list |
---|
| 3557 | + * does not begin at offset 0 of the PCI adapter's shared memory. |
---|
| 3558 | + * |
---|
| 3559 | + * The 2nd page is used for the buffer list. A 4K buffer list can hold |
---|
| 3560 | + * 128 DMA_BUFFER structures at 32 bytes each. |
---|
| 3561 | + * |
---|
| 3562 | + * This leaves 62 4K pages. |
---|
| 3563 | + * |
---|
| 3564 | + * The next N pages are used for transmit frame(s). We reserve enough |
---|
| 3565 | + * 4K page blocks to hold the required number of transmit dma buffers |
---|
| 3566 | + * (num_tx_dma_buffers), each of MaxFrameSize size. |
---|
| 3567 | + * |
---|
| 3568 | + * Of the remaining pages (62-N), determine how many can be used to |
---|
| 3569 | + * receive full MaxFrameSize inbound frames |
---|
| 3570 | + */ |
---|
| 3571 | + info->tx_buffer_count = info->num_tx_dma_buffers * BuffersPerFrame; |
---|
| 3572 | + info->rx_buffer_count = 62 - info->tx_buffer_count; |
---|
3608 | 3573 | |
---|
3609 | 3574 | if ( debug_level >= DEBUG_LEVEL_INFO ) |
---|
3610 | 3575 | printk("%s(%d):Allocating %d TX and %d RX DMA buffers.\n", |
---|
.. | .. |
---|
3653 | 3618 | { |
---|
3654 | 3619 | unsigned int i; |
---|
3655 | 3620 | |
---|
3656 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) { |
---|
3657 | | - /* PCI adapter uses shared memory. */ |
---|
3658 | | - info->buffer_list = info->memory_base + info->last_mem_alloc; |
---|
3659 | | - info->buffer_list_phys = info->last_mem_alloc; |
---|
3660 | | - info->last_mem_alloc += BUFFERLISTSIZE; |
---|
3661 | | - } else { |
---|
3662 | | - /* ISA adapter uses system memory. */ |
---|
3663 | | - /* The buffer lists are allocated as a common buffer that both */ |
---|
3664 | | - /* the processor and adapter can access. This allows the driver to */ |
---|
3665 | | - /* inspect portions of the buffer while other portions are being */ |
---|
3666 | | - /* updated by the adapter using Bus Master DMA. */ |
---|
3667 | | - |
---|
3668 | | - info->buffer_list = dma_alloc_coherent(NULL, BUFFERLISTSIZE, &info->buffer_list_dma_addr, GFP_KERNEL); |
---|
3669 | | - if (info->buffer_list == NULL) |
---|
3670 | | - return -ENOMEM; |
---|
3671 | | - info->buffer_list_phys = (u32)(info->buffer_list_dma_addr); |
---|
3672 | | - } |
---|
| 3621 | + /* PCI adapter uses shared memory. */ |
---|
| 3622 | + info->buffer_list = info->memory_base + info->last_mem_alloc; |
---|
| 3623 | + info->buffer_list_phys = info->last_mem_alloc; |
---|
| 3624 | + info->last_mem_alloc += BUFFERLISTSIZE; |
---|
3673 | 3625 | |
---|
3674 | 3626 | /* We got the memory for the buffer entry lists. */ |
---|
3675 | 3627 | /* Initialize the memory block to all zeros. */ |
---|
.. | .. |
---|
3735 | 3687 | */ |
---|
3736 | 3688 | static void mgsl_free_buffer_list_memory( struct mgsl_struct *info ) |
---|
3737 | 3689 | { |
---|
3738 | | - if (info->buffer_list && info->bus_type != MGSL_BUS_TYPE_PCI) |
---|
3739 | | - dma_free_coherent(NULL, BUFFERLISTSIZE, info->buffer_list, info->buffer_list_dma_addr); |
---|
3740 | | - |
---|
3741 | 3690 | info->buffer_list = NULL; |
---|
3742 | 3691 | info->rx_buffer_list = NULL; |
---|
3743 | 3692 | info->tx_buffer_list = NULL; |
---|
.. | .. |
---|
3763 | 3712 | static int mgsl_alloc_frame_memory(struct mgsl_struct *info,DMABUFFERENTRY *BufferList,int Buffercount) |
---|
3764 | 3713 | { |
---|
3765 | 3714 | int i; |
---|
3766 | | - u32 phys_addr; |
---|
3767 | 3715 | |
---|
3768 | 3716 | /* Allocate page sized buffers for the receive buffer list */ |
---|
3769 | 3717 | |
---|
3770 | 3718 | for ( i = 0; i < Buffercount; i++ ) { |
---|
3771 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) { |
---|
3772 | | - /* PCI adapter uses shared memory buffers. */ |
---|
3773 | | - BufferList[i].virt_addr = info->memory_base + info->last_mem_alloc; |
---|
3774 | | - phys_addr = info->last_mem_alloc; |
---|
3775 | | - info->last_mem_alloc += DMABUFFERSIZE; |
---|
3776 | | - } else { |
---|
3777 | | - /* ISA adapter uses system memory. */ |
---|
3778 | | - BufferList[i].virt_addr = dma_alloc_coherent(NULL, DMABUFFERSIZE, &BufferList[i].dma_addr, GFP_KERNEL); |
---|
3779 | | - if (BufferList[i].virt_addr == NULL) |
---|
3780 | | - return -ENOMEM; |
---|
3781 | | - phys_addr = (u32)(BufferList[i].dma_addr); |
---|
3782 | | - } |
---|
3783 | | - BufferList[i].phys_addr = phys_addr; |
---|
| 3719 | + BufferList[i].virt_addr = info->memory_base + info->last_mem_alloc; |
---|
| 3720 | + BufferList[i].phys_addr = info->last_mem_alloc; |
---|
| 3721 | + info->last_mem_alloc += DMABUFFERSIZE; |
---|
3784 | 3722 | } |
---|
3785 | 3723 | |
---|
3786 | 3724 | return 0; |
---|
.. | .. |
---|
3808 | 3746 | if ( BufferList ) { |
---|
3809 | 3747 | for ( i = 0 ; i < Buffercount ; i++ ) { |
---|
3810 | 3748 | if ( BufferList[i].virt_addr ) { |
---|
3811 | | - if ( info->bus_type != MGSL_BUS_TYPE_PCI ) |
---|
3812 | | - dma_free_coherent(NULL, DMABUFFERSIZE, BufferList[i].virt_addr, BufferList[i].dma_addr); |
---|
3813 | 3749 | BufferList[i].virt_addr = NULL; |
---|
3814 | 3750 | } |
---|
3815 | 3751 | } |
---|
.. | .. |
---|
4041 | 3977 | } |
---|
4042 | 3978 | info->irq_requested = true; |
---|
4043 | 3979 | |
---|
4044 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) { |
---|
4045 | | - if (request_mem_region(info->phys_memory_base,0x40000,"synclink") == NULL) { |
---|
4046 | | - printk( "%s(%d):mem addr conflict device %s Addr=%08X\n", |
---|
4047 | | - __FILE__,__LINE__,info->device_name, info->phys_memory_base); |
---|
4048 | | - goto errout; |
---|
4049 | | - } |
---|
4050 | | - info->shared_mem_requested = true; |
---|
4051 | | - if (request_mem_region(info->phys_lcr_base + info->lcr_offset,128,"synclink") == NULL) { |
---|
4052 | | - printk( "%s(%d):lcr mem addr conflict device %s Addr=%08X\n", |
---|
4053 | | - __FILE__,__LINE__,info->device_name, info->phys_lcr_base + info->lcr_offset); |
---|
4054 | | - goto errout; |
---|
4055 | | - } |
---|
4056 | | - info->lcr_mem_requested = true; |
---|
4057 | | - |
---|
4058 | | - info->memory_base = ioremap_nocache(info->phys_memory_base, |
---|
4059 | | - 0x40000); |
---|
4060 | | - if (!info->memory_base) { |
---|
4061 | | - printk( "%s(%d):Can't map shared memory on device %s MemAddr=%08X\n", |
---|
4062 | | - __FILE__,__LINE__,info->device_name, info->phys_memory_base ); |
---|
4063 | | - goto errout; |
---|
4064 | | - } |
---|
4065 | | - |
---|
4066 | | - if ( !mgsl_memory_test(info) ) { |
---|
4067 | | - printk( "%s(%d):Failed shared memory test %s MemAddr=%08X\n", |
---|
4068 | | - __FILE__,__LINE__,info->device_name, info->phys_memory_base ); |
---|
4069 | | - goto errout; |
---|
4070 | | - } |
---|
4071 | | - |
---|
4072 | | - info->lcr_base = ioremap_nocache(info->phys_lcr_base, |
---|
4073 | | - PAGE_SIZE); |
---|
4074 | | - if (!info->lcr_base) { |
---|
4075 | | - printk( "%s(%d):Can't map LCR memory on device %s MemAddr=%08X\n", |
---|
4076 | | - __FILE__,__LINE__,info->device_name, info->phys_lcr_base ); |
---|
4077 | | - goto errout; |
---|
4078 | | - } |
---|
4079 | | - info->lcr_base += info->lcr_offset; |
---|
4080 | | - |
---|
4081 | | - } else { |
---|
4082 | | - /* claim DMA channel */ |
---|
4083 | | - |
---|
4084 | | - if (request_dma(info->dma_level,info->device_name) < 0){ |
---|
4085 | | - printk( "%s(%d):Can't request DMA channel on device %s DMA=%d\n", |
---|
4086 | | - __FILE__,__LINE__,info->device_name, info->dma_level ); |
---|
4087 | | - goto errout; |
---|
4088 | | - } |
---|
4089 | | - info->dma_requested = true; |
---|
4090 | | - |
---|
4091 | | - /* ISA adapter uses bus master DMA */ |
---|
4092 | | - set_dma_mode(info->dma_level,DMA_MODE_CASCADE); |
---|
4093 | | - enable_dma(info->dma_level); |
---|
| 3980 | + if (request_mem_region(info->phys_memory_base,0x40000,"synclink") == NULL) { |
---|
| 3981 | + printk( "%s(%d):mem addr conflict device %s Addr=%08X\n", |
---|
| 3982 | + __FILE__,__LINE__,info->device_name, info->phys_memory_base); |
---|
| 3983 | + goto errout; |
---|
4094 | 3984 | } |
---|
4095 | | - |
---|
| 3985 | + info->shared_mem_requested = true; |
---|
| 3986 | + if (request_mem_region(info->phys_lcr_base + info->lcr_offset,128,"synclink") == NULL) { |
---|
| 3987 | + printk( "%s(%d):lcr mem addr conflict device %s Addr=%08X\n", |
---|
| 3988 | + __FILE__,__LINE__,info->device_name, info->phys_lcr_base + info->lcr_offset); |
---|
| 3989 | + goto errout; |
---|
| 3990 | + } |
---|
| 3991 | + info->lcr_mem_requested = true; |
---|
| 3992 | + |
---|
| 3993 | + info->memory_base = ioremap(info->phys_memory_base, 0x40000); |
---|
| 3994 | + if (!info->memory_base) { |
---|
| 3995 | + printk( "%s(%d):Can't map shared memory on device %s MemAddr=%08X\n", |
---|
| 3996 | + __FILE__,__LINE__,info->device_name, info->phys_memory_base ); |
---|
| 3997 | + goto errout; |
---|
| 3998 | + } |
---|
| 3999 | + |
---|
| 4000 | + if ( !mgsl_memory_test(info) ) { |
---|
| 4001 | + printk( "%s(%d):Failed shared memory test %s MemAddr=%08X\n", |
---|
| 4002 | + __FILE__,__LINE__,info->device_name, info->phys_memory_base ); |
---|
| 4003 | + goto errout; |
---|
| 4004 | + } |
---|
| 4005 | + |
---|
| 4006 | + info->lcr_base = ioremap(info->phys_lcr_base, PAGE_SIZE); |
---|
| 4007 | + if (!info->lcr_base) { |
---|
| 4008 | + printk( "%s(%d):Can't map LCR memory on device %s MemAddr=%08X\n", |
---|
| 4009 | + __FILE__,__LINE__,info->device_name, info->phys_lcr_base ); |
---|
| 4010 | + goto errout; |
---|
| 4011 | + } |
---|
| 4012 | + info->lcr_base += info->lcr_offset; |
---|
| 4013 | + |
---|
4096 | 4014 | if ( mgsl_allocate_dma_buffers(info) < 0 ) { |
---|
4097 | 4015 | printk( "%s(%d):Can't allocate DMA buffers on device %s DMA=%d\n", |
---|
4098 | 4016 | __FILE__,__LINE__,info->device_name, info->dma_level ); |
---|
.. | .. |
---|
4201 | 4119 | else if ( info->max_frame_size > 65535 ) |
---|
4202 | 4120 | info->max_frame_size = 65535; |
---|
4203 | 4121 | |
---|
4204 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) { |
---|
4205 | | - printk( "SyncLink PCI v%d %s: IO=%04X IRQ=%d Mem=%08X,%08X MaxFrameSize=%u\n", |
---|
4206 | | - info->hw_version + 1, info->device_name, info->io_base, info->irq_level, |
---|
4207 | | - info->phys_memory_base, info->phys_lcr_base, |
---|
4208 | | - info->max_frame_size ); |
---|
4209 | | - } else { |
---|
4210 | | - printk( "SyncLink ISA %s: IO=%04X IRQ=%d DMA=%d MaxFrameSize=%u\n", |
---|
4211 | | - info->device_name, info->io_base, info->irq_level, info->dma_level, |
---|
4212 | | - info->max_frame_size ); |
---|
4213 | | - } |
---|
| 4122 | + printk( "SyncLink PCI v%d %s: IO=%04X IRQ=%d Mem=%08X,%08X MaxFrameSize=%u\n", |
---|
| 4123 | + info->hw_version + 1, info->device_name, info->io_base, info->irq_level, |
---|
| 4124 | + info->phys_memory_base, info->phys_lcr_base, |
---|
| 4125 | + info->max_frame_size ); |
---|
4214 | 4126 | |
---|
4215 | 4127 | #if SYNCLINK_GENERIC_HDLC |
---|
4216 | 4128 | hdlcdev_init(info); |
---|
.. | .. |
---|
4326 | 4238 | return 0; |
---|
4327 | 4239 | } |
---|
4328 | 4240 | |
---|
4329 | | -/* enumerate user specified ISA adapters |
---|
4330 | | - */ |
---|
4331 | | -static void mgsl_enum_isa_devices(void) |
---|
4332 | | -{ |
---|
4333 | | - struct mgsl_struct *info; |
---|
4334 | | - int i; |
---|
4335 | | - |
---|
4336 | | - /* Check for user specified ISA devices */ |
---|
4337 | | - |
---|
4338 | | - for (i=0 ;(i < MAX_ISA_DEVICES) && io[i] && irq[i]; i++){ |
---|
4339 | | - if ( debug_level >= DEBUG_LEVEL_INFO ) |
---|
4340 | | - printk("ISA device specified io=%04X,irq=%d,dma=%d\n", |
---|
4341 | | - io[i], irq[i], dma[i] ); |
---|
4342 | | - |
---|
4343 | | - info = mgsl_allocate_device(); |
---|
4344 | | - if ( !info ) { |
---|
4345 | | - /* error allocating device instance data */ |
---|
4346 | | - if ( debug_level >= DEBUG_LEVEL_ERROR ) |
---|
4347 | | - printk( "can't allocate device instance data.\n"); |
---|
4348 | | - continue; |
---|
4349 | | - } |
---|
4350 | | - |
---|
4351 | | - /* Copy user configuration info to device instance data */ |
---|
4352 | | - info->io_base = (unsigned int)io[i]; |
---|
4353 | | - info->irq_level = (unsigned int)irq[i]; |
---|
4354 | | - info->irq_level = irq_canonicalize(info->irq_level); |
---|
4355 | | - info->dma_level = (unsigned int)dma[i]; |
---|
4356 | | - info->bus_type = MGSL_BUS_TYPE_ISA; |
---|
4357 | | - info->io_addr_size = 16; |
---|
4358 | | - info->irq_flags = 0; |
---|
4359 | | - |
---|
4360 | | - mgsl_add_device( info ); |
---|
4361 | | - } |
---|
4362 | | -} |
---|
4363 | | - |
---|
4364 | 4241 | static void synclink_cleanup(void) |
---|
4365 | 4242 | { |
---|
4366 | 4243 | int rc; |
---|
.. | .. |
---|
4404 | 4281 | |
---|
4405 | 4282 | printk("%s %s\n", driver_name, driver_version); |
---|
4406 | 4283 | |
---|
4407 | | - mgsl_enum_isa_devices(); |
---|
4408 | 4284 | if ((rc = pci_register_driver(&synclink_pci_driver)) < 0) |
---|
4409 | 4285 | printk("%s:failed to register PCI driver, error=%d\n",__FILE__,rc); |
---|
4410 | 4286 | else |
---|
.. | .. |
---|
4457 | 4333 | outw( Cmd + info->loopback_bits, info->io_base + CCAR ); |
---|
4458 | 4334 | |
---|
4459 | 4335 | /* Read to flush write to CCAR */ |
---|
4460 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
4461 | | - inw( info->io_base + CCAR ); |
---|
| 4336 | + inw( info->io_base + CCAR ); |
---|
4462 | 4337 | |
---|
4463 | 4338 | } /* end of usc_RTCmd() */ |
---|
4464 | 4339 | |
---|
.. | .. |
---|
4482 | 4357 | outw( Cmd + info->mbre_bit, info->io_base ); |
---|
4483 | 4358 | |
---|
4484 | 4359 | /* Read to flush write to DCAR */ |
---|
4485 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
4486 | | - inw( info->io_base ); |
---|
| 4360 | + inw( info->io_base ); |
---|
4487 | 4361 | |
---|
4488 | 4362 | } /* end of usc_DmaCmd() */ |
---|
4489 | 4363 | |
---|
.. | .. |
---|
4512 | 4386 | outw( RegValue, info->io_base ); |
---|
4513 | 4387 | |
---|
4514 | 4388 | /* Read to flush write to DCAR */ |
---|
4515 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
4516 | | - inw( info->io_base ); |
---|
| 4389 | + inw( info->io_base ); |
---|
4517 | 4390 | |
---|
4518 | 4391 | } /* end of usc_OutDmaReg() */ |
---|
4519 | 4392 | |
---|
.. | .. |
---|
4565 | 4438 | outw( RegValue, info->io_base + CCAR ); |
---|
4566 | 4439 | |
---|
4567 | 4440 | /* Read to flush write to CCAR */ |
---|
4568 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
4569 | | - inw( info->io_base + CCAR ); |
---|
| 4441 | + inw( info->io_base + CCAR ); |
---|
4570 | 4442 | |
---|
4571 | 4443 | } /* end of usc_OutReg() */ |
---|
4572 | 4444 | |
---|
.. | .. |
---|
4765 | 4637 | |
---|
4766 | 4638 | RegValue = usc_InReg( info, RICR ) & 0xc0; |
---|
4767 | 4639 | |
---|
4768 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
4769 | | - usc_OutReg( info, RICR, (u16)(0x030a | RegValue) ); |
---|
4770 | | - else |
---|
4771 | | - usc_OutReg( info, RICR, (u16)(0x140a | RegValue) ); |
---|
| 4640 | + usc_OutReg( info, RICR, (u16)(0x030a | RegValue) ); |
---|
4772 | 4641 | |
---|
4773 | 4642 | /* Unlatch all Rx status bits and clear Rx status IRQ Pending */ |
---|
4774 | 4643 | |
---|
.. | .. |
---|
4829 | 4698 | * 0000 0000 0011 0110 = 0x0036 |
---|
4830 | 4699 | */ |
---|
4831 | 4700 | |
---|
4832 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
4833 | | - usc_OutReg( info, TICR, 0x0736 ); |
---|
4834 | | - else |
---|
4835 | | - usc_OutReg( info, TICR, 0x1436 ); |
---|
| 4701 | + usc_OutReg( info, TICR, 0x0736 ); |
---|
4836 | 4702 | |
---|
4837 | 4703 | usc_UnlatchTxstatusBits( info, TXSTATUS_ALL ); |
---|
4838 | 4704 | usc_ClearIrqPendingBits( info, TRANSMIT_STATUS ); |
---|
.. | .. |
---|
4922 | 4788 | /* DPLL is enabled. Use BRG1 to provide continuous reference clock */ |
---|
4923 | 4789 | /* for DPLL. DPLL mode in HCR is dependent on the encoding used. */ |
---|
4924 | 4790 | |
---|
4925 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
4926 | | - XtalSpeed = 11059200; |
---|
4927 | | - else |
---|
4928 | | - XtalSpeed = 14745600; |
---|
| 4791 | + XtalSpeed = 11059200; |
---|
4929 | 4792 | |
---|
4930 | 4793 | if ( info->params.flags & HDLC_FLAG_DPLL_DIV16 ) { |
---|
4931 | 4794 | DpllDivisor = 16; |
---|
.. | .. |
---|
5026 | 4889 | info->mbre_bit = BIT8; |
---|
5027 | 4890 | outw( BIT8, info->io_base ); /* set Master Bus Enable (DCAR) */ |
---|
5028 | 4891 | |
---|
5029 | | - if (info->bus_type == MGSL_BUS_TYPE_ISA) { |
---|
5030 | | - /* Enable DMAEN (Port 7, Bit 14) */ |
---|
5031 | | - /* This connects the DMA request signal to the ISA bus */ |
---|
5032 | | - usc_OutReg(info, PCR, (u16)((usc_InReg(info, PCR) | BIT15) & ~BIT14)); |
---|
5033 | | - } |
---|
5034 | | - |
---|
5035 | 4892 | /* DMA Control Register (DCR) |
---|
5036 | 4893 | * |
---|
5037 | 4894 | * <15..14> 10 Priority mode = Alternating Tx/Rx |
---|
.. | .. |
---|
5054 | 4911 | * 0110 0000 0000 1011 = 0x600b |
---|
5055 | 4912 | */ |
---|
5056 | 4913 | |
---|
5057 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) { |
---|
5058 | | - /* PCI adapter does not need DMA wait state */ |
---|
5059 | | - usc_OutDmaReg( info, DCR, 0xa00b ); |
---|
5060 | | - } |
---|
5061 | | - else |
---|
5062 | | - usc_OutDmaReg( info, DCR, 0x800b ); |
---|
5063 | | - |
---|
| 4914 | + /* PCI adapter does not need DMA wait state */ |
---|
| 4915 | + usc_OutDmaReg( info, DCR, 0xa00b ); |
---|
5064 | 4916 | |
---|
5065 | 4917 | /* Receive DMA mode Register (RDMR) |
---|
5066 | 4918 | * |
---|
.. | .. |
---|
5152 | 5004 | * <7..0> 0x00 Maximum number of clock cycles per bus grant |
---|
5153 | 5005 | */ |
---|
5154 | 5006 | |
---|
5155 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) { |
---|
5156 | | - /* don't limit bus occupancy on PCI adapter */ |
---|
5157 | | - usc_OutDmaReg( info, BDCR, 0x0000 ); |
---|
5158 | | - } |
---|
5159 | | - else |
---|
5160 | | - usc_OutDmaReg( info, BDCR, 0x2000 ); |
---|
| 5007 | + /* don't limit bus occupancy on PCI adapter */ |
---|
| 5008 | + usc_OutDmaReg( info, BDCR, 0x0000 ); |
---|
5161 | 5009 | |
---|
5162 | 5010 | usc_stop_transmitter(info); |
---|
5163 | 5011 | usc_stop_receiver(info); |
---|
.. | .. |
---|
5198 | 5046 | /* Write 16-bit Time Constant for BRG0 */ |
---|
5199 | 5047 | /* use clock speed if available, otherwise use 8 for diagnostics */ |
---|
5200 | 5048 | if (info->params.clock_speed) { |
---|
5201 | | - if (info->bus_type == MGSL_BUS_TYPE_PCI) |
---|
5202 | | - usc_OutReg(info, TC0R, (u16)((11059200/info->params.clock_speed)-1)); |
---|
5203 | | - else |
---|
5204 | | - usc_OutReg(info, TC0R, (u16)((14745600/info->params.clock_speed)-1)); |
---|
| 5049 | + usc_OutReg(info, TC0R, (u16)((11059200/info->params.clock_speed)-1)); |
---|
5205 | 5050 | } else |
---|
5206 | 5051 | usc_OutReg(info, TC0R, (u16)8); |
---|
5207 | 5052 | |
---|
.. | .. |
---|
5244 | 5089 | u16 Tc; |
---|
5245 | 5090 | |
---|
5246 | 5091 | if ( data_rate ) { |
---|
5247 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
5248 | | - XtalSpeed = 11059200; |
---|
5249 | | - else |
---|
5250 | | - XtalSpeed = 14745600; |
---|
| 5092 | + XtalSpeed = 11059200; |
---|
5251 | 5093 | |
---|
5252 | 5094 | |
---|
5253 | 5095 | /* Tc = (Xtal/Speed) - 1 */ |
---|
.. | .. |
---|
5725 | 5567 | */ |
---|
5726 | 5568 | static void usc_reset( struct mgsl_struct *info ) |
---|
5727 | 5569 | { |
---|
5728 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) { |
---|
5729 | | - int i; |
---|
5730 | | - u32 readval; |
---|
| 5570 | + int i; |
---|
| 5571 | + u32 readval; |
---|
5731 | 5572 | |
---|
5732 | | - /* Set BIT30 of Misc Control Register */ |
---|
5733 | | - /* (Local Control Register 0x50) to force reset of USC. */ |
---|
| 5573 | + /* Set BIT30 of Misc Control Register */ |
---|
| 5574 | + /* (Local Control Register 0x50) to force reset of USC. */ |
---|
5734 | 5575 | |
---|
5735 | | - volatile u32 *MiscCtrl = (u32 *)(info->lcr_base + 0x50); |
---|
5736 | | - u32 *LCR0BRDR = (u32 *)(info->lcr_base + 0x28); |
---|
| 5576 | + volatile u32 *MiscCtrl = (u32 *)(info->lcr_base + 0x50); |
---|
| 5577 | + u32 *LCR0BRDR = (u32 *)(info->lcr_base + 0x28); |
---|
5737 | 5578 | |
---|
5738 | | - info->misc_ctrl_value |= BIT30; |
---|
5739 | | - *MiscCtrl = info->misc_ctrl_value; |
---|
| 5579 | + info->misc_ctrl_value |= BIT30; |
---|
| 5580 | + *MiscCtrl = info->misc_ctrl_value; |
---|
5740 | 5581 | |
---|
5741 | | - /* |
---|
5742 | | - * Force at least 170ns delay before clearing |
---|
5743 | | - * reset bit. Each read from LCR takes at least |
---|
5744 | | - * 30ns so 10 times for 300ns to be safe. |
---|
5745 | | - */ |
---|
5746 | | - for(i=0;i<10;i++) |
---|
5747 | | - readval = *MiscCtrl; |
---|
| 5582 | + /* |
---|
| 5583 | + * Force at least 170ns delay before clearing reset bit. Each read from |
---|
| 5584 | + * LCR takes at least 30ns so 10 times for 300ns to be safe. |
---|
| 5585 | + */ |
---|
| 5586 | + for(i=0;i<10;i++) |
---|
| 5587 | + readval = *MiscCtrl; |
---|
5748 | 5588 | |
---|
5749 | | - info->misc_ctrl_value &= ~BIT30; |
---|
5750 | | - *MiscCtrl = info->misc_ctrl_value; |
---|
| 5589 | + info->misc_ctrl_value &= ~BIT30; |
---|
| 5590 | + *MiscCtrl = info->misc_ctrl_value; |
---|
5751 | 5591 | |
---|
5752 | | - *LCR0BRDR = BUS_DESCRIPTOR( |
---|
5753 | | - 1, // Write Strobe Hold (0-3) |
---|
5754 | | - 2, // Write Strobe Delay (0-3) |
---|
5755 | | - 2, // Read Strobe Delay (0-3) |
---|
5756 | | - 0, // NWDD (Write data-data) (0-3) |
---|
5757 | | - 4, // NWAD (Write Addr-data) (0-31) |
---|
5758 | | - 0, // NXDA (Read/Write Data-Addr) (0-3) |
---|
5759 | | - 0, // NRDD (Read Data-Data) (0-3) |
---|
5760 | | - 5 // NRAD (Read Addr-Data) (0-31) |
---|
5761 | | - ); |
---|
5762 | | - } else { |
---|
5763 | | - /* do HW reset */ |
---|
5764 | | - outb( 0,info->io_base + 8 ); |
---|
5765 | | - } |
---|
| 5592 | + *LCR0BRDR = BUS_DESCRIPTOR( |
---|
| 5593 | + 1, // Write Strobe Hold (0-3) |
---|
| 5594 | + 2, // Write Strobe Delay (0-3) |
---|
| 5595 | + 2, // Read Strobe Delay (0-3) |
---|
| 5596 | + 0, // NWDD (Write data-data) (0-3) |
---|
| 5597 | + 4, // NWAD (Write Addr-data) (0-31) |
---|
| 5598 | + 0, // NXDA (Read/Write Data-Addr) (0-3) |
---|
| 5599 | + 0, // NRDD (Read Data-Data) (0-3) |
---|
| 5600 | + 5 // NRAD (Read Addr-Data) (0-31) |
---|
| 5601 | + ); |
---|
5766 | 5602 | |
---|
5767 | 5603 | info->mbre_bit = 0; |
---|
5768 | 5604 | info->loopback_bits = 0; |
---|
.. | .. |
---|
6008 | 5844 | |
---|
6009 | 5845 | usc_EnableMasterIrqBit( info ); |
---|
6010 | 5846 | |
---|
6011 | | - if (info->bus_type == MGSL_BUS_TYPE_ISA) { |
---|
6012 | | - /* Enable INTEN (Port 6, Bit12) */ |
---|
6013 | | - /* This connects the IRQ request signal to the ISA bus */ |
---|
6014 | | - usc_OutReg(info, PCR, (u16)((usc_InReg(info, PCR) | BIT13) & ~BIT12)); |
---|
6015 | | - } |
---|
6016 | | - |
---|
6017 | 5847 | if (info->params.loopback) { |
---|
6018 | 5848 | info->loopback_bits = 0x300; |
---|
6019 | 5849 | outw(0x0300, info->io_base + CCAR); |
---|
.. | .. |
---|
6107 | 5937 | { |
---|
6108 | 5938 | usc_loopback_frame( info ); |
---|
6109 | 5939 | usc_set_sdlc_mode( info ); |
---|
6110 | | - |
---|
6111 | | - if (info->bus_type == MGSL_BUS_TYPE_ISA) { |
---|
6112 | | - /* Enable INTEN (Port 6, Bit12) */ |
---|
6113 | | - /* This connects the IRQ request signal to the ISA bus */ |
---|
6114 | | - usc_OutReg(info, PCR, (u16)((usc_InReg(info, PCR) | BIT13) & ~BIT12)); |
---|
6115 | | - } |
---|
6116 | 5940 | |
---|
6117 | 5941 | usc_enable_aux_clock(info, info->params.clock_speed); |
---|
6118 | 5942 | |
---|
.. | .. |
---|
6283 | 6107 | * ClkSpeed = 921600 (ISA), 691200 (PCI) |
---|
6284 | 6108 | */ |
---|
6285 | 6109 | |
---|
6286 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
6287 | | - usc_OutReg( info, TC0R, (u16)((691200/data_rate) - 1) ); |
---|
6288 | | - else |
---|
6289 | | - usc_OutReg( info, TC0R, (u16)((921600/data_rate) - 1) ); |
---|
6290 | | - |
---|
| 6110 | + usc_OutReg( info, TC0R, (u16)((691200/data_rate) - 1) ); |
---|
6291 | 6111 | |
---|
6292 | 6112 | /* |
---|
6293 | 6113 | * Hardware Configuration Register (HCR) |
---|
.. | .. |
---|
6892 | 6712 | |
---|
6893 | 6713 | /* Actually copy data from source buffer to DMA buffer. */ |
---|
6894 | 6714 | /* Also set the data count for this individual DMA buffer. */ |
---|
6895 | | - if ( info->bus_type == MGSL_BUS_TYPE_PCI ) |
---|
6896 | | - mgsl_load_pci_memory(pBufEntry->virt_addr, Buffer,Copycount); |
---|
6897 | | - else |
---|
6898 | | - memcpy(pBufEntry->virt_addr, Buffer, Copycount); |
---|
| 6715 | + mgsl_load_pci_memory(pBufEntry->virt_addr, Buffer,Copycount); |
---|
6899 | 6716 | |
---|
6900 | 6717 | pBufEntry->count = Copycount; |
---|
6901 | 6718 | |
---|
.. | .. |
---|
7370 | 7187 | unsigned long TestLimit = SHARED_MEM_ADDRESS_SIZE/sizeof(unsigned long); |
---|
7371 | 7188 | unsigned long * TestAddr; |
---|
7372 | 7189 | |
---|
7373 | | - if ( info->bus_type != MGSL_BUS_TYPE_PCI ) |
---|
7374 | | - return true; |
---|
7375 | | - |
---|
7376 | 7190 | TestAddr = (unsigned long *)info->memory_base; |
---|
7377 | 7191 | |
---|
7378 | 7192 | /* Test data lines with test pattern at one location. */ |
---|
.. | .. |
---|
7605 | 7419 | #if SYNCLINK_GENERIC_HDLC |
---|
7606 | 7420 | |
---|
7607 | 7421 | /** |
---|
7608 | | - * called by generic HDLC layer when protocol selected (PPP, frame relay, etc.) |
---|
7609 | | - * set encoding and frame check sequence (FCS) options |
---|
| 7422 | + * hdlcdev_attach - called by generic HDLC layer when protocol selected (PPP, frame relay, etc.) |
---|
| 7423 | + * @dev: pointer to network device structure |
---|
| 7424 | + * @encoding: serial encoding setting |
---|
| 7425 | + * @parity: FCS setting |
---|
7610 | 7426 | * |
---|
7611 | | - * dev pointer to network device structure |
---|
7612 | | - * encoding serial encoding setting |
---|
7613 | | - * parity FCS setting |
---|
| 7427 | + * Set encoding and frame check sequence (FCS) options. |
---|
7614 | 7428 | * |
---|
7615 | | - * returns 0 if success, otherwise error code |
---|
| 7429 | + * Return: 0 if success, otherwise error code |
---|
7616 | 7430 | */ |
---|
7617 | 7431 | static int hdlcdev_attach(struct net_device *dev, unsigned short encoding, |
---|
7618 | 7432 | unsigned short parity) |
---|
.. | .. |
---|
7654 | 7468 | } |
---|
7655 | 7469 | |
---|
7656 | 7470 | /** |
---|
7657 | | - * called by generic HDLC layer to send frame |
---|
7658 | | - * |
---|
7659 | | - * skb socket buffer containing HDLC frame |
---|
7660 | | - * dev pointer to network device structure |
---|
| 7471 | + * hdlcdev_xmit - called by generic HDLC layer to send a frame |
---|
| 7472 | + * @skb: socket buffer containing HDLC frame |
---|
| 7473 | + * @dev: pointer to network device structure |
---|
7661 | 7474 | */ |
---|
7662 | 7475 | static netdev_tx_t hdlcdev_xmit(struct sk_buff *skb, |
---|
7663 | 7476 | struct net_device *dev) |
---|
.. | .. |
---|
7695 | 7508 | } |
---|
7696 | 7509 | |
---|
7697 | 7510 | /** |
---|
7698 | | - * called by network layer when interface enabled |
---|
7699 | | - * claim resources and initialize hardware |
---|
| 7511 | + * hdlcdev_open - called by network layer when interface enabled |
---|
| 7512 | + * @dev: pointer to network device structure |
---|
7700 | 7513 | * |
---|
7701 | | - * dev pointer to network device structure |
---|
| 7514 | + * Claim resources and initialize hardware. |
---|
7702 | 7515 | * |
---|
7703 | | - * returns 0 if success, otherwise error code |
---|
| 7516 | + * Return: 0 if success, otherwise error code |
---|
7704 | 7517 | */ |
---|
7705 | 7518 | static int hdlcdev_open(struct net_device *dev) |
---|
7706 | 7519 | { |
---|
.. | .. |
---|
7754 | 7567 | } |
---|
7755 | 7568 | |
---|
7756 | 7569 | /** |
---|
7757 | | - * called by network layer when interface is disabled |
---|
7758 | | - * shutdown hardware and release resources |
---|
| 7570 | + * hdlcdev_close - called by network layer when interface is disabled |
---|
| 7571 | + * @dev: pointer to network device structure |
---|
7759 | 7572 | * |
---|
7760 | | - * dev pointer to network device structure |
---|
| 7573 | + * Shutdown hardware and release resources. |
---|
7761 | 7574 | * |
---|
7762 | | - * returns 0 if success, otherwise error code |
---|
| 7575 | + * Return: 0 if success, otherwise error code |
---|
7763 | 7576 | */ |
---|
7764 | 7577 | static int hdlcdev_close(struct net_device *dev) |
---|
7765 | 7578 | { |
---|
.. | .. |
---|
7784 | 7597 | } |
---|
7785 | 7598 | |
---|
7786 | 7599 | /** |
---|
7787 | | - * called by network layer to process IOCTL call to network device |
---|
| 7600 | + * hdlcdev_ioctl - called by network layer to process IOCTL call to network device |
---|
| 7601 | + * @dev: pointer to network device structure |
---|
| 7602 | + * @ifr: pointer to network interface request structure |
---|
| 7603 | + * @cmd: IOCTL command code |
---|
7788 | 7604 | * |
---|
7789 | | - * dev pointer to network device structure |
---|
7790 | | - * ifr pointer to network interface request structure |
---|
7791 | | - * cmd IOCTL command code |
---|
7792 | | - * |
---|
7793 | | - * returns 0 if success, otherwise error code |
---|
| 7605 | + * Return: 0 if success, otherwise error code |
---|
7794 | 7606 | */ |
---|
7795 | 7607 | static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) |
---|
7796 | 7608 | { |
---|
.. | .. |
---|
7888 | 7700 | } |
---|
7889 | 7701 | |
---|
7890 | 7702 | /** |
---|
7891 | | - * called by network layer when transmit timeout is detected |
---|
| 7703 | + * hdlcdev_tx_timeout - called by network layer when transmit timeout is detected |
---|
7892 | 7704 | * |
---|
7893 | | - * dev pointer to network device structure |
---|
| 7705 | + * @dev: pointer to network device structure |
---|
7894 | 7706 | */ |
---|
7895 | | -static void hdlcdev_tx_timeout(struct net_device *dev) |
---|
| 7707 | +static void hdlcdev_tx_timeout(struct net_device *dev, unsigned int txqueue) |
---|
7896 | 7708 | { |
---|
7897 | 7709 | struct mgsl_struct *info = dev_to_port(dev); |
---|
7898 | 7710 | unsigned long flags; |
---|
.. | .. |
---|
7911 | 7723 | } |
---|
7912 | 7724 | |
---|
7913 | 7725 | /** |
---|
7914 | | - * called by device driver when transmit completes |
---|
7915 | | - * reenable network layer transmit if stopped |
---|
| 7726 | + * hdlcdev_tx_done - called by device driver when transmit completes |
---|
| 7727 | + * @info: pointer to device instance information |
---|
7916 | 7728 | * |
---|
7917 | | - * info pointer to device instance information |
---|
| 7729 | + * Reenable network layer transmit if stopped. |
---|
7918 | 7730 | */ |
---|
7919 | 7731 | static void hdlcdev_tx_done(struct mgsl_struct *info) |
---|
7920 | 7732 | { |
---|
.. | .. |
---|
7923 | 7735 | } |
---|
7924 | 7736 | |
---|
7925 | 7737 | /** |
---|
7926 | | - * called by device driver when frame received |
---|
7927 | | - * pass frame to network layer |
---|
| 7738 | + * hdlcdev_rx - called by device driver when frame received |
---|
| 7739 | + * @info: pointer to device instance information |
---|
| 7740 | + * @buf: pointer to buffer contianing frame data |
---|
| 7741 | + * @size: count of data bytes in buf |
---|
7928 | 7742 | * |
---|
7929 | | - * info pointer to device instance information |
---|
7930 | | - * buf pointer to buffer contianing frame data |
---|
7931 | | - * size count of data bytes in buf |
---|
| 7743 | + * Pass frame to network layer. |
---|
7932 | 7744 | */ |
---|
7933 | 7745 | static void hdlcdev_rx(struct mgsl_struct *info, char *buf, int size) |
---|
7934 | 7746 | { |
---|
.. | .. |
---|
7964 | 7776 | }; |
---|
7965 | 7777 | |
---|
7966 | 7778 | /** |
---|
7967 | | - * called by device driver when adding device instance |
---|
7968 | | - * do generic HDLC initialization |
---|
| 7779 | + * hdlcdev_init - called by device driver when adding device instance |
---|
| 7780 | + * @info: pointer to device instance information |
---|
7969 | 7781 | * |
---|
7970 | | - * info pointer to device instance information |
---|
| 7782 | + * Do generic HDLC initialization. |
---|
7971 | 7783 | * |
---|
7972 | | - * returns 0 if success, otherwise error code |
---|
| 7784 | + * Return: 0 if success, otherwise error code |
---|
7973 | 7785 | */ |
---|
7974 | 7786 | static int hdlcdev_init(struct mgsl_struct *info) |
---|
7975 | 7787 | { |
---|
.. | .. |
---|
8013 | 7825 | } |
---|
8014 | 7826 | |
---|
8015 | 7827 | /** |
---|
8016 | | - * called by device driver when removing device instance |
---|
8017 | | - * do generic HDLC cleanup |
---|
| 7828 | + * hdlcdev_exit - called by device driver when removing device instance |
---|
| 7829 | + * @info: pointer to device instance information |
---|
8018 | 7830 | * |
---|
8019 | | - * info pointer to device instance information |
---|
| 7831 | + * Do generic HDLC cleanup. |
---|
8020 | 7832 | */ |
---|
8021 | 7833 | static void hdlcdev_exit(struct mgsl_struct *info) |
---|
8022 | 7834 | { |
---|
.. | .. |
---|
8058 | 7870 | info->lcr_offset = info->phys_lcr_base & (PAGE_SIZE-1); |
---|
8059 | 7871 | info->phys_lcr_base &= ~(PAGE_SIZE-1); |
---|
8060 | 7872 | |
---|
8061 | | - info->bus_type = MGSL_BUS_TYPE_PCI; |
---|
8062 | 7873 | info->io_addr_size = 8; |
---|
8063 | 7874 | info->irq_flags = IRQF_SHARED; |
---|
8064 | 7875 | |
---|