Subject: 16bit aligned NS16550 variant
To: None <tech-kern@netbsd.org>
From: TAKEMURA Shin <takemura@netbsd.org>
List: tech-kern
Date: 10/20/2001 18:25:34
This is a multi-part message in MIME format.

------=_NextPart_000_01D2_01C15994.9B8103C0
Content-Type: text/plain;
	charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

# It seems that my last message was lost. So I send this again...

I'd like to change NS16550 serial driver, 'com' to add 16bit register
access support. And I've made the patch(attached).

Some embedded companion chip and ASIC have UART compatible
function but you must make 16bit access for thier registers.

With this change, the driver will access it's registers with specified
access wrappers instead of bus_space_read/write.
There will be added new entries for compatibility and no ather files
will be affected. (I found over 50 files calling comprobe1 or
comcnattach and I  gave up to chage them all.)

Please review the patch. If no one against me, I will commit this 
change next weekend.

Takemura

Index: comvar.h
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/comvar.h,v
retrieving revision 1.42
diff -r1.42 comvar.h
69a70,78
> struct com_accessops {
>  void (*caop_write_reg)(bus_space_tag_t, bus_space_handle_t,
>      bus_size_t, u_int8_t);
>  void (*caop_write_reg_multi)(bus_space_tag_t, bus_space_handle_t,
>      bus_size_t, u_int8_t *, bus_size_t);
>  u_int8_t (*caop_read_reg)(bus_space_tag_t, bus_space_handle_t,
>      bus_size_t);
> };
> 
82a92
>  struct com_accessops *sc_aops;
149a160,167
> int comcnattachx __P((bus_space_tag_t, struct com_accessops *, bus_addr_t,
>         int, int, tcflag_t));
> 
> #ifdef KGDB
> int com_kgdb_attachx __P((bus_space_tag_t, struct com_accessops *,
>      bus_addr_t, int, int, tcflag_t));
> #endif
> 
150a169,170
> int comprobe1x __P((bus_space_tag_t, bus_space_handle_t,
>       struct com_accessops *));
163a184,186
> 
> extern struct com_accessops com_accessops_1;
> extern struct com_accessops com_accessops_2;
EOF


------=_NextPart_000_01D2_01C15994.9B8103C0
Content-Type: application/x-compressed;
	name="com.patch.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="com.patch.tgz"

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
CRIkSJAgQf6i/ABkN4BUAKAAAA==

------=_NextPart_000_01D2_01C15994.9B8103C0--