Search Linux Wireless

Re: [PATCH 10/12] iwlwifi: Add support for getting rf id with blank otp

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

 



On Thu, 2021-08-26 at 14:30 +0300, Luca Coelho wrote:
> On Sat, 2021-08-21 at 17:07 +0300, Kalle Valo wrote:
> > Luca Coelho <luca@xxxxxxxxx> writes:
> > 
> > > From: Matti Gottlieb <matti.gottlieb@xxxxxxxxx>
> > > 
> > > When having a blank OTP the only way to get the rf id
> > > and the cdb info is from prph registers.
> > > 
> > > Currently there is some implementation for this, but it
> > > is located in the wrong place in the code (should be before
> > > trying to understand what HW is connected and not after),
> > > and it has a partial implementation.
> > > 
> > > Signed-off-by: Matti Gottlieb <matti.gottlieb@xxxxxxxxx>
> > > Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx>
> > 
> > [...]
> > 
> > > +/*
> > > + * struct iwl_crf_chip_id_reg
> > > + *
> > > + * type: bits 0-11
> > > + * reserved: bits 12-18
> > > + * slave_exist: bit 19
> > > + * dash: bits 20-23
> > > + * step: bits 24-26
> > > + * flavor: bits 27-31
> > > + */
> > > +struct iwl_crf_chip_id_reg {
> > > +	u32 type : 12;
> > > +	u32 reserved : 7;
> > > +	u32 slave_exist : 1;
> > > +	u32 dash : 4;
> > > +	u32 step : 4;
> > > +	u32 flavor : 4;
> > > +};
> > 
> > This doesn't look endian safe.
> 
> It's not exactly that this is not endian safe, but we had two issues:
> 
> 1. AFAIK these bitfields are not guaranteed to be kept in order, so we
> shouldn't use them.  I'll change it to decode this in some other way.
> 
> 2. We are actually reading the register without caring for endianess. 
> I will fix it.

Oops, as Johannes pointed out offline, this is not an issue, actually.
I got confused with some places where we do cpu_to_le32() after
reading, which is the opposite and essentially proves that the read is
in cpu-endianess.  So I won't "fix" it. ;)

--
Cheers,
Luca.




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux