constify some serial structs
PATCH 1/1 constify some serial structs
- some const- ification and usage of ARRAY_SIZE() in serial drivers
drivers/serial/8250_pci.c +8 -9
@@ -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])
drivers/serial/mcfserial.c +3 -4
@@ -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
Quoted 3 lines · Helge Deller
- some const- ification and usage of
ARRAY_SIZE()in serial driversSigned-off-by Helge Deller <[email protected]>
Please separate these patches.
Quoted 50 lines
drivers/serial/8250_pci.c +6
-7@@ -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)
drivers/serial/8250_pci.c static unsigned short timedia_dual_port[ · line 503
Quoted 10 lines
drivers/serial/8250_pci.c +2
-2{ -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.
Quoted 15 lines
drivers/serial/mcfserial.c +1
-2@@ -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[] = {
drivers/serial/mcfserial.c static struct mcf_serial mcfrs_table[] = · line 133
Quoted 10 lines
drivers/serial/mcfserial.c +2
-2+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.
Signature · 3 lines
Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core