Hi Jakub, On 03/27/12 16:51, Jakub Kicinski wrote: > Broaden wakeup configuration to all PCIE from rt3xxx on. > > Signed-off-by: Jakub Kicinski <kubakici@xxxxx> > --- > 2011_0406_RT5390_RT5392_Linux_STA_V2.5.0.3_DPO > rtmp_init_inf.c:171 > > Legacy driver applies this configuration to the following devices: > 3071 3090 3572 3592 3562 3062 3390 3593 5390 5370 5392 5372 5360 5362 > if they are working on PCIE bus. AFAIK these are all post 2xxx PCIE > devices. > --- > drivers/net/wireless/rt2x00/rt2800lib.c | 4 +--- > drivers/net/wireless/rt2x00/rt2800pci.c | 5 +---- > 2 files changed, 2 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c > index 6c0a12e..4722030 100644 > --- a/drivers/net/wireless/rt2x00/rt2800lib.c > +++ b/drivers/net/wireless/rt2x00/rt2800lib.c > @@ -401,9 +401,7 @@ int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev, > return -EBUSY; > > if (rt2x00_is_pci(rt2x00dev)) { > - if (rt2x00_rt(rt2x00dev, RT3572) || > - rt2x00_rt(rt2x00dev, RT5390) || > - rt2x00_rt(rt2x00dev, RT5392)) { > + if (rt2x00_is_pcie(rt2x00dev) && rt2x00dev->chip.rt > 0x3000) { > rt2800_register_read(rt2x00dev, AUX_CTRL, ®); > rt2x00_set_field32(®, AUX_CTRL_FORCE_PCIE_CLK, 1); > rt2x00_set_field32(®, AUX_CTRL_WAKE_PCIE_EN, 1); I don't like the comparison against 0x3000. Maybe you should invert the conditions and test for the chipsets for which this does not have to be applied (e.g. !rt2x00_rt(rt2x00dev, RT2860) && !rt2x00_rt(rt2x00dev, RT2872). Also, the flow looks a bit strange here. The old code applied to all PCI and PCIe devices, now you narrow it down to just PCIe devices. Is that right? Can anything be done to the strange flow now, with first checking for PCI and PCIe devices and then immediately only for PCIe devices? > diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c > index 0397bbf..5a2f68f 100644 > --- a/drivers/net/wireless/rt2x00/rt2800pci.c > +++ b/drivers/net/wireless/rt2x00/rt2800pci.c > @@ -478,10 +478,7 @@ static int rt2800pci_init_registers(struct rt2x00_dev *rt2x00dev) > rt2x00pci_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00000e1f); > rt2x00pci_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00000e00); > > - if (rt2x00_is_pcie(rt2x00dev) && > - (rt2x00_rt(rt2x00dev, RT3572) || > - rt2x00_rt(rt2x00dev, RT5390) || > - rt2x00_rt(rt2x00dev, RT5392))) { > + if (rt2x00_is_pcie(rt2x00dev) && rt2x00dev->chip.rt > 0x3000) { > rt2x00pci_register_read(rt2x00dev, AUX_CTRL, ®); > rt2x00_set_field32(®, AUX_CTRL_FORCE_PCIE_CLK, 1); > rt2x00_set_field32(®, AUX_CTRL_WAKE_PCIE_EN, 1); --- Gertjan -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html