linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] constify some serial structs
@ 2006-08-29 19:57 Helge Deller
  2006-08-29 20:05 ` Russell King
  0 siblings, 1 reply; 2+ messages in thread
From: Helge Deller @ 2006-08-29 19:57 UTC (permalink / raw)
  To: linux-serial, rmk+serial

[-- Attachment #1: Type: text/plain, Size: 114 bytes --]

- some const- ification and usage of ARRAY_SIZE() in serial drivers

Signed-off-by: Helge Deller <deller@gmx.de>


[-- Attachment #2: diff --]
[-- Type: text/plain, Size: 2790 bytes --]

diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index cd1979d..851e483 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -458,11 +458,11 @@ static int pci_siig_setup(struct serial_
  * growing *huge*, we use this function to collapse some 70 entries
  * in the PCI table into one, for sanity's and compactness's sake.
  */
-static unsigned short timedia_single_port[] = {
+static const unsigned short timedia_single_port[] = {
 	0x4025, 0x4027, 0x4028, 0x5025, 0x5027, 0
 };
 
-static unsigned short timedia_dual_port[] = {
+static const unsigned short timedia_dual_port[] = {
 	0x0002, 0x4036, 0x4037, 0x4038, 0x4078, 0x4079, 0x4085,
 	0x4088, 0x4089, 0x5037, 0x5078, 0x5079, 0x5085, 0x6079, 
 	0x7079, 0x8079, 0x8137, 0x8138, 0x8237, 0x8238, 0x9079, 
@@ -470,35 +470,34 @@ static unsigned short timedia_dual_port[
 	0xD079, 0
 };
 
-static unsigned short timedia_quad_port[] = {
+static const unsigned short timedia_quad_port[] = {
 	0x4055, 0x4056, 0x4095, 0x4096, 0x5056, 0x8156, 0x8157, 
 	0x8256, 0x8257, 0x9056, 0x9156, 0x9157, 0x9158, 0x9159, 
 	0x9256, 0x9257, 0xA056, 0xA157, 0xA158, 0xA159, 0xB056,
 	0xB157, 0
 };
 
-static unsigned short timedia_eight_port[] = {
+static const unsigned short timedia_eight_port[] = {
 	0x4065, 0x4066, 0x5065, 0x5066, 0x8166, 0x9066, 0x9166, 
 	0x9167, 0x9168, 0xA066, 0xA167, 0xA168, 0
 };
 
 static const struct timedia_struct {
 	int num;
-	unsigned short *ids;
+	const unsigned short *ids;
 } timedia_data[] = {
 	{ 1, timedia_single_port },
 	{ 2, timedia_dual_port },
 	{ 4, timedia_quad_port },
-	{ 8, timedia_eight_port },
-	{ 0, NULL }
+	{ 8, timedia_eight_port }
 };
 
 static int pci_timedia_init(struct pci_dev *dev)
 {
-	unsigned short *ids;
+	const unsigned short *ids;
 	int i, j;
 
-	for (i = 0; timedia_data[i].num; i++) {
+	for (i = 0; i < ARRAY_SIZE(timedia_data); i++) {
 		ids = timedia_data[i].ids;
 		for (j = 0; ids[j]; j++)
 			if (dev->subsystem_device == ids[j])
diff --git a/drivers/serial/mcfserial.c b/drivers/serial/mcfserial.c
index 832abd3..df2154c 100644
--- a/drivers/serial/mcfserial.c
+++ b/drivers/serial/mcfserial.c
@@ -118,17 +118,16 @@ static struct mcf_serial mcfrs_table[] =
 };
 
 
-#define	NR_PORTS	(sizeof(mcfrs_table) / sizeof(struct mcf_serial))
+#define	NR_PORTS		ARRAY_SIZE(mcfrs_table)
 
 /*
  * This is used to figure out the divisor speeds and the timeouts.
  */
-static int mcfrs_baud_table[] = {
+static const int mcfrs_baud_table[] = {
 	0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
 	9600, 19200, 38400, 57600, 115200, 230400, 460800, 0
 };
-#define MCFRS_BAUD_TABLE_SIZE \
-			(sizeof(mcfrs_baud_table)/sizeof(mcfrs_baud_table[0]))
+#define MCFRS_BAUD_TABLE_SIZE	ARRAY_SIZE(mcfrs_baud_table)
 
 
 #ifdef CONFIG_MAGIC_SYSRQ

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] constify some serial structs
  2006-08-29 19:57 [PATCH] constify some serial structs Helge Deller
@ 2006-08-29 20:05 ` Russell King
  0 siblings, 0 replies; 2+ messages in thread
From: Russell King @ 2006-08-29 20:05 UTC (permalink / raw)
  To: Helge Deller; +Cc: linux-serial

