spi_sync() problem in cc2520 radio driver in linux

Bhadram
I wrote the driver for cc2520...And i am interfacing it to the Beaglebone.
cc2520 initialisation is fine means if i send the SNOP strobe over the spi
the reply is 0x80.. I am able to see the data on MISO in oscilloscope but
in my driver code i am not able get the data which is there on MISO pin..
 
 
      I am displaying the code below..
 
      cc2520_get_status(struct cc2520_private *priv, u8 *status)
       {
         struct spi_message msg;
         struct spi_transfer xfer = {
                 .len = 1,
                 .tx_buf = buf,
                 .rx-buf = buf,
            };
  
       spi_message_init(msg);
       spi_message_add_tail(&xfer, &msg);
       buf[0] = CC2520_CMD_SNOP;
 
 
      ret = spi_sync(spi , &msg);
      if(!ret)
                *status = buf[0];
 
    }
 
 
    I am always getting the status as zero but in CRO it is showing as
0x80.
 
 
Is the spi_sync() API is correct or which is better .. where might be the
problem..?
 

Thanks in advance..
 
 
Regards,
Bhadram