Hi, Samuel,

I verified your patch on 0.60 stable branch, and it works well on my 
problematic netbook.

Best regards,
DengYingAn

> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On Behalf Of Deng, Ying An
> Sent: Friday, November 05, 2010 8:19 AM
> To: Samuel Ortiz
> Cc: [email protected]
> Subject: RE: [PATCH] Fix BMC 8074 fail to enable technology after
> rfkill
> 
> Thanks for your suggestion, I will try it after get back from sick
> leave.
> 
> Best regards,
> DengYingAn
> 
> > -----Original Message-----
> > From: Samuel Ortiz [mailto:[email protected]]
> > Sent: Thursday, November 04, 2010 7:23 AM
> > To: Deng, Ying An
> > Cc: [email protected]
> > Subject: Re: [PATCH] Fix BMC 8074 fail to enable technology after
> > rfkill
> >
> > Hi Ying,
> >
> > On Fri, Oct 29, 2010 at 04:41:39PM +0800, Deng, Ying An wrote:
> > > Dear Samuel,
> > >
> > > Please find the following flow after an analysis on the different
> > behavior of the netbook, which removed the pci-E wifi device when
> > rfkill key pressed down. It is different from common rfkill operation
> > implemented on other netbooks.
> > >
> > > When RFKILL button pressed down to power off RF device...
> > Thanks for the detailed explanation, I appreciate.
> > Now that I understand the root cause of that issue, I managed to
> > reproduce it
> > with my wifi dongle.
> > I think the real problem here is that remove_device() is calling
> > __connman_technology_disable_device() when the driver disable routine
> > is
> > returning EINPROGRESS. This was a fix for the old oFono plugin, and
> > with the
> > new one it doesn't make sense anymore.
> >
> > Could you please try this patch then ?
> >
> >
> > diff --git a/src/device.c b/src/device.c
> > index f79e991..0e31b04 100644
> > --- a/src/device.c
> > +++ b/src/device.c
> > @@ -593,13 +593,9 @@ static void probe_driver(struct connman_element
> > *element, gpointer user_data)
> >
> >  static void remove_device(struct connman_device *device)
> >  {
> > -   int err;
> > -
> >     DBG("device %p", device);
> >
> > -   err = __connman_device_disable(device);
> > -   if (err < 0 && err == -EINPROGRESS)
> > -           __connman_technology_disable_device(device);
> > +   __connman_device_disable(device);
> >
> >     switch (device->mode) {
> >     case CONNMAN_DEVICE_MODE_UNKNOWN:
> >
> > --
> > Intel Open Source Technology Centre
> > http://oss.intel.com/
> _______________________________________________
> connman mailing list
> [email protected]
> http://lists.connman.net/listinfo/connman
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to