diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 02:09:27 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 02:09:27 -0400 |
commit | d5ef642355bdd9b383ff5c18cbc6102a06eecbaf (patch) | |
tree | fcf78d33c1790c6c24efbfd0c3695f7874f053d7 /drivers/parport | |
parent | f549953c15deab4c54708b39af86d4edecc6cddc (diff) | |
parent | def90f4239f094f3846c108c1c41a4cd55c33e8e (diff) |
Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6
* 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (26 commits)
amba pl011: workaround for uart registers lockup
n_gsm: fix the wrong FCS handling
pch_uart: add missing comment about OKI ML7223
pch_uart: Add MSI support
tty: fix "IRQ45: nobody cared"
PTI feature to allow user to name and mark masterchannel request.
0 for o PTI Makefile bug.
tty: serial: samsung.c remove legacy PM code.
SERIAL: SC26xx: Fix link error.
serial: mrst_max3110: initialize waitqueue earlier
mrst_max3110: Change max missing message priority.
tty: s5pv210: Add delay loop on fifo reset function for UART
tty/serial: Fix XSCALE serial ports, e.g. ce4100
serial: bfin_5xx: fix off-by-one with resource size
drivers/tty: use printk_ratelimited() instead of printk_ratelimit()
tty: n_gsm: Added refcount usage to gsm_mux and gsm_dlci structs
tty: n_gsm: Add raw-ip support
tty: n_gsm: expose gsmtty device nodes at ldisc open time
pch_phub: Fix register miss-setting issue
serial: 8250, increase PASS_LIMIT
...
Diffstat (limited to 'drivers/parport')
-rw-r--r-- | drivers/parport/parport_pc.c | 54 | ||||
-rw-r--r-- | drivers/parport/parport_serial.c | 229 |
2 files changed, 213 insertions, 70 deletions
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index f330338c2f22..d1cdb9449f84 100644 --- a/drivers/parport/parport_pc.c +++ b/drivers/parport/parport_pc.c | |||
@@ -2864,24 +2864,6 @@ enum parport_pc_pci_cards { | |||
2864 | lava_parallel_dual_b, | 2864 | lava_parallel_dual_b, |
2865 | boca_ioppar, | 2865 | boca_ioppar, |
2866 | plx_9050, | 2866 | plx_9050, |
2867 | timedia_4078a, | ||
2868 | timedia_4079h, | ||
2869 | timedia_4085h, | ||
2870 | timedia_4088a, | ||
2871 | timedia_4089a, | ||
2872 | timedia_4095a, | ||
2873 | timedia_4096a, | ||
2874 | timedia_4078u, | ||
2875 | timedia_4079a, | ||
2876 | timedia_4085u, | ||
2877 | timedia_4079r, | ||
2878 | timedia_4079s, | ||
2879 | timedia_4079d, | ||
2880 | timedia_4079e, | ||
2881 | timedia_4079f, | ||
2882 | timedia_9079a, | ||
2883 | timedia_9079b, | ||
2884 | timedia_9079c, | ||
2885 | timedia_4006a, | 2867 | timedia_4006a, |
2886 | timedia_4014, | 2868 | timedia_4014, |
2887 | timedia_4008a, | 2869 | timedia_4008a, |
@@ -2940,24 +2922,6 @@ static struct parport_pc_pci { | |||
2940 | /* lava_parallel_dual_b */ { 1, { { 0, -1 }, } }, | 2922 | /* lava_parallel_dual_b */ { 1, { { 0, -1 }, } }, |
2941 | /* boca_ioppar */ { 1, { { 0, -1 }, } }, | 2923 | /* boca_ioppar */ { 1, { { 0, -1 }, } }, |
2942 | /* plx_9050 */ { 2, { { 4, -1 }, { 5, -1 }, } }, | 2924 | /* plx_9050 */ { 2, { { 4, -1 }, { 5, -1 }, } }, |
2943 | /* timedia_4078a */ { 1, { { 2, -1 }, } }, | ||
2944 | /* timedia_4079h */ { 1, { { 2, 3 }, } }, | ||
2945 | /* timedia_4085h */ { 2, { { 2, -1 }, { 4, -1 }, } }, | ||
2946 | /* timedia_4088a */ { 2, { { 2, 3 }, { 4, 5 }, } }, | ||
2947 | /* timedia_4089a */ { 2, { { 2, 3 }, { 4, 5 }, } }, | ||
2948 | /* timedia_4095a */ { 2, { { 2, 3 }, { 4, 5 }, } }, | ||
2949 | /* timedia_4096a */ { 2, { { 2, 3 }, { 4, 5 }, } }, | ||
2950 | /* timedia_4078u */ { 1, { { 2, -1 }, } }, | ||
2951 | /* timedia_4079a */ { 1, { { 2, 3 }, } }, | ||
2952 | /* timedia_4085u */ { 2, { { 2, -1 }, { 4, -1 }, } }, | ||
2953 | /* timedia_4079r */ { 1, { { 2, 3 }, } }, | ||
2954 | /* timedia_4079s */ { 1, { { 2, 3 }, } }, | ||
2955 | /* timedia_4079d */ { 1, { { 2, 3 }, } }, | ||
2956 | /* timedia_4079e */ { 1, { { 2, 3 }, } }, | ||
2957 | /* timedia_4079f */ { 1, { { 2, 3 }, } }, | ||
2958 | /* timedia_9079a */ { 1, { { 2, 3 }, } }, | ||
2959 | /* timedia_9079b */ { 1, { { 2, 3 }, } }, | ||
2960 | /* timedia_9079c */ { 1, { { 2, 3 }, } }, | ||
2961 | /* timedia_4006a */ { 1, { { 0, -1 }, } }, | 2925 | /* timedia_4006a */ { 1, { { 0, -1 }, } }, |
2962 | /* timedia_4014 */ { 2, { { 0, -1 }, { 2, -1 }, } }, | 2926 | /* timedia_4014 */ { 2, { { 0, -1 }, { 2, -1 }, } }, |
2963 | /* timedia_4008a */ { 1, { { 0, 1 }, } }, | 2927 | /* timedia_4008a */ { 1, { { 0, 1 }, } }, |
@@ -3019,24 +2983,6 @@ static const struct pci_device_id parport_pc_pci_tbl[] = { | |||
3019 | { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, | 2983 | { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, |
3020 | PCI_SUBVENDOR_ID_EXSYS, PCI_SUBDEVICE_ID_EXSYS_4014, 0, 0, plx_9050 }, | 2984 | PCI_SUBVENDOR_ID_EXSYS, PCI_SUBDEVICE_ID_EXSYS_4014, 0, 0, plx_9050 }, |
3021 | /* PCI_VENDOR_ID_TIMEDIA/SUNIX has many differing cards ...*/ | 2985 | /* PCI_VENDOR_ID_TIMEDIA/SUNIX has many differing cards ...*/ |
3022 | { 0x1409, 0x7168, 0x1409, 0x4078, 0, 0, timedia_4078a }, | ||
3023 | { 0x1409, 0x7168, 0x1409, 0x4079, 0, 0, timedia_4079h }, | ||
3024 | { 0x1409, 0x7168, 0x1409, 0x4085, 0, 0, timedia_4085h }, | ||
3025 | { 0x1409, 0x7168, 0x1409, 0x4088, 0, 0, timedia_4088a }, | ||
3026 | { 0x1409, 0x7168, 0x1409, 0x4089, 0, 0, timedia_4089a }, | ||
3027 | { 0x1409, 0x7168, 0x1409, 0x4095, 0, 0, timedia_4095a }, | ||
3028 | { 0x1409, 0x7168, 0x1409, 0x4096, 0, 0, timedia_4096a }, | ||
3029 | { 0x1409, 0x7168, 0x1409, 0x5078, 0, 0, timedia_4078u }, | ||
3030 | { 0x1409, 0x7168, 0x1409, 0x5079, 0, 0, timedia_4079a }, | ||
3031 | { 0x1409, 0x7168, 0x1409, 0x5085, 0, 0, timedia_4085u }, | ||
3032 | { 0x1409, 0x7168, 0x1409, 0x6079, 0, 0, timedia_4079r }, | ||
3033 | { 0x1409, 0x7168, 0x1409, 0x7079, 0, 0, timedia_4079s }, | ||
3034 | { 0x1409, 0x7168, 0x1409, 0x8079, 0, 0, timedia_4079d }, | ||
3035 | { 0x1409, 0x7168, 0x1409, 0x9079, 0, 0, timedia_4079e }, | ||
3036 | { 0x1409, 0x7168, 0x1409, 0xa079, 0, 0, timedia_4079f }, | ||
3037 | { 0x1409, 0x7168, 0x1409, 0xb079, 0, 0, timedia_9079a }, | ||
3038 | { 0x1409, 0x7168, 0x1409, 0xc079, 0, 0, timedia_9079b }, | ||
3039 | { 0x1409, 0x7168, 0x1409, 0xd079, 0, 0, timedia_9079c }, | ||
3040 | { 0x1409, 0x7268, 0x1409, 0x0101, 0, 0, timedia_4006a }, | 2986 | { 0x1409, 0x7268, 0x1409, 0x0101, 0, 0, timedia_4006a }, |
3041 | { 0x1409, 0x7268, 0x1409, 0x0102, 0, 0, timedia_4014 }, | 2987 | { 0x1409, 0x7268, 0x1409, 0x0102, 0, 0, timedia_4014 }, |
3042 | { 0x1409, 0x7268, 0x1409, 0x0103, 0, 0, timedia_4008a }, | 2988 | { 0x1409, 0x7268, 0x1409, 0x0103, 0, 0, timedia_4008a }, |
diff --git a/drivers/parport/parport_serial.c b/drivers/parport/parport_serial.c index f01e26440f11..e9c32274df3f 100644 --- a/drivers/parport/parport_serial.c +++ b/drivers/parport/parport_serial.c | |||
@@ -33,6 +33,9 @@ enum parport_pc_pci_cards { | |||
33 | netmos_9xx5_combo, | 33 | netmos_9xx5_combo, |
34 | netmos_9855, | 34 | netmos_9855, |
35 | netmos_9855_2p, | 35 | netmos_9855_2p, |
36 | netmos_9900, | ||
37 | netmos_9900_2p, | ||
38 | netmos_99xx_1p, | ||
36 | avlab_1s1p, | 39 | avlab_1s1p, |
37 | avlab_1s2p, | 40 | avlab_1s2p, |
38 | avlab_2s1p, | 41 | avlab_2s1p, |
@@ -41,6 +44,24 @@ enum parport_pc_pci_cards { | |||
41 | siig_2p1s_20x, | 44 | siig_2p1s_20x, |
42 | siig_1s1p_20x, | 45 | siig_1s1p_20x, |
43 | siig_2s1p_20x, | 46 | siig_2s1p_20x, |
47 | timedia_4078a, | ||
48 | timedia_4079h, | ||
49 | timedia_4085h, | ||
50 | timedia_4088a, | ||
51 | timedia_4089a, | ||
52 | timedia_4095a, | ||
53 | timedia_4096a, | ||
54 | timedia_4078u, | ||
55 | timedia_4079a, | ||
56 | timedia_4085u, | ||
57 | timedia_4079r, | ||
58 | timedia_4079s, | ||
59 | timedia_4079d, | ||
60 | timedia_4079e, | ||
61 | timedia_4079f, | ||
62 | timedia_9079a, | ||
63 | timedia_9079b, | ||
64 | timedia_9079c, | ||
44 | }; | 65 | }; |
45 | 66 | ||
46 | /* each element directly indexed from enum list, above */ | 67 | /* each element directly indexed from enum list, above */ |
@@ -72,22 +93,20 @@ static int __devinit netmos_parallel_init(struct pci_dev *dev, struct parport_pc | |||
72 | dev->subsystem_vendor == PCI_VENDOR_ID_IBM && | 93 | dev->subsystem_vendor == PCI_VENDOR_ID_IBM && |
73 | dev->subsystem_device == 0x0299) | 94 | dev->subsystem_device == 0x0299) |
74 | return -ENODEV; | 95 | return -ENODEV; |
75 | /* | 96 | |
76 | * Netmos uses the subdevice ID to indicate the number of parallel | 97 | if (dev->device == PCI_DEVICE_ID_NETMOS_9912) { |
77 | * and serial ports. The form is 0x00PS, where <P> is the number of | 98 | par->numports = 1; |
78 | * parallel ports and <S> is the number of serial ports. | 99 | } else { |
79 | */ | 100 | /* |
80 | par->numports = (dev->subsystem_device & 0xf0) >> 4; | 101 | * Netmos uses the subdevice ID to indicate the number of parallel |
81 | if (par->numports > ARRAY_SIZE(par->addr)) | 102 | * and serial ports. The form is 0x00PS, where <P> is the number of |
82 | par->numports = ARRAY_SIZE(par->addr); | 103 | * parallel ports and <S> is the number of serial ports. |
83 | /* | 104 | */ |
84 | * This function is currently only called for cards with up to | 105 | par->numports = (dev->subsystem_device & 0xf0) >> 4; |
85 | * one parallel port. | 106 | if (par->numports > ARRAY_SIZE(par->addr)) |
86 | * Parallel port BAR is either before or after serial ports BARS; | 107 | par->numports = ARRAY_SIZE(par->addr); |
87 | * hence, lo should be either 0 or equal to the number of serial ports. | 108 | } |
88 | */ | 109 | |
89 | if (par->addr[0].lo != 0) | ||
90 | par->addr[0].lo = dev->subsystem_device & 0xf; | ||
91 | return 0; | 110 | return 0; |
92 | } | 111 | } |
93 | 112 | ||
@@ -97,6 +116,9 @@ static struct parport_pc_pci cards[] __devinitdata = { | |||
97 | /* netmos_9xx5_combo */ { 1, { { 2, -1 }, }, netmos_parallel_init }, | 116 | /* netmos_9xx5_combo */ { 1, { { 2, -1 }, }, netmos_parallel_init }, |
98 | /* netmos_9855 */ { 1, { { 0, -1 }, }, netmos_parallel_init }, | 117 | /* netmos_9855 */ { 1, { { 0, -1 }, }, netmos_parallel_init }, |
99 | /* netmos_9855_2p */ { 2, { { 0, -1 }, { 2, -1 }, } }, | 118 | /* netmos_9855_2p */ { 2, { { 0, -1 }, { 2, -1 }, } }, |
119 | /* netmos_9900 */ {1, { { 3, 4 }, }, netmos_parallel_init }, | ||
120 | /* netmos_9900_2p */ {2, { { 0, 1 }, { 3, 4 }, } }, | ||
121 | /* netmos_99xx_1p */ {1, { { 0, 1 }, } }, | ||
100 | /* avlab_1s1p */ { 1, { { 1, 2}, } }, | 122 | /* avlab_1s1p */ { 1, { { 1, 2}, } }, |
101 | /* avlab_1s2p */ { 2, { { 1, 2}, { 3, 4 },} }, | 123 | /* avlab_1s2p */ { 2, { { 1, 2}, { 3, 4 },} }, |
102 | /* avlab_2s1p */ { 1, { { 2, 3}, } }, | 124 | /* avlab_2s1p */ { 1, { { 2, 3}, } }, |
@@ -105,6 +127,24 @@ static struct parport_pc_pci cards[] __devinitdata = { | |||
105 | /* siig_2p1s_20x */ { 2, { { 1, 2 }, { 3, 4 }, } }, | 127 | /* siig_2p1s_20x */ { 2, { { 1, 2 }, { 3, 4 }, } }, |
106 | /* siig_1s1p_20x */ { 1, { { 1, 2 }, } }, | 128 | /* siig_1s1p_20x */ { 1, { { 1, 2 }, } }, |
107 | /* siig_2s1p_20x */ { 1, { { 2, 3 }, } }, | 129 | /* siig_2s1p_20x */ { 1, { { 2, 3 }, } }, |
130 | /* timedia_4078a */ { 1, { { 2, -1 }, } }, | ||
131 | /* timedia_4079h */ { 1, { { 2, 3 }, } }, | ||
132 | /* timedia_4085h */ { 2, { { 2, -1 }, { 4, -1 }, } }, | ||
133 | /* timedia_4088a */ { 2, { { 2, 3 }, { 4, 5 }, } }, | ||
134 | /* timedia_4089a */ { 2, { { 2, 3 }, { 4, 5 }, } }, | ||
135 | /* timedia_4095a */ { 2, { { 2, 3 }, { 4, 5 }, } }, | ||
136 | /* timedia_4096a */ { 2, { { 2, 3 }, { 4, 5 }, } }, | ||
137 | /* timedia_4078u */ { 1, { { 2, -1 }, } }, | ||
138 | /* timedia_4079a */ { 1, { { 2, 3 }, } }, | ||
139 | /* timedia_4085u */ { 2, { { 2, -1 }, { 4, -1 }, } }, | ||
140 | /* timedia_4079r */ { 1, { { 2, 3 }, } }, | ||
141 | /* timedia_4079s */ { 1, { { 2, 3 }, } }, | ||
142 | /* timedia_4079d */ { 1, { { 2, 3 }, } }, | ||
143 | /* timedia_4079e */ { 1, { { 2, 3 }, } }, | ||
144 | /* timedia_4079f */ { 1, { { 2, 3 }, } }, | ||
145 | /* timedia_9079a */ { 1, { { 2, 3 }, } }, | ||
146 | /* timedia_9079b */ { 1, { { 2, 3 }, } }, | ||
147 | /* timedia_9079c */ { 1, { { 2, 3 }, } }, | ||
108 | }; | 148 | }; |
109 | 149 | ||
110 | static struct pci_device_id parport_serial_pci_tbl[] = { | 150 | static struct pci_device_id parport_serial_pci_tbl[] = { |
@@ -127,6 +167,14 @@ static struct pci_device_id parport_serial_pci_tbl[] = { | |||
127 | 0x1000, 0x0022, 0, 0, netmos_9855_2p }, | 167 | 0x1000, 0x0022, 0, 0, netmos_9855_2p }, |
128 | { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9855, | 168 | { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9855, |
129 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9855 }, | 169 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9855 }, |
170 | { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9900, | ||
171 | 0xA000, 0x3011, 0, 0, netmos_9900 }, | ||
172 | { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9900, | ||
173 | 0xA000, 0x3012, 0, 0, netmos_9900 }, | ||
174 | { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9900, | ||
175 | 0xA000, 0x3020, 0, 0, netmos_9900_2p }, | ||
176 | { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9912, | ||
177 | 0xA000, 0x2000, 0, 0, netmos_99xx_1p }, | ||
130 | /* PCI_VENDOR_ID_AVLAB/Intek21 has another bunch of cards ...*/ | 178 | /* PCI_VENDOR_ID_AVLAB/Intek21 has another bunch of cards ...*/ |
131 | { PCI_VENDOR_ID_AFAVLAB, 0x2110, | 179 | { PCI_VENDOR_ID_AFAVLAB, 0x2110, |
132 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p }, | 180 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p }, |
@@ -176,6 +224,25 @@ static struct pci_device_id parport_serial_pci_tbl[] = { | |||
176 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_20x }, | 224 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_20x }, |
177 | { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2S1P_20x_850, | 225 | { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2S1P_20x_850, |
178 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_20x }, | 226 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_20x }, |
227 | /* PCI_VENDOR_ID_TIMEDIA/SUNIX has many differing cards ...*/ | ||
228 | { 0x1409, 0x7168, 0x1409, 0x4078, 0, 0, timedia_4078a }, | ||
229 | { 0x1409, 0x7168, 0x1409, 0x4079, 0, 0, timedia_4079h }, | ||
230 | { 0x1409, 0x7168, 0x1409, 0x4085, 0, 0, timedia_4085h }, | ||
231 | { 0x1409, 0x7168, 0x1409, 0x4088, 0, 0, timedia_4088a }, | ||
232 | { 0x1409, 0x7168, 0x1409, 0x4089, 0, 0, timedia_4089a }, | ||
233 | { 0x1409, 0x7168, 0x1409, 0x4095, 0, 0, timedia_4095a }, | ||
234 | { 0x1409, 0x7168, 0x1409, 0x4096, 0, 0, timedia_4096a }, | ||
235 | { 0x1409, 0x7168, 0x1409, 0x5078, 0, 0, timedia_4078u }, | ||
236 | { 0x1409, 0x7168, 0x1409, 0x5079, 0, 0, timedia_4079a }, | ||
237 | { 0x1409, 0x7168, 0x1409, 0x5085, 0, 0, timedia_4085u }, | ||
238 | { 0x1409, 0x7168, 0x1409, 0x6079, 0, 0, timedia_4079r }, | ||
239 | { 0x1409, 0x7168, 0x1409, 0x7079, 0, 0, timedia_4079s }, | ||
240 | { 0x1409, 0x7168, 0x1409, 0x8079, 0, 0, timedia_4079d }, | ||
241 | { 0x1409, 0x7168, 0x1409, 0x9079, 0, 0, timedia_4079e }, | ||
242 | { 0x1409, 0x7168, 0x1409, 0xa079, 0, 0, timedia_4079f }, | ||
243 | { 0x1409, 0x7168, 0x1409, 0xb079, 0, 0, timedia_9079a }, | ||
244 | { 0x1409, 0x7168, 0x1409, 0xc079, 0, 0, timedia_9079b }, | ||
245 | { 0x1409, 0x7168, 0x1409, 0xd079, 0, 0, timedia_9079c }, | ||
179 | 246 | ||
180 | { 0, } /* terminate list */ | 247 | { 0, } /* terminate list */ |
181 | }; | 248 | }; |
@@ -219,6 +286,24 @@ static struct pciserial_board pci_parport_serial_boards[] __devinitdata = { | |||
219 | .base_baud = 115200, | 286 | .base_baud = 115200, |
220 | .uart_offset = 8, | 287 | .uart_offset = 8, |
221 | }, | 288 | }, |
289 | [netmos_9900] = { /* n/t */ | ||
290 | .flags = FL_BASE0 | FL_BASE_BARS, | ||
291 | .num_ports = 1, | ||
292 | .base_baud = 115200, | ||
293 | .uart_offset = 8, | ||
294 | }, | ||
295 | [netmos_9900_2p] = { /* parallel only */ /* n/t */ | ||
296 | .flags = FL_BASE0, | ||
297 | .num_ports = 0, | ||
298 | .base_baud = 115200, | ||
299 | .uart_offset = 8, | ||
300 | }, | ||
301 | [netmos_99xx_1p] = { /* parallel only */ /* n/t */ | ||
302 | .flags = FL_BASE0, | ||
303 | .num_ports = 0, | ||
304 | .base_baud = 115200, | ||
305 | .uart_offset = 8, | ||
306 | }, | ||
222 | [avlab_1s1p] = { /* n/t */ | 307 | [avlab_1s1p] = { /* n/t */ |
223 | .flags = FL_BASE0 | FL_BASE_BARS, | 308 | .flags = FL_BASE0 | FL_BASE_BARS, |
224 | .num_ports = 1, | 309 | .num_ports = 1, |
@@ -267,6 +352,114 @@ static struct pciserial_board pci_parport_serial_boards[] __devinitdata = { | |||
267 | .base_baud = 921600, | 352 | .base_baud = 921600, |
268 | .uart_offset = 8, | 353 | .uart_offset = 8, |
269 | }, | 354 | }, |
355 | [timedia_4078a] = { | ||
356 | .flags = FL_BASE0|FL_BASE_BARS, | ||
357 | .num_ports = 1, | ||
358 | .base_baud = 921600, | ||
359 | .uart_offset = 8, | ||
360 | }, | ||
361 | [timedia_4079h] = { | ||
362 | .flags = FL_BASE0|FL_BASE_BARS, | ||
363 | .num_ports = 1, | ||
364 | .base_baud = 921600, | ||
365 | .uart_offset = 8, | ||
366 | }, | ||
367 | [timedia_4085h] = { | ||
368 | .flags = FL_BASE0|FL_BASE_BARS, | ||
369 | .num_ports = 1, | ||
370 | .base_baud = 921600, | ||
371 | .uart_offset = 8, | ||
372 | }, | ||
373 | [timedia_4088a] = { | ||
374 | .flags = FL_BASE0|FL_BASE_BARS, | ||
375 | .num_ports = 1, | ||
376 | .base_baud = 921600, | ||
377 | .uart_offset = 8, | ||
378 | }, | ||
379 | [timedia_4089a] = { | ||
380 | .flags = FL_BASE0|FL_BASE_BARS, | ||
381 | .num_ports = 1, | ||
382 | .base_baud = 921600, | ||
383 | .uart_offset = 8, | ||
384 | }, | ||
385 | [timedia_4095a] = { | ||
386 | .flags = FL_BASE0|FL_BASE_BARS, | ||
387 | .num_ports = 1, | ||
388 | .base_baud = 921600, | ||
389 | .uart_offset = 8, | ||
390 | }, | ||
391 | [timedia_4096a] = { | ||
392 | .flags = FL_BASE0|FL_BASE_BARS, | ||
393 | .num_ports = 1, | ||
394 | .base_baud = 921600, | ||
395 | .uart_offset = 8, | ||
396 | }, | ||
397 | [timedia_4078u] = { | ||
398 | .flags = FL_BASE0|FL_BASE_BARS, | ||
399 | .num_ports = 1, | ||
400 | .base_baud = 921600, | ||
401 | .uart_offset = 8, | ||
402 | }, | ||
403 | [timedia_4079a] = { | ||
404 | .flags = FL_BASE0|FL_BASE_BARS, | ||
405 | .num_ports = 1, | ||
406 | .base_baud = 921600, | ||
407 | .uart_offset = 8, | ||
408 | }, | ||
409 | [timedia_4085u] = { | ||
410 | .flags = FL_BASE0|FL_BASE_BARS, | ||
411 | .num_ports = 1, | ||
412 | .base_baud = 921600, | ||
413 | .uart_offset = 8, | ||
414 | }, | ||
415 | [timedia_4079r] = { | ||
416 | .flags = FL_BASE0|FL_BASE_BARS, | ||
417 | .num_ports = 1, | ||
418 | .base_baud = 921600, | ||
419 | .uart_offset = 8, | ||
420 | }, | ||
421 | [timedia_4079s] = { | ||
422 | .flags = FL_BASE0|FL_BASE_BARS, | ||
423 | .num_ports = 1, | ||
424 | .base_baud = 921600, | ||
425 | .uart_offset = 8, | ||
426 | }, | ||
427 | [timedia_4079d] = { | ||
428 | .flags = FL_BASE0|FL_BASE_BARS, | ||
429 | .num_ports = 1, | ||
430 | .base_baud = 921600, | ||
431 | .uart_offset = 8, | ||
432 | }, | ||
433 | [timedia_4079e] = { | ||
434 | .flags = FL_BASE0|FL_BASE_BARS, | ||
435 | .num_ports = 1, | ||
436 | .base_baud = 921600, | ||
437 | .uart_offset = 8, | ||
438 | }, | ||
439 | [timedia_4079f] = { | ||
440 | .flags = FL_BASE0|FL_BASE_BARS, | ||
441 | .num_ports = 1, | ||
442 | .base_baud = 921600, | ||
443 | .uart_offset = 8, | ||
444 | }, | ||
445 | [timedia_9079a] = { | ||
446 | .flags = FL_BASE0|FL_BASE_BARS, | ||
447 | .num_ports = 1, | ||
448 | .base_baud = 921600, | ||
449 | .uart_offset = 8, | ||
450 | }, | ||
451 | [timedia_9079b] = { | ||
452 | .flags = FL_BASE0|FL_BASE_BARS, | ||
453 | .num_ports = 1, | ||
454 | .base_baud = 921600, | ||
455 | .uart_offset = 8, | ||
456 | }, | ||
457 | [timedia_9079c] = { | ||
458 | .flags = FL_BASE0|FL_BASE_BARS, | ||
459 | .num_ports = 1, | ||
460 | .base_baud = 921600, | ||
461 | .uart_offset = 8, | ||
462 | }, | ||
270 | }; | 463 | }; |
271 | 464 | ||
272 | struct parport_serial_private { | 465 | struct parport_serial_private { |
@@ -285,6 +478,10 @@ static int __devinit serial_register (struct pci_dev *dev, | |||
285 | struct serial_private *serial; | 478 | struct serial_private *serial; |
286 | 479 | ||
287 | board = &pci_parport_serial_boards[id->driver_data]; | 480 | board = &pci_parport_serial_boards[id->driver_data]; |
481 | |||
482 | if (board->num_ports == 0) | ||
483 | return 0; | ||
484 | |||
288 | serial = pciserial_init_ports(dev, board); | 485 | serial = pciserial_init_ports(dev, board); |
289 | 486 | ||
290 | if (IS_ERR(serial)) | 487 | if (IS_ERR(serial)) |