On Tue, Aug 29, 2006 at 09:57:29PM +0200, Helge Deller wrote:
> - some const- ification and usage of ARRAY_SIZE() in serial drivers
> 
> Signed-off-by: Helge Deller <deller@gmx.de>

Please separate these patches.

> diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
> index cd1979d..851e483 100644
> --- a/drivers/serial/8250_pci.c
> +++ b/drivers/serial/8250_pci.c
> @@ -458,11 +458,11 @@ static int pci_siig_setup(struct serial_
>   * growing *huge*, we use this function to collapse some 70 entries
>   * in the PCI table into one, for sanity's and compactness's sake.
>   */
> -static unsigned short timedia_single_port[] = {
> +static const unsigned short timedia_single_port[] = {
>  	0x4025, 0x4027, 0x4028, 0x5025, 0x5027, 0
>  };
>  
> -static unsigned short timedia_dual_port[] = {
> +static const unsigned short timedia_dual_port[] = {
>  	0x0002, 0x4036, 0x4037, 0x4038, 0x4078, 0x4079, 0x4085,
>  	0x4088, 0x4089, 0x5037, 0x5078, 0x5079, 0x5085, 0x6079, 
>  	0x7079, 0x8079, 0x8137, 0x8138, 0x8237, 0x8238, 0x9079, 
> @@ -470,35 +470,34 @@ static unsigned short timedia_dual_port[
>  	0xD079, 0
>  };
>  
> -static unsigned short timedia_quad_port[] = {
> +static const unsigned short timedia_quad_port[] = {
>  	0x4055, 0x4056, 0x4095, 0x4096, 0x5056, 0x8156, 0x8157, 
>  	0x8256, 0x8257, 0x9056, 0x9156, 0x9157, 0x9158, 0x9159, 
>  	0x9256, 0x9257, 0xA056, 0xA157, 0xA158, 0xA159, 0xB056,
>  	0xB157, 0
>  };
>  
> -static unsigned short timedia_eight_port[] = {
> +static const unsigned short timedia_eight_port[] = {
>  	0x4065, 0x4066, 0x5065, 0x5066, 0x8166, 0x9066, 0x9166, 
>  	0x9167, 0x9168, 0xA066, 0xA167, 0xA168, 0
>  };
>  
>  static const struct timedia_struct {
>  	int num;
> -	unsigned short *ids;
> +	const unsigned short *ids;
>  } timedia_data[] = {
>  	{ 1, timedia_single_port },
>  	{ 2, timedia_dual_port },
>  	{ 4, timedia_quad_port },
> -	{ 8, timedia_eight_port },
> -	{ 0, NULL }
> +	{ 8, timedia_eight_port }
>  };
>  
>  static int pci_timedia_init(struct pci_dev *dev)
>  {
> -	unsigned short *ids;
> +	const unsigned short *ids;
>  	int i, j;
>  
> -	for (i = 0; timedia_data[i].num; i++) {
> +	for (i = 0; i < ARRAY_SIZE(timedia_data); i++) {
>  		ids = timedia_data[i].ids;
>  		for (j = 0; ids[j]; j++)
>  			if (dev->subsystem_device == ids[j])

I'm fine with the above.

> diff --git a/drivers/serial/mcfserial.c b/drivers/serial/mcfserial.c
> index 832abd3..df2154c 100644
> --- a/drivers/serial/mcfserial.c
> +++ b/drivers/serial/mcfserial.c
> @@ -118,17 +118,16 @@ static struct mcf_serial mcfrs_table[] =
>  };
>  
>  
> -#define	NR_PORTS	(sizeof(mcfrs_table) / sizeof(struct mcf_serial))
> +#define	NR_PORTS		ARRAY_SIZE(mcfrs_table)
>  
>  /*
>   * This is used to figure out the divisor speeds and the timeouts.
>   */
> -static int mcfrs_baud_table[] = {
> +static const int mcfrs_baud_table[] = {
>  	0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
>  	9600, 19200, 38400, 57600, 115200, 230400, 460800, 0
>  };
> -#define MCFRS_BAUD_TABLE_SIZE \
> -			(sizeof(mcfrs_baud_table)/sizeof(mcfrs_baud_table[0]))
> +#define MCFRS_BAUD_TABLE_SIZE	ARRAY_SIZE(mcfrs_baud_table)
>  
>  
>  #ifdef CONFIG_MAGIC_SYSRQ

But not so with this - because you've highlighted something that this
driver should never have been doing in the first place.  There's
a function to convert the termios settings to a baud rate.

In light of the recent discussions about baud rates, this driver should
probably be converted to use the generic function - tty_termios_baud_rate()

Not really your problem I know, but a useful cleanup nevertheless.
It should probably be tested by the driver author though.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-08-29 20:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-29 19:57 [PATCH] constify some serial structs Helge Deller
2006-08-29 20:05 ` Russell King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).