~ubuntu-branches/debian/wheezy/linux-2.6/wheezy

« back to all changes in this revision

Viewing changes to drivers/usb/host/ehci-hub.c

  • Committer: Bazaar Package Importer
  • Author(s): Ben Hutchings, Ben Hutchings, Aurelien Jarno
  • Date: 2011-06-07 12:14:05 UTC
  • mfrom: (43.1.9 sid)
  • Revision ID: james.westby@ubuntu.com-20110607121405-i3h1rd7nrnd2b73h
Tags: 2.6.39-2
[ Ben Hutchings ]
* [x86] Enable BACKLIGHT_APPLE, replacing BACKLIGHT_MBP_NVIDIA
  (Closes: #627492)
* cgroups: Disable memory resource controller by default. Allow it
  to be enabled using kernel parameter 'cgroup_enable=memory'.
* rt2800usb: Enable support for more USB devices including
  Linksys WUSB600N (Closes: #596626) (this change was accidentally
  omitted from 2.6.39-1)
* [x86] Remove Celeron from list of processors supporting PAE. Most
  'Celeron M' models do not.
* Update debconf template translations:
  - Swedish (Martin Bagge) (Closes: #628932)
  - French (David Prévot) (Closes: #628191)
* aufs: Update for 2.6.39 (Closes: #627837)
* Add stable 2.6.39.1, including:
  - ext4: dont set PageUptodate in ext4_end_bio()
  - pata_cmd64x: fix boot crash on parisc (Closes: #622997, #622745)
  - ext3: Fix fs corruption when make_indexed_dir() fails
  - netfilter: nf_ct_sip: validate Content-Length in TCP SIP messages
  - sctp: fix race between sctp_bind_addr_free() and
    sctp_bind_addr_conflict()
  - sctp: fix memory leak of the ASCONF queue when free asoc
  - md/bitmap: fix saving of events_cleared and other state
  - cdc_acm: Fix oops when Droids MuIn LCD is connected
  - cx88: Fix conversion from BKL to fine-grained locks (Closes: #619827)
  - keys: Set cred->user_ns in key_replace_session_keyring (CVE-2011-2184)
  - tmpfs: fix race between truncate and writepage
  - nfs41: Correct offset for LAYOUTCOMMIT
  - xen/mmu: fix a race window causing leave_mm BUG()
  - ext4: fix possible use-after-free in ext4_remove_li_request()
  For the complete list of changes, see:
   http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39.1
* Bump ABI to 2
* netfilter: Enable IP_SET, IP_SET_BITMAP_IP, IP_SET_BITMAP_IPMAC,
  IP_SET_BITMAP_PORT, IP_SET_HASH_IP, IP_SET_HASH_IPPORT,
  IP_SET_HASH_IPPORTIP, IP_SET_HASH_IPPORTNET, IP_SET_HASH_NET,
  IP_SET_HASH_NETPORT, IP_SET_LIST_SET, NETFILTER_XT_SET as modules
  (Closes: #629401)

[ Aurelien Jarno ]
* [mipsel/loongson-2f] Disable_SCSI_LPFC to workaround GCC ICE.

Show diffs side-by-side

added added

removed removed

Lines of Context:
106
106
        ehci->owned_ports = 0;
107
107
}
108
108
 
 
109
static int ehci_port_change(struct ehci_hcd *ehci)
 
110
{
 
111
        int i = HCS_N_PORTS(ehci->hcs_params);
 
112
 
 
113
        /* First check if the controller indicates a change event */
 
114
 
 
115
        if (ehci_readl(ehci, &ehci->regs->status) & STS_PCD)
 
116
                return 1;
 
117
 
 
118
        /*
 
119
         * Not all controllers appear to update this while going from D3 to D0,
 
120
         * so check the individual port status registers as well
 
121
         */
 
122
 
 
123
        while (i--)
 
124
                if (ehci_readl(ehci, &ehci->regs->port_status[i]) & PORT_CSC)
 
125
                        return 1;
 
126
 
 
127
        return 0;
 
128
}
 
129
 
109
130
static void ehci_adjust_port_wakeup_flags(struct ehci_hcd *ehci,
110
131
                bool suspending, bool do_wakeup)
111
132
{
173
194
        }
174
195
 
175
196
        /* Does the root hub have a port wakeup pending? */
176
 
        if (!suspending && (ehci_readl(ehci, &ehci->regs->status) & STS_PCD))
 
197
        if (!suspending && ehci_port_change(ehci))
177
198
                usb_hcd_resume_root_hub(ehci_to_hcd(ehci));
178
199
 
179
200
        spin_unlock_irqrestore(&ehci->lock, flags);
538
559
}
539
560
static DEVICE_ATTR(companion, 0644, show_companion, store_companion);
540
561
 
541
 
static inline void create_companion_file(struct ehci_hcd *ehci)
 
562
static inline int create_companion_file(struct ehci_hcd *ehci)
542
563
{
543
 
        int     i;
 
564
        int     i = 0;
544
565
 
545
566
        /* with integrated TT there is no companion! */
546
567
        if (!ehci_is_TDI(ehci))
547
568
                i = device_create_file(ehci_to_hcd(ehci)->self.controller,
548
569
                                       &dev_attr_companion);
 
570
        return i;
549
571
}
550
572
 
551
573
static inline void remove_companion_file(struct ehci_hcd *ehci)
695
717
        desc->bDescLength = 7 + 2 * temp;
696
718
 
697
719
        /* two bitmaps:  ports removable, and usb 1.0 legacy PortPwrCtrlMask */
698
 
        memset (&desc->bitmap [0], 0, temp);
699
 
        memset (&desc->bitmap [temp], 0xff, temp);
 
720
        memset(&desc->u.hs.DeviceRemovable[0], 0, temp);
 
721
        memset(&desc->u.hs.DeviceRemovable[temp], 0xff, temp);
700
722
 
701
723
        temp = 0x0008;                  /* per-port overcurrent reporting */
702
724
        if (HCS_PPC (ehci->hcs_params))