Re: What is the motivation for conn->power_save

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Nick,

> If I understand correctly, conn->power_save prevents the host stack
> from requesting active mode if it was not the host stack that
> requested sniff mode.
> 
> I don't understand the motivation for this. If we have ACL data to
> send, then it seems like a good idea for the host stack to explicitly
> request active mode, regardless of the reason that we entered sniff
> mode.
> 
> We want to enter active mode more aggressively when setting up SCO
> connections, to avoid a 5 second delay with certain sniff modes. But
> the conn->power_save code is getting in the way and doesn't appear to
> be useful in the first place.

we have discussed this a few times. And if you lock through the code
history then you see that initially we just took devices out of sniff
mode if we had to send data. However with HID devices this falls flat on
its face. They need to stay in control of sniff mode if they initiated
it. Some of them crash and others just drain the battery. With sniff
mode you can send small amounts of data even while in sniff and for HID
that is sometimes used. So the remote side better not interfere.

What we really need is a socket option where we can control this on a
per socket basis if we take devices out of sniff mode. And one extra
case might be when we try to establish a SCO channel, because then it is
clearly not an HID device. However even A2DP has this sort of problems
sometimes where the stream setup takes time.

Not sure if we have to make SCO setup special. The only reason would be
if there is a case where we don't get an AT command before SCO needs to
be established.

Regards

Marcel


--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux