[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20081022104327.GC7843@atrey.karlin.mff.cuni.cz>
Date: Wed, 22 Oct 2008 12:43:27 +0200
From: Pavel Machek <pavel@...e.cz>
To: Pekka J Enberg <penberg@...helsinki.fi>
Cc: Greg Kroah-Hartman <greg@...ah.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/6] w35und: reg queue struct typedef removal
> From: Pekka Enberg <penberg@...helsinki.fi>
>
> This patch removes the struct typedefs for reg queues.
>
> Cc: Pavel Machek <pavel@...e.cz>
> Signed-off-by: Pekka Enberg <penberg@...helsinki.fi>
ACK.
> ---
> drivers/staging/winbond/linux/wb35reg.c | 190 ++++++++++++++--------------
> drivers/staging/winbond/linux/wb35reg_s.h | 30 ++---
> 2 files changed, 108 insertions(+), 112 deletions(-)
>
> diff --git a/drivers/staging/winbond/linux/wb35reg.c b/drivers/staging/winbond/linux/wb35reg.c
> index 4383a61..7fee19a 100644
> --- a/drivers/staging/winbond/linux/wb35reg.c
> +++ b/drivers/staging/winbond/linux/wb35reg.c
> @@ -14,7 +14,7 @@ Wb35Reg_BurstWrite(phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterData, u8 N
> {
> PWB35REG pWb35Reg = &pHwData->Wb35Reg;
> struct urb *urb = NULL;
> - PREG_QUEUE pRegQueue = NULL;
> + struct wb35_reg_queue *reg_queue = NULL;
> u16 UrbSize;
> struct usb_ctrlrequest *dr;
> u16 i, DataSize = NumberOfData*4;
> @@ -24,34 +24,34 @@ Wb35Reg_BurstWrite(phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterData, u8 N
> return FALSE;
>
> // Trying to use burst write function if use new hardware
> - UrbSize = sizeof(REG_QUEUE) + DataSize + sizeof(struct usb_ctrlrequest);
> - OS_MEMORY_ALLOC( (void* *)&pRegQueue, UrbSize );
> + UrbSize = sizeof(struct wb35_reg_queue) + DataSize + sizeof(struct usb_ctrlrequest);
> + OS_MEMORY_ALLOC( (void* *)®_queue, UrbSize );
> urb = wb_usb_alloc_urb(0);
> - if( urb && pRegQueue ) {
> - pRegQueue->DIRECT = 2;// burst write register
> - pRegQueue->INDEX = RegisterNo;
> - pRegQueue->pBuffer = (u32 *)((u8 *)pRegQueue + sizeof(REG_QUEUE));
> - memcpy( pRegQueue->pBuffer, pRegisterData, DataSize );
> + if( urb && reg_queue ) {
> + reg_queue->DIRECT = 2;// burst write register
> + reg_queue->INDEX = RegisterNo;
> + reg_queue->pBuffer = (u32 *)((u8 *)reg_queue + sizeof(struct wb35_reg_queue));
> + memcpy( reg_queue->pBuffer, pRegisterData, DataSize );
> //the function for reversing register data from little endian to big endian
> for( i=0; i<NumberOfData ; i++ )
> - pRegQueue->pBuffer[i] = cpu_to_le32( pRegQueue->pBuffer[i] );
> + reg_queue->pBuffer[i] = cpu_to_le32( reg_queue->pBuffer[i] );
>
> - dr = (struct usb_ctrlrequest *)((u8 *)pRegQueue + sizeof(REG_QUEUE) + DataSize);
> + dr = (struct usb_ctrlrequest *)((u8 *)reg_queue + sizeof(struct wb35_reg_queue) + DataSize);
> dr->bRequestType = USB_TYPE_VENDOR | USB_DIR_OUT | USB_RECIP_DEVICE;
> dr->bRequest = 0x04; // USB or vendor-defined request code, burst mode
> dr->wValue = cpu_to_le16( Flag ); // 0: Register number auto-increment, 1: No auto increment
> dr->wIndex = cpu_to_le16( RegisterNo );
> dr->wLength = cpu_to_le16( DataSize );
> - pRegQueue->Next = NULL;
> - pRegQueue->pUsbReq = dr;
> - pRegQueue->urb = urb;
> + reg_queue->Next = NULL;
> + reg_queue->pUsbReq = dr;
> + reg_queue->urb = urb;
>
> spin_lock_irq( &pWb35Reg->EP0VM_spin_lock );
> - if (pWb35Reg->pRegFirst == NULL)
> - pWb35Reg->pRegFirst = pRegQueue;
> + if (pWb35Reg->reg_first == NULL)
> + pWb35Reg->reg_first = reg_queue;
> else
> - pWb35Reg->pRegLast->Next = pRegQueue;
> - pWb35Reg->pRegLast = pRegQueue;
> + pWb35Reg->reg_last->Next = reg_queue;
> + pWb35Reg->reg_last = reg_queue;
>
> spin_unlock_irq( &pWb35Reg->EP0VM_spin_lock );
>
> @@ -62,8 +62,8 @@ Wb35Reg_BurstWrite(phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterData, u8 N
> } else {
> if (urb)
> usb_free_urb(urb);
> - if (pRegQueue)
> - kfree(pRegQueue);
> + if (reg_queue)
> + kfree(reg_queue);
> return FALSE;
> }
> return FALSE;
> @@ -164,7 +164,7 @@ Wb35Reg_Write( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue )
> PWB35REG pWb35Reg = &pHwData->Wb35Reg;
> struct usb_ctrlrequest *dr;
> struct urb *urb = NULL;
> - PREG_QUEUE pRegQueue = NULL;
> + struct wb35_reg_queue *reg_queue = NULL;
> u16 UrbSize;
>
>
> @@ -173,15 +173,15 @@ Wb35Reg_Write( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue )
> return FALSE;
>
> // update the register by send urb request------------------------------------
> - UrbSize = sizeof(REG_QUEUE) + sizeof(struct usb_ctrlrequest);
> - OS_MEMORY_ALLOC( (void* *)&pRegQueue, UrbSize );
> + UrbSize = sizeof(struct wb35_reg_queue) + sizeof(struct usb_ctrlrequest);
> + OS_MEMORY_ALLOC( (void* *)®_queue, UrbSize );
> urb = wb_usb_alloc_urb(0);
> - if (urb && pRegQueue) {
> - pRegQueue->DIRECT = 1;// burst write register
> - pRegQueue->INDEX = RegisterNo;
> - pRegQueue->VALUE = cpu_to_le32(RegisterValue);
> - pRegQueue->RESERVED_VALID = FALSE;
> - dr = (struct usb_ctrlrequest *)((u8 *)pRegQueue + sizeof(REG_QUEUE));
> + if (urb && reg_queue) {
> + reg_queue->DIRECT = 1;// burst write register
> + reg_queue->INDEX = RegisterNo;
> + reg_queue->VALUE = cpu_to_le32(RegisterValue);
> + reg_queue->RESERVED_VALID = FALSE;
> + dr = (struct usb_ctrlrequest *)((u8 *)reg_queue + sizeof(struct wb35_reg_queue));
> dr->bRequestType = USB_TYPE_VENDOR|USB_DIR_OUT |USB_RECIP_DEVICE;
> dr->bRequest = 0x03; // USB or vendor-defined request code, burst mode
> dr->wValue = cpu_to_le16(0x0);
> @@ -189,16 +189,16 @@ Wb35Reg_Write( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue )
> dr->wLength = cpu_to_le16(4);
>
> // Enter the sending queue
> - pRegQueue->Next = NULL;
> - pRegQueue->pUsbReq = dr;
> - pRegQueue->urb = urb;
> + reg_queue->Next = NULL;
> + reg_queue->pUsbReq = dr;
> + reg_queue->urb = urb;
>
> spin_lock_irq(&pWb35Reg->EP0VM_spin_lock );
> - if (pWb35Reg->pRegFirst == NULL)
> - pWb35Reg->pRegFirst = pRegQueue;
> + if (pWb35Reg->reg_first == NULL)
> + pWb35Reg->reg_first = reg_queue;
> else
> - pWb35Reg->pRegLast->Next = pRegQueue;
> - pWb35Reg->pRegLast = pRegQueue;
> + pWb35Reg->reg_last->Next = reg_queue;
> + pWb35Reg->reg_last = reg_queue;
>
> spin_unlock_irq( &pWb35Reg->EP0VM_spin_lock );
>
> @@ -209,7 +209,7 @@ Wb35Reg_Write( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue )
> } else {
> if (urb)
> usb_free_urb(urb);
> - kfree(pRegQueue);
> + kfree(reg_queue);
> return FALSE;
> }
> }
> @@ -225,7 +225,7 @@ Wb35Reg_WriteWithCallbackValue( phw_data_t pHwData, u16 RegisterNo, u32 Register
> PWB35REG pWb35Reg = &pHwData->Wb35Reg;
> struct usb_ctrlrequest *dr;
> struct urb *urb = NULL;
> - PREG_QUEUE pRegQueue = NULL;
> + struct wb35_reg_queue *reg_queue = NULL;
> u16 UrbSize;
>
> // Module shutdown
> @@ -233,17 +233,17 @@ Wb35Reg_WriteWithCallbackValue( phw_data_t pHwData, u16 RegisterNo, u32 Register
> return FALSE;
>
> // update the register by send urb request------------------------------------
> - UrbSize = sizeof(REG_QUEUE) + sizeof(struct usb_ctrlrequest);
> - OS_MEMORY_ALLOC((void* *) &pRegQueue, UrbSize );
> + UrbSize = sizeof(struct wb35_reg_queue) + sizeof(struct usb_ctrlrequest);
> + OS_MEMORY_ALLOC((void* *) ®_queue, UrbSize );
> urb = wb_usb_alloc_urb(0);
> - if (urb && pRegQueue) {
> - pRegQueue->DIRECT = 1;// burst write register
> - pRegQueue->INDEX = RegisterNo;
> - pRegQueue->VALUE = cpu_to_le32(RegisterValue);
> + if (urb && reg_queue) {
> + reg_queue->DIRECT = 1;// burst write register
> + reg_queue->INDEX = RegisterNo;
> + reg_queue->VALUE = cpu_to_le32(RegisterValue);
> //NOTE : Users must guarantee the size of value will not exceed the buffer size.
> - memcpy(pRegQueue->RESERVED, pValue, Len);
> - pRegQueue->RESERVED_VALID = TRUE;
> - dr = (struct usb_ctrlrequest *)((u8 *)pRegQueue + sizeof(REG_QUEUE));
> + memcpy(reg_queue->RESERVED, pValue, Len);
> + reg_queue->RESERVED_VALID = TRUE;
> + dr = (struct usb_ctrlrequest *)((u8 *)reg_queue + sizeof(struct wb35_reg_queue));
> dr->bRequestType = USB_TYPE_VENDOR|USB_DIR_OUT |USB_RECIP_DEVICE;
> dr->bRequest = 0x03; // USB or vendor-defined request code, burst mode
> dr->wValue = cpu_to_le16(0x0);
> @@ -251,15 +251,15 @@ Wb35Reg_WriteWithCallbackValue( phw_data_t pHwData, u16 RegisterNo, u32 Register
> dr->wLength = cpu_to_le16(4);
>
> // Enter the sending queue
> - pRegQueue->Next = NULL;
> - pRegQueue->pUsbReq = dr;
> - pRegQueue->urb = urb;
> + reg_queue->Next = NULL;
> + reg_queue->pUsbReq = dr;
> + reg_queue->urb = urb;
> spin_lock_irq (&pWb35Reg->EP0VM_spin_lock );
> - if( pWb35Reg->pRegFirst == NULL )
> - pWb35Reg->pRegFirst = pRegQueue;
> + if( pWb35Reg->reg_first == NULL )
> + pWb35Reg->reg_first = reg_queue;
> else
> - pWb35Reg->pRegLast->Next = pRegQueue;
> - pWb35Reg->pRegLast = pRegQueue;
> + pWb35Reg->reg_last->Next = reg_queue;
> + pWb35Reg->reg_last = reg_queue;
>
> spin_unlock_irq ( &pWb35Reg->EP0VM_spin_lock );
>
> @@ -269,7 +269,7 @@ Wb35Reg_WriteWithCallbackValue( phw_data_t pHwData, u16 RegisterNo, u32 Register
> } else {
> if (urb)
> usb_free_urb(urb);
> - kfree(pRegQueue);
> + kfree(reg_queue);
> return FALSE;
> }
> }
> @@ -332,7 +332,7 @@ Wb35Reg_Read(phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterValue )
> PWB35REG pWb35Reg = &pHwData->Wb35Reg;
> struct usb_ctrlrequest * dr;
> struct urb *urb;
> - PREG_QUEUE pRegQueue;
> + struct wb35_reg_queue *reg_queue;
> u16 UrbSize;
>
> // Module shutdown
> @@ -340,15 +340,15 @@ Wb35Reg_Read(phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterValue )
> return FALSE;
>
> // update the variable by send Urb to read register ------------------------------------
> - UrbSize = sizeof(REG_QUEUE) + sizeof(struct usb_ctrlrequest);
> - OS_MEMORY_ALLOC( (void* *)&pRegQueue, UrbSize );
> + UrbSize = sizeof(struct wb35_reg_queue) + sizeof(struct usb_ctrlrequest);
> + OS_MEMORY_ALLOC( (void* *)®_queue, UrbSize );
> urb = wb_usb_alloc_urb(0);
> - if( urb && pRegQueue )
> + if( urb && reg_queue )
> {
> - pRegQueue->DIRECT = 0;// read register
> - pRegQueue->INDEX = RegisterNo;
> - pRegQueue->pBuffer = pRegisterValue;
> - dr = (struct usb_ctrlrequest *)((u8 *)pRegQueue + sizeof(REG_QUEUE));
> + reg_queue->DIRECT = 0;// read register
> + reg_queue->INDEX = RegisterNo;
> + reg_queue->pBuffer = pRegisterValue;
> + dr = (struct usb_ctrlrequest *)((u8 *)reg_queue + sizeof(struct wb35_reg_queue));
> dr->bRequestType = USB_TYPE_VENDOR|USB_RECIP_DEVICE|USB_DIR_IN;
> dr->bRequest = 0x01; // USB or vendor-defined request code, burst mode
> dr->wValue = cpu_to_le16(0x0);
> @@ -356,15 +356,15 @@ Wb35Reg_Read(phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterValue )
> dr->wLength = cpu_to_le16 (4);
>
> // Enter the sending queue
> - pRegQueue->Next = NULL;
> - pRegQueue->pUsbReq = dr;
> - pRegQueue->urb = urb;
> + reg_queue->Next = NULL;
> + reg_queue->pUsbReq = dr;
> + reg_queue->urb = urb;
> spin_lock_irq ( &pWb35Reg->EP0VM_spin_lock );
> - if( pWb35Reg->pRegFirst == NULL )
> - pWb35Reg->pRegFirst = pRegQueue;
> + if( pWb35Reg->reg_first == NULL )
> + pWb35Reg->reg_first = reg_queue;
> else
> - pWb35Reg->pRegLast->Next = pRegQueue;
> - pWb35Reg->pRegLast = pRegQueue;
> + pWb35Reg->reg_last->Next = reg_queue;
> + pWb35Reg->reg_last = reg_queue;
>
> spin_unlock_irq( &pWb35Reg->EP0VM_spin_lock );
>
> @@ -375,7 +375,7 @@ Wb35Reg_Read(phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterValue )
> } else {
> if (urb)
> usb_free_urb( urb );
> - kfree(pRegQueue);
> + kfree(reg_queue);
> return FALSE;
> }
> }
> @@ -401,7 +401,7 @@ Wb35Reg_EP0VM(phw_data_t pHwData )
> struct usb_ctrlrequest *dr;
> u32 * pBuffer;
> int ret = -1;
> - PREG_QUEUE pRegQueue;
> + struct wb35_reg_queue *reg_queue;
>
>
> if (pWb35Reg->SyncIoPause)
> @@ -412,23 +412,23 @@ Wb35Reg_EP0VM(phw_data_t pHwData )
>
> // Get the register data and send to USB through Irp
> spin_lock_irq( &pWb35Reg->EP0VM_spin_lock );
> - pRegQueue = pWb35Reg->pRegFirst;
> + reg_queue = pWb35Reg->reg_first;
> spin_unlock_irq( &pWb35Reg->EP0VM_spin_lock );
>
> - if (!pRegQueue)
> + if (!reg_queue)
> goto cleanup;
>
> // Get an Urb, send it
> - urb = (struct urb *)pRegQueue->urb;
> + urb = (struct urb *)reg_queue->urb;
>
> - dr = pRegQueue->pUsbReq;
> - urb = pRegQueue->urb;
> - pBuffer = pRegQueue->pBuffer;
> - if (pRegQueue->DIRECT == 1) // output
> - pBuffer = &pRegQueue->VALUE;
> + dr = reg_queue->pUsbReq;
> + urb = reg_queue->urb;
> + pBuffer = reg_queue->pBuffer;
> + if (reg_queue->DIRECT == 1) // output
> + pBuffer = ®_queue->VALUE;
>
> usb_fill_control_urb( urb, pHwData->WbUsb.udev,
> - REG_DIRECTION(pHwData->WbUsb.udev,pRegQueue),
> + REG_DIRECTION(pHwData->WbUsb.udev,reg_queue),
> (u8 *)dr,pBuffer,cpu_to_le16(dr->wLength),
> Wb35Reg_EP0VM_complete, (void*)pHwData);
>
> @@ -456,7 +456,7 @@ Wb35Reg_EP0VM_complete(struct urb *urb)
> {
> phw_data_t pHwData = (phw_data_t)urb->context;
> PWB35REG pWb35Reg = &pHwData->Wb35Reg;
> - PREG_QUEUE pRegQueue;
> + struct wb35_reg_queue *reg_queue;
>
>
> // Variable setting
> @@ -469,10 +469,10 @@ Wb35Reg_EP0VM_complete(struct urb *urb)
> } else {
> // Complete to send, remove the URB from the first
> spin_lock_irq( &pWb35Reg->EP0VM_spin_lock );
> - pRegQueue = pWb35Reg->pRegFirst;
> - if (pRegQueue == pWb35Reg->pRegLast)
> - pWb35Reg->pRegLast = NULL;
> - pWb35Reg->pRegFirst = pWb35Reg->pRegFirst->Next;
> + reg_queue = pWb35Reg->reg_first;
> + if (reg_queue == pWb35Reg->reg_last)
> + pWb35Reg->reg_last = NULL;
> + pWb35Reg->reg_first = pWb35Reg->reg_first->Next;
> spin_unlock_irq( &pWb35Reg->EP0VM_spin_lock );
>
> if (pWb35Reg->EP0VM_status) {
> @@ -489,7 +489,7 @@ Wb35Reg_EP0VM_complete(struct urb *urb)
> Wb35Reg_EP0VM(pHwData);
> }
>
> - kfree(pRegQueue);
> + kfree(reg_queue);
> }
>
> usb_free_urb(urb);
> @@ -501,7 +501,7 @@ Wb35Reg_destroy(phw_data_t pHwData)
> {
> PWB35REG pWb35Reg = &pHwData->Wb35Reg;
> struct urb *urb;
> - PREG_QUEUE pRegQueue;
> + struct wb35_reg_queue *reg_queue;
>
>
> Uxx_power_off_procedure(pHwData);
> @@ -514,17 +514,17 @@ Wb35Reg_destroy(phw_data_t pHwData)
>
> // Release all the data in RegQueue
> spin_lock_irq( &pWb35Reg->EP0VM_spin_lock );
> - pRegQueue = pWb35Reg->pRegFirst;
> - while (pRegQueue) {
> - if (pRegQueue == pWb35Reg->pRegLast)
> - pWb35Reg->pRegLast = NULL;
> - pWb35Reg->pRegFirst = pWb35Reg->pRegFirst->Next;
> + reg_queue = pWb35Reg->reg_first;
> + while (reg_queue) {
> + if (reg_queue == pWb35Reg->reg_last)
> + pWb35Reg->reg_last = NULL;
> + pWb35Reg->reg_first = pWb35Reg->reg_first->Next;
>
> - urb = pRegQueue->urb;
> + urb = reg_queue->urb;
> spin_unlock_irq( &pWb35Reg->EP0VM_spin_lock );
> if (urb) {
> usb_free_urb(urb);
> - kfree(pRegQueue);
> + kfree(reg_queue);
> } else {
> #ifdef _PE_REG_DUMP_
> WBDEBUG(("EP0 queue release error\n"));
> @@ -532,7 +532,7 @@ Wb35Reg_destroy(phw_data_t pHwData)
> }
> spin_lock_irq( &pWb35Reg->EP0VM_spin_lock );
>
> - pRegQueue = pWb35Reg->pRegFirst;
> + reg_queue = pWb35Reg->reg_first;
> }
> spin_unlock_irq( &pWb35Reg->EP0VM_spin_lock );
> }
> diff --git a/drivers/staging/winbond/linux/wb35reg_s.h b/drivers/staging/winbond/linux/wb35reg_s.h
> index c633b92..54b0340 100644
> --- a/drivers/staging/winbond/linux/wb35reg_s.h
> +++ b/drivers/staging/winbond/linux/wb35reg_s.h
> @@ -67,23 +67,19 @@
> #define DEFAULT_DTIM_ALERT_TIME 0
>
>
> -typedef struct _REG_QUEUE
> -{
> - struct urb *urb;
> - void* pUsbReq;
> - void* Next;
> - union
> - {
> +struct wb35_reg_queue {
> + struct urb *urb;
> + void *pUsbReq;
> + void *Next;
> + union {
> u32 VALUE;
> - u32 * pBuffer;
> + u32 *pBuffer;
> };
> - u8 RESERVED[4];// space reserved for communication
> -
> - u16 INDEX; // For storing the register index
> - u8 RESERVED_VALID; //Indicate whether the RESERVED space is valid at this command.
> - u8 DIRECT; // 0:In 1:Out
> -
> -} REG_QUEUE, *PREG_QUEUE;
> + u8 RESERVED[4]; // space reserved for communication
> + u16 INDEX; // For storing the register index
> + u8 RESERVED_VALID; // Indicate whether the RESERVED space is valid at this command.
> + u8 DIRECT; // 0:In 1:Out
> +};
>
> //====================================
> // Internal variable for module
> @@ -145,8 +141,8 @@ typedef struct _WB35REG
> //-------------------
> spinlock_t EP0VM_spin_lock; // 4B
> u32 EP0VM_status;//$$
> - PREG_QUEUE pRegFirst;
> - PREG_QUEUE pRegLast;
> + struct wb35_reg_queue *reg_first;
> + struct wb35_reg_queue *reg_last;
> OS_ATOMIC RegFireCount;
>
> // Hardware status
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists