aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/parport/ChangeLog
blob: db717c1d62a5bd4f38952e2f9f441dde26ed6313 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
2001-10-11  Tim Waugh  <twaugh@redhat.com>
	* parport_pc.c, parport_serial.c: Support for NetMos cards.
	+ Patch originally from Michael Reinelt <reinelt@eunet.at>.

2002-04-25  Tim Waugh  <twaugh@redhat.com>

	* parport_serial.c, parport_pc.c: Move some SIIG cards around.
	Patch from Andrey Panin.

2002-01-20  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_compat_write_block_pio,
	parport_pc_ecp_write_block_pio, parport_pc_ecp_read_block_pio):
	Use the default implementations if the caller wants to use
	O_NONBLOCK.

2002-02-25  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Make sure that priv->ctr_writable includes IntEn
	even if IRQ is given as a parameter.

2002-01-21  Tim Waugh  <twaugh@redhat.com>

	* daisy.c: Apply patch from Max Vorobiev to make parport_daisy_select
	work for ECP/EPP modes.

2002-01-13  Niels Kristian Bech Jensen  <nkbj@image.dk>

	* parport_pc.c: Change some occurrences of frob_set_mode to
	ECR_WRITE.  This fixes PLIP.

2002-01-04  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_claim_or_block): Sleep interruptibly to prevent
	a possible deadlock.

2001-12-07  Damian Gruszka  <damian.gruszka@VisionSystems.de>

	* parport_pc.c (ECR_WRITE): Define.  If there are forbidden bits
	in the ECR register for some chips, this will be a useful place to
	put that knowledge.
	(change_mode): Use ECR_WRITE.
	(parport_pc_restore_state): Likewise.
	(parport_ECPPS2_supported): Likewise.
	(parport_ECPEPP_supported): Likewise.
	(irq_probe_EPP): Likewise.
	(programmable_irq_support): Likewise.
	(programmable_dma_support): Likewise.
	(parport_pc_probe_port): Likewise.

	(frob_set_mode): New function.  Set the mode bits of the ECR.
	(get_fifo_residue): Use frob_set_mode.
	(parport_pc_ecpepp_read_data): Likewise.
	(parport_pc_ecpepp_write_data): Likewise.
	(parport_pc_ecpepp_read_addr): Likewise.
	(parport_pc_ecpepp_write_addr): Likewise.
	(parport_pc_compat_write_block_pio): Likewise.
	(parport_pc_ecp_write_block_pio): Likewise.
	(parport_ECR_present): Likewise.
	(parport_ECP_supported): Likewise.
	(parport_EPP_supported): Likewise.
	(parport_ECPEPP_supported): Likewise.
	(programmable_irq_support): Likewise.
	(irq_probe_ECP): Likewise.
	(programmable_dma_support): Likewise.

	(parport_pc_enable_irq): Only enable interrupts if we know which
	IRQ line they will come from.
	(parport_pc_init_state): Set nErrIntrEn at initialisation.
	(parport_pc_restore_state): Only write writable bits of CTR.
	(parport_irq_probe): If no IRQ is found, take ackIntEn out of the
	writable bit set.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_fifo_write_block_pio): Correct typo.
	(parport_pc_init_state): Only set ackIntEn if we know which IRQ
	line the interrupts will come from.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (parport_ieee1284_epp_write_addr,
	parport_ieee1284_epp_read_addr): Actually do something useful.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (dmaval): Don't use DMA by default.  It seems to be
	too buggy at the moment.  Use 'dma=auto' to restore the previous
	behaviour.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* daisy.c (DEBUG): Undefine.

2001-12-06  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (parport_ieee1284_ecp_read_data): Mask off
	PARPORT_CONTROL_AUTOFD as well.  Bug spotted by Joe
	<joeja@mindspring.com>.

2001-12-03  Rich Liu  <Rich.Liu@ite.com.tw>

	* parport_pc.c (sio_ite_8872_probe): ITE8873 is a single-port
	serial board, not a serial+parallel.

2001-11-30  Niels Kristian Bech Jensen  <nkbj@image.dk>

	* parport_pc.c: Fix compiler warning.

2001-11-14  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_pci_probe): Hooks for PCI cards before
	and after probing for ports.
	* parport_serial.c (parport_register): Likewise.

2001-11-12  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (init_module): Warn when parameters are ignored.

2001-11-01  Damian Gruszka  <damian.gruszka@VisionSystems.de>

	* parport_serial.c (serial_register): Set base_baud before
	calling register_serial.

