* [PATCH 3/4] [media] em28xx: usb power config is in the low byte.
@ 2013-07-16 23:06 Alban Browaeys
2013-07-18 15:27 ` Frank Schäfer
0 siblings, 1 reply; 3+ messages in thread
From: Alban Browaeys @ 2013-07-16 23:06 UTC (permalink / raw)
To: Mauro Carvalho Chehab, linux-media; +Cc: linux-kernel, Alban Browaeys
According to the em2860 datasheet, eeprom byte 08H is Chip
Configuration Low Byte and 09H is High Byte.
Usb power configuration is in the Low byte (same as the usb audio
class config).
Signed-off-by: Alban Browaeys <prahal@yahoo.com>
---
drivers/media/usb/em28xx/em28xx-i2c.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c
index c4ff973..6ff7415 100644
--- a/drivers/media/usb/em28xx/em28xx-i2c.c
+++ b/drivers/media/usb/em28xx/em28xx-i2c.c
@@ -743,13 +743,13 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned bus,
break;
}
- if (le16_to_cpu(dev_config->chip_conf) & 1 << 3)
+ if (le16_to_cpu(dev_config->chip_conf) >> 4 & 1 << 3)
em28xx_info("\tUSB Remote wakeup capable\n");
- if (le16_to_cpu(dev_config->chip_conf) & 1 << 2)
+ if (le16_to_cpu(dev_config->chip_conf) >> 4 & 1 << 2)
em28xx_info("\tUSB Self power capable\n");
- switch (le16_to_cpu(dev_config->chip_conf) & 0x3) {
+ switch (le16_to_cpu(dev_config->chip_conf) >> 4 & 0x3) {
case 0:
em28xx_info("\t500mA max power\n");
break;
--
1.8.3.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 3/4] [media] em28xx: usb power config is in the low byte.
2013-07-16 23:06 [PATCH 3/4] [media] em28xx: usb power config is in the low byte Alban Browaeys
@ 2013-07-18 15:27 ` Frank Schäfer
[not found] ` <CAMhY2AXOk+poaxcqTiDvGCWcUEQFTT025=h3WdhrOB3bQKPEoQ@mail.gmail.com>
0 siblings, 1 reply; 3+ messages in thread
From: Frank Schäfer @ 2013-07-18 15:27 UTC (permalink / raw)
To: Alban Browaeys; +Cc: Mauro Carvalho Chehab, linux-media, Alban Browaeys
Am 17.07.2013 01:06, schrieb Alban Browaeys:
> According to the em2860 datasheet, eeprom byte 08H is Chip
> Configuration Low Byte and 09H is High Byte.
> Usb power configuration is in the Low byte (same as the usb audio
> class config).
>
> Signed-off-by: Alban Browaeys <prahal@yahoo.com>
> ---
> drivers/media/usb/em28xx/em28xx-i2c.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c
> index c4ff973..6ff7415 100644
> --- a/drivers/media/usb/em28xx/em28xx-i2c.c
> +++ b/drivers/media/usb/em28xx/em28xx-i2c.c
> @@ -743,13 +743,13 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned bus,
> break;
> }
>
> - if (le16_to_cpu(dev_config->chip_conf) & 1 << 3)
> + if (le16_to_cpu(dev_config->chip_conf) >> 4 & 1 << 3)
> em28xx_info("\tUSB Remote wakeup capable\n");
>
> - if (le16_to_cpu(dev_config->chip_conf) & 1 << 2)
> + if (le16_to_cpu(dev_config->chip_conf) >> 4 & 1 << 2)
> em28xx_info("\tUSB Self power capable\n");
>
> - switch (le16_to_cpu(dev_config->chip_conf) & 0x3) {
> + switch (le16_to_cpu(dev_config->chip_conf) >> 4 & 0x3) {
> case 0:
> em28xx_info("\t500mA max power\n");
> break;
NACK.
According to my datasheet excerpt (EM2860 Hardware Specification
8/18/2004), bits 0:3 are used for USB configuration and bits 4:7 for
audio configuration.
So the current code is correct.
Regards,
Frank
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 3/4] [media] em28xx: usb power config is in the low byte.
[not found] ` <CAMhY2AUZAFPykoxt+fw7XzzNPftcOOAXws4mwMOJrq7hzpdvUw@mail.gmail.com>
@ 2013-07-24 15:33 ` Frank Schäfer
0 siblings, 0 replies; 3+ messages in thread
From: Frank Schäfer @ 2013-07-24 15:33 UTC (permalink / raw)
To: Alban Browaeys; +Cc: m.chehab, linux-media, Alban Browaeys
[2nd try - vger.kernel.org rejects html content]
Am 24.07.2013 16:16, schrieb Alban Browaeys:
> sorry the weater is getting really warm there. I will take a closer
> look at that . But mind that we grab two bytes and '<usb config for
> audio and power> <usb transfer rates>' thus I guessed we had to shift
> 4 bits the left byte (08H) to get 0:3 .
True, but with le16_to_cpu conversion everything is fine. ;)
Apart from that: a byte usually has 8 bits, not 4... ;)
Regards,
Frank
>
>
> 2013/7/24 Alban Browaeys <alban.browaeys@gmail.com
> <mailto:alban.browaeys@gmail.com>>
>
> Agreed 4:7 are fo usb "audio" class config cofiguration and 0:3
> are for usb configuration ... that is wat I told and what I coded
> i the patch:
> 08H Chip Configuration Low Byte
> D[7] Class audio or vendor audio
> 0 – Inform the host that the chip is USB audio class device
> 1 – Inform the host that the chip is vendor specific audio device
> D[6] USB audio class volume control capability when audio source
> is I2S device.
> When audio source is AC97, the chip is always capable of volume
> control
> regardless of the state of this bit.
> 0 – Inform the host that the chip is not capable of volume control.
> 1 – Inform the host that the chip is capable of volume control.
> D[5:4] Audio Configuration
> 00 – No audio on board.
> 01 – AC97 audio on board with 5 sample rates: 48K, 44.1K, 32K,
> 16K, and 8K.
> 2
> 10 – I S audio on board with 3 sample rate: 32K, 16K, and 8K.
> 11 – I2S audio on board with 5 sample rates: 48K, 44.1K, and 32K,
> 16K, and 8K.
> D[3] USB Remote Wakeup Capable when set to 1
> D[2] USB Self Power Capable when set to 1. If the chip is
> configured to be Self Power
> Capable, PIO7 becomes self power status input.
> D[1:0] USB Max Power Select
> 00 – USB Max Power 500 mA
> 01 – USB Max Power 400 mA
> 10 – USB Max Power 300 mA
> 11 – USB Max Power 200 mA
>
>
> But you current code attempt to read the usb configuration 09H .
>
>
> 2013/7/18 Frank Schäfer <fschaefer.oss@googlemail.com
> <mailto:fschaefer.oss@googlemail.com>>
>
> Am 17.07.2013 01:06, schrieb Alban Browaeys:
> > According to the em2860 datasheet, eeprom byte 08H is Chip
> > Configuration Low Byte and 09H is High Byte.
> > Usb power configuration is in the Low byte (same as the usb
> audio
> > class config).
> >
> > Signed-off-by: Alban Browaeys <prahal@yahoo.com
> <mailto:prahal@yahoo.com>>
> > ---
> > drivers/media/usb/em28xx/em28xx-i2c.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c
> b/drivers/media/usb/em28xx/em28xx-i2c.c
> > index c4ff973..6ff7415 100644
> > --- a/drivers/media/usb/em28xx/em28xx-i2c.c
> > +++ b/drivers/media/usb/em28xx/em28xx-i2c.c
> > @@ -743,13 +743,13 @@ static int em28xx_i2c_eeprom(struct
> em28xx *dev, unsigned bus,
> > break;
> > }
> >
> > - if (le16_to_cpu(dev_config->chip_conf) & 1 << 3)
> > + if (le16_to_cpu(dev_config->chip_conf) >> 4 & 1 << 3)
> > em28xx_info("\tUSB Remote wakeup capable\n");
> >
> > - if (le16_to_cpu(dev_config->chip_conf) & 1 << 2)
> > + if (le16_to_cpu(dev_config->chip_conf) >> 4 & 1 << 2)
> > em28xx_info("\tUSB Self power capable\n");
> >
> > - switch (le16_to_cpu(dev_config->chip_conf) & 0x3) {
> > + switch (le16_to_cpu(dev_config->chip_conf) >> 4 & 0x3) {
> > case 0:
> > em28xx_info("\t500mA max power\n");
> > break;
>
> NACK.
> According to my datasheet excerpt (EM2860 Hardware Specification
> 8/18/2004), bits 0:3 are used for USB configuration and bits
> 4:7 for
> audio configuration.
> So the current code is correct.
>
> Regards,
> Frank
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-07-24 15:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-16 23:06 [PATCH 3/4] [media] em28xx: usb power config is in the low byte Alban Browaeys
2013-07-18 15:27 ` Frank Schäfer
[not found] ` <CAMhY2AXOk+poaxcqTiDvGCWcUEQFTT025=h3WdhrOB3bQKPEoQ@mail.gmail.com>
[not found] ` <CAMhY2AUZAFPykoxt+fw7XzzNPftcOOAXws4mwMOJrq7hzpdvUw@mail.gmail.com>
2013-07-24 15:33 ` Frank Schäfer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).