Browse Source

integrate 2.6.28 specific patch into the usb driver

SVN-Revision: 15975
Gabor Juhos 17 years ago
parent
commit
cbb550605f

+ 0 - 1
target/linux/adm5120/files/drivers/usb/host/adm5120-drv.c

@@ -174,7 +174,6 @@ static const struct hc_driver adm5120_hc_driver = {
 	 */
 	 */
 	.hub_status_data =	admhc_hub_status_data,
 	.hub_status_data =	admhc_hub_status_data,
 	.hub_control =		admhc_hub_control,
 	.hub_control =		admhc_hub_control,
-	.hub_irq_enable =	admhc_hub_irq_enable,
 #ifdef CONFIG_PM
 #ifdef CONFIG_PM
 	.bus_suspend =		admhc_bus_suspend,
 	.bus_suspend =		admhc_bus_suspend,
 	.bus_resume =		admhc_bus_resume,
 	.bus_resume =		admhc_bus_resume,

+ 1 - 1
target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c

@@ -46,7 +46,7 @@
 #include "../core/hcd.h"
 #include "../core/hcd.h"
 #include "../core/hub.h"
 #include "../core/hub.h"
 
 
-#define DRIVER_VERSION	"0.25.0"
+#define DRIVER_VERSION	"0.27.0"
 #define DRIVER_AUTHOR	"Gabor Juhos <[email protected]>"
 #define DRIVER_AUTHOR	"Gabor Juhos <[email protected]>"
 #define DRIVER_DESC	"ADMtek USB 1.1 Host Controller Driver"
 #define DRIVER_DESC	"ADMtek USB 1.1 Host Controller Driver"
 
 

+ 0 - 14
target/linux/adm5120/files/drivers/usb/host/adm5120-hub.c

@@ -63,20 +63,6 @@
 
 
 /*-------------------------------------------------------------------------*/
 /*-------------------------------------------------------------------------*/
 
 
-/* hcd->hub_irq_enable() */
-static void admhc_hub_irq_enable(struct usb_hcd *hcd)
-{
-	struct admhcd	*ahcd = hcd_to_admhcd(hcd);
-
-	spin_lock_irq(&ahcd->lock);
-	if (!ahcd->autostop)
-		del_timer(&hcd->rh_timer);	/* Prevent next poll */
-	admhc_intr_enable(ahcd, ADMHC_INTR_INSM);
-	spin_unlock_irq(&ahcd->lock);
-}
-
-/*-------------------------------------------------------------------------*/
-
 /* build "status change" packet (one or two bytes) from HC registers */
 /* build "status change" packet (one or two bytes) from HC registers */
 
 
 static int
 static int

+ 9 - 5
target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c

@@ -432,13 +432,17 @@ static inline int admhc_rh_resume(struct admhcd *ahcd)
 static int admhc_root_hub_state_changes(struct admhcd *ahcd, int changed,
 static int admhc_root_hub_state_changes(struct admhcd *ahcd, int changed,
 		int any_connected)
 		int any_connected)
 {
 {
-	int	poll_rh = 1;
-
-	/* keep on polling until RHSC is enabled */
+	/* If INSM is enabled, don't poll */
 	if (admhc_readl(ahcd, &ahcd->regs->int_enable) & ADMHC_INTR_INSM)
 	if (admhc_readl(ahcd, &ahcd->regs->int_enable) & ADMHC_INTR_INSM)
-		poll_rh = 0;
+		return 0;
 
 
-	return poll_rh;
+	/* If no status changes are pending, enable status-change interrupts */
+	if (!changed) {
+		admhc_intr_enable(ahcd, ADMHC_INTR_INSM);
+		return 0;
+	}
+
+	return 1;
 }
 }
 
 
 #endif	/* CONFIG_PM */
 #endif	/* CONFIG_PM */

+ 0 - 69
target/linux/adm5120/patches-2.6.28/800-usb_automatically_enable_rhsc_interrupt.patch

@@ -1,69 +0,0 @@
---- a/drivers/usb/host/adm5120-drv.c
-+++ b/drivers/usb/host/adm5120-drv.c
-@@ -174,7 +174,6 @@ static const struct hc_driver adm5120_hc
- 	 */
- 	.hub_status_data =	admhc_hub_status_data,
- 	.hub_control =		admhc_hub_control,
--	.hub_irq_enable =	admhc_hub_irq_enable,
- #ifdef CONFIG_PM
- 	.bus_suspend =		admhc_bus_suspend,
- 	.bus_resume =		admhc_bus_resume,
---- a/drivers/usb/host/adm5120-hub.c
-+++ b/drivers/usb/host/adm5120-hub.c
-@@ -63,20 +63,6 @@
- 
- /*-------------------------------------------------------------------------*/
- 
--/* hcd->hub_irq_enable() */
--static void admhc_hub_irq_enable(struct usb_hcd *hcd)
--{
--	struct admhcd	*ahcd = hcd_to_admhcd(hcd);
--
--	spin_lock_irq(&ahcd->lock);
--	if (!ahcd->autostop)
--		del_timer(&hcd->rh_timer);	/* Prevent next poll */
--	admhc_intr_enable(ahcd, ADMHC_INTR_INSM);
--	spin_unlock_irq(&ahcd->lock);
--}
--
--/*-------------------------------------------------------------------------*/
--
- /* build "status change" packet (one or two bytes) from HC registers */
- 
- static int
---- a/drivers/usb/host/adm5120-pm.c
-+++ b/drivers/usb/host/adm5120-pm.c
-@@ -432,13 +432,17 @@ static inline int admhc_rh_resume(struct
- static int admhc_root_hub_state_changes(struct admhcd *ahcd, int changed,
- 		int any_connected)
- {
--	int	poll_rh = 1;
--
--	/* keep on polling until RHSC is enabled */
-+	/* If INSM is enabled, don't poll */
- 	if (admhc_readl(ahcd, &ahcd->regs->int_enable) & ADMHC_INTR_INSM)
--		poll_rh = 0;
-+		return 0;
-+
-+	/* If no status changes are pending, enable status-change interrupts */
-+	if (!changed) {
-+		admhc_intr_enable(ahcd, ADMHC_INTR_INSM);
-+		return 0;
-+	}
- 
--	return poll_rh;
-+	return 1;
- }
- 
- #endif	/* CONFIG_PM */
---- a/drivers/usb/host/adm5120-hcd.c
-+++ b/drivers/usb/host/adm5120-hcd.c
-@@ -46,7 +46,7 @@
- #include "../core/hcd.h"
- #include "../core/hub.h"
- 
--#define DRIVER_VERSION	"0.25.0"
-+#define DRIVER_VERSION	"0.27.0"
- #define DRIVER_AUTHOR	"Gabor Juhos <[email protected]>"
- #define DRIVER_DESC	"ADMtek USB 1.1 Host Controller Driver"
-