diff options
author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2015-09-22 09:24:33 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2015-10-01 13:40:21 -0400 |
commit | c9760ad817091b19fcbb86c8cb5e1ab9e90d913b (patch) | |
tree | 0971bcd5186547ebadead0d4520716feac353d99 | |
parent | 79a5b4aa3511f82e1398223062cd62051044288d (diff) |
usb: gadget: amd5536udc: remove forward declaration of udc_create_dma_chain
Rearrange udc_create_dma_chain to remove the forward declaration. While
rearranging fixed the relevant checkpatch warnings.
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r-- | drivers/usb/gadget/udc/amd5536udc.c | 238 |
1 files changed, 117 insertions, 121 deletions
diff --git a/drivers/usb/gadget/udc/amd5536udc.c b/drivers/usb/gadget/udc/amd5536udc.c index f218520356ff..2602173d68d4 100644 --- a/drivers/usb/gadget/udc/amd5536udc.c +++ b/drivers/usb/gadget/udc/amd5536udc.c | |||
@@ -71,8 +71,6 @@ static void udc_soft_reset(struct udc *dev); | |||
71 | static struct udc_request *udc_alloc_bna_dummy(struct udc_ep *ep); | 71 | static struct udc_request *udc_alloc_bna_dummy(struct udc_ep *ep); |
72 | static void udc_free_request(struct usb_ep *usbep, struct usb_request *usbreq); | 72 | static void udc_free_request(struct usb_ep *usbep, struct usb_request *usbreq); |
73 | static int udc_free_dma_chain(struct udc *dev, struct udc_request *req); | 73 | static int udc_free_dma_chain(struct udc *dev, struct udc_request *req); |
74 | static int udc_create_dma_chain(struct udc_ep *ep, struct udc_request *req, | ||
75 | unsigned long buf_len, gfp_t gfp_flags); | ||
76 | static int udc_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id); | 74 | static int udc_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id); |
77 | static void udc_pci_remove(struct pci_dev *pdev); | 75 | static void udc_pci_remove(struct pci_dev *pdev); |
78 | 76 | ||
@@ -787,6 +785,123 @@ udc_rxfifo_read(struct udc_ep *ep, struct udc_request *req) | |||
787 | return finished; | 785 | return finished; |
788 | } | 786 | } |
789 | 787 | ||
788 | /* Creates or re-inits a DMA chain */ | ||
789 | static int udc_create_dma_chain( | ||
790 | struct udc_ep *ep, | ||
791 | struct udc_request *req, | ||
792 | unsigned long buf_len, gfp_t gfp_flags | ||
793 | ) | ||
794 | { | ||
795 | unsigned long bytes = req->req.length; | ||
796 | unsigned int i; | ||
797 | dma_addr_t dma_addr; | ||
798 | struct udc_data_dma *td = NULL; | ||
799 | struct udc_data_dma *last = NULL; | ||
800 | unsigned long txbytes; | ||
801 | unsigned create_new_chain = 0; | ||
802 | unsigned len; | ||
803 | |||
804 | VDBG(ep->dev, "udc_create_dma_chain: bytes=%ld buf_len=%ld\n", | ||
805 | bytes, buf_len); | ||
806 | dma_addr = DMA_DONT_USE; | ||
807 | |||
808 | /* unset L bit in first desc for OUT */ | ||
809 | if (!ep->in) | ||
810 | req->td_data->status &= AMD_CLEAR_BIT(UDC_DMA_IN_STS_L); | ||
811 | |||
812 | /* alloc only new desc's if not already available */ | ||
813 | len = req->req.length / ep->ep.maxpacket; | ||
814 | if (req->req.length % ep->ep.maxpacket) | ||
815 | len++; | ||
816 | |||
817 | if (len > req->chain_len) { | ||
818 | /* shorter chain already allocated before */ | ||
819 | if (req->chain_len > 1) | ||
820 | udc_free_dma_chain(ep->dev, req); | ||
821 | req->chain_len = len; | ||
822 | create_new_chain = 1; | ||
823 | } | ||
824 | |||
825 | td = req->td_data; | ||
826 | /* gen. required number of descriptors and buffers */ | ||
827 | for (i = buf_len; i < bytes; i += buf_len) { | ||
828 | /* create or determine next desc. */ | ||
829 | if (create_new_chain) { | ||
830 | td = pci_pool_alloc(ep->dev->data_requests, | ||
831 | gfp_flags, &dma_addr); | ||
832 | if (!td) | ||
833 | return -ENOMEM; | ||
834 | |||
835 | td->status = 0; | ||
836 | } else if (i == buf_len) { | ||
837 | /* first td */ | ||
838 | td = (struct udc_data_dma *)phys_to_virt( | ||
839 | req->td_data->next); | ||
840 | td->status = 0; | ||
841 | } else { | ||
842 | td = (struct udc_data_dma *)phys_to_virt(last->next); | ||
843 | td->status = 0; | ||
844 | } | ||
845 | |||
846 | if (td) | ||
847 | td->bufptr = req->req.dma + i; /* assign buffer */ | ||
848 | else | ||
849 | break; | ||
850 | |||
851 | /* short packet ? */ | ||
852 | if ((bytes - i) >= buf_len) { | ||
853 | txbytes = buf_len; | ||
854 | } else { | ||
855 | /* short packet */ | ||
856 | txbytes = bytes - i; | ||
857 | } | ||
858 | |||
859 | /* link td and assign tx bytes */ | ||
860 | if (i == buf_len) { | ||
861 | if (create_new_chain) | ||
862 | req->td_data->next = dma_addr; | ||
863 | /* | ||
864 | * else | ||
865 | * req->td_data->next = virt_to_phys(td); | ||
866 | */ | ||
867 | /* write tx bytes */ | ||
868 | if (ep->in) { | ||
869 | /* first desc */ | ||
870 | req->td_data->status = | ||
871 | AMD_ADDBITS(req->td_data->status, | ||
872 | ep->ep.maxpacket, | ||
873 | UDC_DMA_IN_STS_TXBYTES); | ||
874 | /* second desc */ | ||
875 | td->status = AMD_ADDBITS(td->status, | ||
876 | txbytes, | ||
877 | UDC_DMA_IN_STS_TXBYTES); | ||
878 | } | ||
879 | } else { | ||
880 | if (create_new_chain) | ||
881 | last->next = dma_addr; | ||
882 | /* | ||
883 | * else | ||
884 | * last->next = virt_to_phys(td); | ||
885 | */ | ||
886 | if (ep->in) { | ||
887 | /* write tx bytes */ | ||
888 | td->status = AMD_ADDBITS(td->status, | ||
889 | txbytes, | ||
890 | UDC_DMA_IN_STS_TXBYTES); | ||
891 | } | ||
892 | } | ||
893 | last = td; | ||
894 | } | ||
895 | /* set last bit */ | ||
896 | if (td) { | ||
897 | td->status |= AMD_BIT(UDC_DMA_IN_STS_L); | ||
898 | /* last desc. points to itself */ | ||
899 | req->td_data_last = td; | ||
900 | } | ||
901 | |||
902 | return 0; | ||
903 | } | ||
904 | |||
790 | /* create/re-init a DMA descriptor or a DMA descriptor chain */ | 905 | /* create/re-init a DMA descriptor or a DMA descriptor chain */ |
791 | static int prep_dma(struct udc_ep *ep, struct udc_request *req, gfp_t gfp) | 906 | static int prep_dma(struct udc_ep *ep, struct udc_request *req, gfp_t gfp) |
792 | { | 907 | { |
@@ -973,125 +1088,6 @@ static u32 udc_get_ppbdu_rxbytes(struct udc_request *req) | |||
973 | 1088 | ||
974 | } | 1089 | } |
975 | 1090 | ||
976 | /* Creates or re-inits a DMA chain */ | ||
977 | static int udc_create_dma_chain( | ||
978 | struct udc_ep *ep, | ||
979 | struct udc_request *req, | ||
980 | unsigned long buf_len, gfp_t gfp_flags | ||
981 | ) | ||
982 | { | ||
983 | unsigned long bytes = req->req.length; | ||
984 | unsigned int i; | ||
985 | dma_addr_t dma_addr; | ||
986 | struct udc_data_dma *td = NULL; | ||
987 | struct udc_data_dma *last = NULL; | ||
988 | unsigned long txbytes; | ||
989 | unsigned create_new_chain = 0; | ||
990 | unsigned len; | ||
991 | |||
992 | VDBG(ep->dev, "udc_create_dma_chain: bytes=%ld buf_len=%ld\n", | ||
993 | bytes, buf_len); | ||
994 | dma_addr = DMA_DONT_USE; | ||
995 | |||
996 | /* unset L bit in first desc for OUT */ | ||
997 | if (!ep->in) | ||
998 | req->td_data->status &= AMD_CLEAR_BIT(UDC_DMA_IN_STS_L); | ||
999 | |||
1000 | /* alloc only new desc's if not already available */ | ||
1001 | len = req->req.length / ep->ep.maxpacket; | ||
1002 | if (req->req.length % ep->ep.maxpacket) | ||
1003 | len++; | ||
1004 | |||
1005 | if (len > req->chain_len) { | ||
1006 | /* shorter chain already allocated before */ | ||
1007 | if (req->chain_len > 1) | ||
1008 | udc_free_dma_chain(ep->dev, req); | ||
1009 | req->chain_len = len; | ||
1010 | create_new_chain = 1; | ||
1011 | } | ||
1012 | |||
1013 | td = req->td_data; | ||
1014 | /* gen. required number of descriptors and buffers */ | ||
1015 | for (i = buf_len; i < bytes; i += buf_len) { | ||
1016 | /* create or determine next desc. */ | ||
1017 | if (create_new_chain) { | ||
1018 | |||
1019 | td = pci_pool_alloc(ep->dev->data_requests, | ||
1020 | gfp_flags, &dma_addr); | ||
1021 | if (!td) | ||
1022 | return -ENOMEM; | ||
1023 | |||
1024 | td->status = 0; | ||
1025 | } else if (i == buf_len) { | ||
1026 | /* first td */ | ||
1027 | td = (struct udc_data_dma *) phys_to_virt( | ||
1028 | req->td_data->next); | ||
1029 | td->status = 0; | ||
1030 | } else { | ||
1031 | td = (struct udc_data_dma *) phys_to_virt(last->next); | ||
1032 | td->status = 0; | ||
1033 | } | ||
1034 | |||
1035 | |||
1036 | if (td) | ||
1037 | td->bufptr = req->req.dma + i; /* assign buffer */ | ||
1038 | else | ||
1039 | break; | ||
1040 | |||
1041 | /* short packet ? */ | ||
1042 | if ((bytes - i) >= buf_len) { | ||
1043 | txbytes = buf_len; | ||
1044 | } else { | ||
1045 | /* short packet */ | ||
1046 | txbytes = bytes - i; | ||
1047 | } | ||
1048 | |||
1049 | /* link td and assign tx bytes */ | ||
1050 | if (i == buf_len) { | ||
1051 | if (create_new_chain) | ||
1052 | req->td_data->next = dma_addr; | ||
1053 | /* | ||
1054 | else | ||
1055 | req->td_data->next = virt_to_phys(td); | ||
1056 | */ | ||
1057 | /* write tx bytes */ | ||
1058 | if (ep->in) { | ||
1059 | /* first desc */ | ||
1060 | req->td_data->status = | ||
1061 | AMD_ADDBITS(req->td_data->status, | ||
1062 | ep->ep.maxpacket, | ||
1063 | UDC_DMA_IN_STS_TXBYTES); | ||
1064 | /* second desc */ | ||
1065 | td->status = AMD_ADDBITS(td->status, | ||
1066 | txbytes, | ||
1067 | UDC_DMA_IN_STS_TXBYTES); | ||
1068 | } | ||
1069 | } else { | ||
1070 | if (create_new_chain) | ||
1071 | last->next = dma_addr; | ||
1072 | /* | ||
1073 | else | ||
1074 | last->next = virt_to_phys(td); | ||
1075 | */ | ||
1076 | if (ep->in) { | ||
1077 | /* write tx bytes */ | ||
1078 | td->status = AMD_ADDBITS(td->status, | ||
1079 | txbytes, | ||
1080 | UDC_DMA_IN_STS_TXBYTES); | ||
1081 | } | ||
1082 | } | ||
1083 | last = td; | ||
1084 | } | ||
1085 | /* set last bit */ | ||
1086 | if (td) { | ||
1087 | td->status |= AMD_BIT(UDC_DMA_IN_STS_L); | ||
1088 | /* last desc. points to itself */ | ||
1089 | req->td_data_last = td; | ||
1090 | } | ||
1091 | |||
1092 | return 0; | ||
1093 | } | ||
1094 | |||
1095 | /* Enabling RX DMA */ | 1091 | /* Enabling RX DMA */ |
1096 | static void udc_set_rde(struct udc *dev) | 1092 | static void udc_set_rde(struct udc *dev) |
1097 | { | 1093 | { |