2001-10-26  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_irq_probe): When ECR programmable IRQ
	support fails, generate interrupts using the FIFO even if we don't
	want to use the FIFO for real data transfers.
	(parport_pc_probe_port): Display the ECR address if we have an
	ECR, not just if we will use the FIFO.

2001-10-24  Dave Strauss  <D.Strauss@motorola.com>

	* parport_pc.c (parport_pc_compat_write_block_pio,
	parport_pc_ecp_write_block_pio): Allow a few seconds for an ECP
	transfer to finish up.

2001-10-11  Tim Waugh  <twaugh@redhat.com>

	* parport_pc (sio_ite_8872_probe): New function, submitted by Rich
	Liu from ITE.  Cleaned up, removed bogus phys_to_virt calls.

2001-10-24  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Support for AKS AladdinCARD.  Patch from
	Aladdin Knowledge Systems (Christian Groessler).

2001-10-24  Tim Waugh  <twaugh@redhat.com>
	
	* ieee1284_ops.c (parport_ieee1284_ecp_read_data): Try to minimise
	turnaround time.

	* ieee1284.c (parport_poll_peripheral): Try a couple of times
	first without delaying.

2001-10-10  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Support for OX16PCI954 PCI card.

2001-10-10  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Support for OX12PCI840 PCI card (reported by
	mk@daveg.com).  Lock-ups diagnosed by Ronnie Arosa (and now we
	just don't trust its ECR).

2001-10-10  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c: Support for AVLAB cards.

2001-10-10  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (ecp_forward_to_reverse, ecp_reverse_to_forward):
	Remember to retry direction switch if it fails.  Patch from David
	Lambert.

2001-10-08  David C. Hansen  <haveblue@us.ibm.com>

	* share.c: Make driverlist_lock and parportlist_lock static.

2001-10-08  Philip Blundell  <philb@gnu.org>

	* parport_pc.c: New modular parameter verbose_logging.
	Make port->modes indicate the modes that we are prepared to use,
	rather than the modes that are available.

2001-10-07  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_probe_port): Fix memory leak spotted by
	Kipp Cannon.

2001-10-07  Tim Waugh  <twaugh@redhat.com>

	* parport_serial.c: Remove NetMos support, since it causes problems
	for some people.

2001-08-30  Tim Waugh  <twaugh@redhat.com>

	* parport_serial.c (parport_serial_pci_probe): Clean-up on partial
	registration failure.

2001-08-14  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_init_superio): Allow for more than one
	SuperIO device.  Patch from Rich Lio (ITE).

2001-08-11  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Support for Titan Electronics cards.

2001-08-08  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_unregister_device): Remove device from wait list
	too.

2001-06-20  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Make 'io_hi=0' work.

2001-05-31  Tim Waugh  <twaugh@redhat.com>

	* parport_serial.c: New file.

2001-06-05  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_unregister_port): New exported function.
	Do the opposite of parport_pc_probe_port.
	(cleanup_module): Use it.

2001-05-22  Juan Quintela  <quintela@mandrakesoft.com>

	* parport_amiga.c: Set printk levels.
	* parport_gsc.c: Likewise.
	* parport_mfc3.c: Likewise.
	* parport_pc.c: Likewise.
	* parport_sunbpp.c: Likewise.
	* probe.c: Likewise.
	* share.c: Likewise.

2001-05-10  Fred Barnes  <frmb2@ukc.ac.uk>

       * parport_pc.c (parport_pc_epp_read_data): added support for
       reading from a w91284pic peripheral, flag is PARPORT_W91284PIC.

2001-05-07  Fred Barnes  <frmb2@ukc.ac.uk>
 
 	* parport_pc.c (parport_pc_epp_read_data,
	parport_pc_epp_write_data, parport_pc_epp_read_addr,
	parport_pc_epp_write_addr): support for fast reads/writes using
	the PARPORT_EPP_FAST flag.
 
 	* ieee1284.c (parport_read, parport_write): added code to handle
	software EPP mode (IEEE1284_MODE_EPPSWE).  Added code to allow
	BYTE mode reverse transfers (previously always went for NIBBLE
	mode).
 
 	* ieee1284_ops.c (parport_ieee1284_epp_read_data,
	parport_ieee1284_epp_write_data): fixed various polarity problems.
	Also (theoretically) fixed address versions (.._addr), but no
	hardware to test this on.
 
 	* parport_pc.h: added parport_dump_state() function for debugging.
 	Needs to have DEBUG_PARPORT to be defined for it to be included.
 
