Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 15665
b: refs/heads/master
c: ef72582
h: refs/heads/master
i:
  15663: 500fa6f
v: v3
  • Loading branch information
Matthew Wilcox authored and James Bottomley committed Dec 16, 2005
1 parent 05ae683 commit 2ccb166
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b32aaffcdc694650d299a59501c5b3e267fca343
refs/heads/master: ef72582e7a02e1069c6e6bf5eecf6f388b1467c6
36 changes: 29 additions & 7 deletions trunk/drivers/scsi/scsi_transport_spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -379,9 +379,7 @@ static CLASS_DEVICE_ATTR(revalidate, S_IWUSR, NULL, store_spi_revalidate);

/* Translate the period into ns according to the current spec
* for SDTR/PPR messages */
static ssize_t
show_spi_transport_period_helper(struct class_device *cdev, char *buf,
int period)
static int period_to_str(char *buf, int period)
{
int len, picosec;

Expand All @@ -399,6 +397,14 @@ show_spi_transport_period_helper(struct class_device *cdev, char *buf,
len = sprint_frac(buf, picosec, 1000);
}

return len;
}

static ssize_t
show_spi_transport_period_helper(struct class_device *cdev, char *buf,
int period)
{
int len = period_to_str(buf, period);
buf[len++] = '\n';
buf[len] = '\0';
return len;
Expand Down Expand Up @@ -1065,9 +1071,23 @@ static const char * const two_byte_msgs[] = {

static const char * const extended_msgs[] = {
/* 0x00 */ "Modify Data Pointer", "Synchronous Data Transfer Request",
/* 0x02 */ "SCSI-I Extended Identify", "Wide Data Transfer Request"
/* 0x02 */ "SCSI-I Extended Identify", "Wide Data Transfer Request",
/* 0x04 */ "Parallel Protocol Request"
};

void print_nego(const unsigned char *msg, int per, int off, int width)
{
if (per) {
char buf[20];
period_to_str(buf, msg[per]);
printk("period = %s ns ", buf);
}

if (off)
printk("offset = %d ", msg[off]);
if (width)
printk("width = %d ", 8 << msg[width]);
}

int spi_print_msg(const unsigned char *msg)
{
Expand All @@ -1085,11 +1105,13 @@ int spi_print_msg(const unsigned char *msg)
(msg[4] << 16) | (msg[5] << 8) | msg[6]);
break;
case EXTENDED_SDTR:
printk("period = %d ns, offset = %d",
(int) msg[3] * 4, (int) msg[4]);
print_nego(msg, 3, 4, 0);
break;
case EXTENDED_WDTR:
printk("width = 2^%d bytes", msg[3]);
print_nego(msg, 0, 0, 3);
break;
case EXTENDED_PPR:
print_nego(msg, 3, 5, 6);
break;
default:
for (i = 2; i < len; ++i)
Expand Down

0 comments on commit 2ccb166

Please sign in to comment.