Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 15615
b: refs/heads/master
c: b37df48
h: refs/heads/master
i:
  15613: 9eca1fd
  15611: 70a6696
  15607: dec3abc
  15599: bf11eb1
  15583: 3cb6798
  15551: e7d900b
  15487: 30c37ef
  15359: dfd735e
v: v3
  • Loading branch information
Matthew Wilcox authored and James Bottomley committed Dec 14, 2005
1 parent 60cc027 commit c29820b
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 19 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: 33333bacf523bb4bb903058fec6041a5952c93c6
refs/heads/master: b37df48923b76155de2a728e1155ed263dba5f53
3 changes: 3 additions & 0 deletions trunk/drivers/scsi/sym53c8xx_2/sym_glue.c
Original file line number Diff line number Diff line change
Expand Up @@ -1038,6 +1038,9 @@ static int sym53c8xx_slave_alloc(struct scsi_device *sdev)
return -ENOMEM;

tp->starget = sdev->sdev_target;
spi_min_period(tp->starget) = tp->usr_period;
spi_max_width(tp->starget) = tp->usr_width;

return 0;
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/scsi/sym53c8xx_2/sym_hipd.c
Original file line number Diff line number Diff line change
Expand Up @@ -943,7 +943,7 @@ static int sym_prepare_setting(struct Scsi_Host *shost, struct sym_hcb *np, stru
tp->usrflags |= (SYM_DISC_ENABLED | SYM_TAGS_ENABLED);
tp->usrtags = SYM_SETUP_MAX_TAG;

sym_nvram_setup_target(np, i, nvram);
sym_nvram_setup_target(tp, i, nvram);

if (!tp->usrtags)
tp->usrflags &= ~SYM_TAGS_ENABLED;
Expand Down
6 changes: 4 additions & 2 deletions trunk/drivers/scsi/sym53c8xx_2/sym_hipd.h
Original file line number Diff line number Diff line change
Expand Up @@ -434,8 +434,10 @@ struct sym_tcb {
* Other user settable limits and options.
* These limits are read from the NVRAM if present.
*/
u_char usrflags;
u_short usrtags;
unsigned char usrflags;
unsigned char usr_period;
unsigned char usr_width;
unsigned short usrtags;
struct scsi_target *starget;
};

Expand Down
29 changes: 16 additions & 13 deletions trunk/drivers/scsi/sym53c8xx_2/sym_nvram.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,29 +92,32 @@ void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sy
* Get target set-up from Symbios format NVRAM.
*/
static void
sym_Symbios_setup_target(struct sym_hcb *np, int target, Symbios_nvram *nvram)
sym_Symbios_setup_target(struct sym_tcb *tp, int target, Symbios_nvram *nvram)
{
struct sym_tcb *tp = &np->target[target];
Symbios_target *tn = &nvram->target[target];

tp->usrtags =
(tn->flags & SYMBIOS_QUEUE_TAGS_ENABLED)? SYM_SETUP_MAX_TAG : 0;

if (!(tn->flags & SYMBIOS_QUEUE_TAGS_ENABLED))
tp->usrtags = 0;
if (!(tn->flags & SYMBIOS_DISCONNECT_ENABLE))
tp->usrflags &= ~SYM_DISC_ENABLED;
if (!(tn->flags & SYMBIOS_SCAN_AT_BOOT_TIME))
tp->usrflags |= SYM_SCAN_BOOT_DISABLED;
if (!(tn->flags & SYMBIOS_SCAN_LUNS))
tp->usrflags |= SYM_SCAN_LUNS_DISABLED;
tp->usr_period = (tn->sync_period + 3) / 4;
tp->usr_width = (tn->bus_width == 0x8) ? 0 : 1;
}

static const unsigned char Tekram_sync[16] = {
25, 31, 37, 43, 50, 62, 75, 125, 12, 15, 18, 21, 6, 7, 9, 10
};

/*
* Get target set-up from Tekram format NVRAM.
*/
static void
sym_Tekram_setup_target(struct sym_hcb *np, int target, Tekram_nvram *nvram)
sym_Tekram_setup_target(struct sym_tcb *tp, int target, Tekram_nvram *nvram)
{
struct sym_tcb *tp = &np->target[target];
struct Tekram_target *tn = &nvram->target[target];

if (tn->flags & TEKRAM_TAGGED_COMMANDS) {
Expand All @@ -124,22 +127,22 @@ sym_Tekram_setup_target(struct sym_hcb *np, int target, Tekram_nvram *nvram)
if (tn->flags & TEKRAM_DISCONNECT_ENABLE)
tp->usrflags |= SYM_DISC_ENABLED;

/* If any device does not support parity, we will not use this option */
if (!(tn->flags & TEKRAM_PARITY_CHECK))
np->rv_scntl0 &= ~0x0a; /* SCSI parity checking disabled */
if (tn->flags & TEKRAM_SYNC_NEGO)
tp->usr_period = Tekram_sync[tn->sync_index & 0xf];
tp->usr_width = (tn->flags & TEKRAM_WIDE_NEGO) ? 1 : 0;
}

/*
* Get target setup from NVRAM.
*/
void sym_nvram_setup_target(struct sym_hcb *np, int target, struct sym_nvram *nvp)
void sym_nvram_setup_target(struct sym_tcb *tp, int target, struct sym_nvram *nvp)
{
switch (nvp->type) {
case SYM_SYMBIOS_NVRAM:
sym_Symbios_setup_target(np, target, &nvp->data.Symbios);
sym_Symbios_setup_target(tp, target, &nvp->data.Symbios);
break;
case SYM_TEKRAM_NVRAM:
sym_Tekram_setup_target(np, target, &nvp->data.Tekram);
sym_Tekram_setup_target(tp, target, &nvp->data.Tekram);
break;
default:
break;
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/scsi/sym53c8xx_2/sym_nvram.h
Original file line number Diff line number Diff line change
Expand Up @@ -194,12 +194,12 @@ struct sym_nvram {

#if SYM_CONF_NVRAM_SUPPORT
void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sym_nvram *nvram);
void sym_nvram_setup_target (struct sym_hcb *np, int target, struct sym_nvram *nvp);
void sym_nvram_setup_target (struct sym_tcb *tp, int target, struct sym_nvram *nvp);
int sym_read_nvram (struct sym_device *np, struct sym_nvram *nvp);
char *sym_nvram_type(struct sym_nvram *nvp);
#else
static inline void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sym_nvram *nvram) { }
static inline void sym_nvram_setup_target(struct sym_hcb *np, struct sym_nvram *nvram) { }
static inline void sym_nvram_setup_target(struct sym_tcb *tp, struct sym_nvram *nvram) { }
static inline int sym_read_nvram(struct sym_device *np, struct sym_nvram *nvp)
{
nvp->type = 0;
Expand Down

0 comments on commit c29820b

Please sign in to comment.