2001-05-03  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Fix the compile problem I introduce from the last
	change.

2001-04-20  Paul Gortmaker  <p_gortmaker@yahoo.com>

	* parport_pc.c: Cut down the size quite a bit (more than 4k off
	the object, about 1k off the zImage) for the older non-PCI
	machines which are typically resource starved anyway...

2001-03-26  R Horn  <rjh@world.std.com>

	* parport_pc.c: Some commentary changes.

2001-04-19  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_probe_port): Remove __devinit
	attribute.  Export unconditionally.

2001-04-14  Jeff Garzik  <jgarzik@pobox.com>

	Merged:  2001-03-30  Tim Waugh  <twaugh@redhat.com>

        * drivers/parport/parport_pc.c: Make Via SuperIO chipsets behave
        like everything else with respect to irq= and dma= parameters.

2001-04-08  Tim Waugh  <twaugh@redhat.com>

      * parport_pc.c (parport_pc_save_state): Read from the soft copy of
      the control port.
      (parport_pc_restore_state): Update the soft copy of the control
      port.

2001-03-26  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_find_number, parport_find_base): Trigger
	a lowlevel driver load if there are no ports yet.

2001-03-26  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_ECP_supported): Remove the IRQ conflict
	check since it seems totally unreliable.

2001-03-02  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (parport_ieee1284_read_nibble): Reset nAutoFd
	on timeout.  Matches 2.2.x behaviour.

2001-03-02  Andrew Morton <andrewm@uow.edu.au>

	* parport_pc.c (registered_parport): New static variable.
	(parport_pc_find_ports): Set it when we register PCI driver.
	(init_module): Unregister PCI driver if necessary when we
	fail.

2001-03-02  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (parport_ieee1284_write_compat): Don't use
	down_trylock to reset the IRQ count.  Don't even use sema_init,
	because it's not even necessary to reset the count.  I can't
	remember why we ever did.

2001-01-04  Peter Osterlund  <peter.osterlund@mailbox.swipnet.se>

	* ieee1284.c (parport_negotiate): Fix missing printk argument.

2001-01-03  Paul Schleger  <Paul.Schleger@t-online.de>

	* probe.c (parse_data): Get rid of trailing blanks in values.
	Needed for XEROX XJ8C printer.

2001-01-03  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_probe_port): Say something when probes
	are omitted.

2001-01-03  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (sio_via_686a_probe): Correct dma=255 fix.

2000-11-21  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_ecp_write_block_pio): Fix
	reverse-to-forward logic.  Spotted by Roland Kuck
	<rci@cityweb.de>.

2000-09-16  Cesar Eduardo Barros  <cesarb@nitnet.com.br>

	* parport_pc.c (sio_via_686a_probe): Handle case
	where hardware returns 255 for IRQ or DMA.

2000-07-20  Eddie C. Dost  <ecd@skynet.be>

	* share.c (attach_driver_chain): attach[i](port) needs to be
	replaced by attach[count](port).

2000-07-20  Eddie C. Dost  <ecd@skynet.be>

	* daisy.c (add_dev): kmalloc args are in wrong order.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c: Documentation for parport_{get,port}_port,
	parport_find_{number,base}.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_unregister_device): Remove unneeded locking
	(test cad==dev).
	(parport_claim): Likewise.
	(parport_find_number): New function.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_register_port): Hold the parportlist_lock while
	looking for a free parport number.
	(parport_register_driver): Make sure that attach can block.
	(attach_driver_chain): Likewise.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c (call_driver_chain): Do reference counting things.
	(parport_get_port): New function.
	(parport_put_port): New function.
	(parport_register_port): Initialise reference count to zero.
	(parport_unregister_port): Check reference count rather than
	driver list to see if we can free the port.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c: Clarifications in doc comments.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_unregister_port): Fix typo in comment.

2000-07-11  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c: Support for the full range of Timedia cards.

2000-07-08  Tim Waugh  <twaugh@redhat.com>

	* daisy.c: License block comments as part of parportbook.
	* ieee1284.c: Likewise.
	* share.c: Likewise.

2000-06-30  Petr Vandrovec  <vandrove@vc.cvut.cz>

	* procfs.c (do_hardware_modes): Generated string can be up to 34
	chars long.

2000-06-20  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c (parport_pc_compat_write_block_pio): Warn about
	change_mode failures.
	(parport_pc_ecp_write_block_pio): Likewise.
	(parport_pc_ecp_read_block_pio): Likewise.

