integrate 2.6.28 specific patch into the usb driver
SVN-Revision: 15975
This commit is contained in:
parent
cf935e7613
commit
cbb550605f
5 changed files with 10 additions and 90 deletions
|
@ -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,
|
||||||
|
|
|
@ -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 <juhosg@openwrt.org>"
|
#define DRIVER_AUTHOR "Gabor Juhos <juhosg@openwrt.org>"
|
||||||
#define DRIVER_DESC "ADMtek USB 1.1 Host Controller Driver"
|
#define DRIVER_DESC "ADMtek USB 1.1 Host Controller Driver"
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
/* If INSM is enabled, don't poll */
|
||||||
|
|
||||||
/* keep on polling until RHSC is enabled */
|
|
||||||
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 */
|
||||||
|
|
|
@ -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 <juhosg@openwrt.org>"
|
|
||||||
#define DRIVER_DESC "ADMtek USB 1.1 Host Controller Driver"
|
|
||||||
|
|
Loading…
Reference in a new issue