2000-06-20  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c (parport_SPP_supported): Warn more about possibly
	incorrect parameters.

2000-06-15  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_ECP_supported): Set PARPORT_MODE_COMPAT
	for ECP ports, since they can all do hardware accelerated
	compatibility mode (I assume).

2000-06-13  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (cleanup_module): Remark about possible bugs.

2000-06-13  Tim Waugh  <twaugh@redhat.com>

	* procfs.c: Break 'hardware' out into separate files.

2000-05-28  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* Fix PCI ID printk for non-superio PCI cards.

2000-05-28  Tim Waugh  <twaugh@redhat.com>

	* share.c (call_driver_chain): Get the driverlist_lock.
	(parport_register_device): Make sure that port->devices always
	looks consistent.
	(parport_register_driver): Ensure that parport drivers are given
	parameters that are valid for the duration of the callback by
	locking the portlist against changes.
	(parport_unregister_driver): Likewise.
	(parport_claim): Don't overwrite flags.

2000-05-28  Tim Waugh  <twaugh@redhat.com>

	* daisy.c (assign_addrs): Avoid double-probing daisy-chain devices
	if the first probe succeeds.

2000-05-16  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_claim): Fix SMP race.

2000-05-15  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c (parport_pc_compat_write_block_pio): Check for
	timeouts.
	(parport_pc_ecp_write_block_pio): Likewise.
	(parport_pc_ecp_read_block_pio): Likewise.

2000-05-02  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c: PCI SYBA patch and verbose PCI detection.

2000-05-02  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c (decode_smsc): Fix SMSC 665/666 identification.

2000-04-28  Tim Waugh  <twaugh@redhat.com>

	* ieee1284.c: Short function descriptions can't be multiline.

	* daisy.c: Short function descriptions can't be multiline.

2000-04-19  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_fifo_write_block_dma): Make maxlen
	calculation a bit clearer.

	* ieee1284.c (parport_negotiate): Turn on data line drivers.

	* ieee1284_ops.c (parport_ieee1284_read_byte): Turn off data line
	drivers.
	(parport_ieee1284_write_compat): Turn on data line drivers.

	* daisy.c (assign_addrs): Turn on data line drivers.
	(cpp_mux): Likewise.
	(cpp_daisy): Likewise.

2000-04-04  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Add support for another PCI card.

2000-04-04  Tim Waugh  <twaugh@redhat.com>

	* daisy.c: Documentation in kernel-doc format.

	* ieee1284.c: Likewise.

	* share.c: Likewise.

2000-04-01  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_register_device): Need to hold the module
	reference counts before sleeping.

2000-03-27  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_ecp_read_block_pio): Correct operation
	when peripheral is trying to send data when we stop listening.

2000-03-22  Tim Waugh  <twaugh@redhat.com>

	* init.c (parport_setup): Fix return value.

2000-03-21  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_pci_probe): Fix return value; call
	pci_enable_device.

2000-03-16  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_ECP_supported): This seems to trigger on
	machines that don't have an IRQ conflict; toned down the warning
	message accordingly.

2000-03-16  Gunther Mayer  <gunther.mayer@braunschweig.netsurf.de>

	* parport_pc.c (show_parconfig_smsc37c669): Fix typo.
	(decode_winbond): More IDs.
	(winbond_check): Protect against false positives.
	(winbond_check2): Likewise.
	(smsc_check): Likewise.

2000-03-15  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (cleanup_module): Don't call pci_unregister_driver
	if we didn't call pci_register_driver first.

2000-03-13  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_init): Moved from asm/parport.h.

	* Config.in: CONFIG_PARPORT_PC_SUPERIO: new option.

	* parport_pc.c (show_parconfig_smsc37c669): Make __devinit.
	(show_parconfig_winbond): Likewise.
	(decode_winbond): Likewise.
	(decode_smsc): Likewise.
	(winbond_check): Likewise.
	(winbond_check2): Likewise.
	(smsc_check): Likewise.
	(detect_and_report_winbond): Likewise.
	(detect_and_report_smsc): Likewise.
	(get_superio_dma): Likewise.
	(get_superio_irq): Likewise.
	(parport_pc_find_isa_ports): New function.
	(parport_pc_find_ports): New function.
	(init_module): Make superio a config option, not a parameter.

2000-03-10  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (decode_winbond): Use correct 83877ATF chip ID.
	(decode_winbond): Fix typo.

2000-03-09  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Integrate SuperIO PCI probe with normal PCI card
	probe, so that the MODULE_DEVICE_TABLE is complete.