libata: xfer_mask is unsigned long not unsigned int

Jeff says xfer_mask is unsigned long not unsigned int.  Convert all
xfermask fields and handling functions to deal with unsigned longs.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Tejun Heo 2007-11-27 19:43:42 +09:00 committed by Jeff Garzik
parent 9d3501ab96
commit 7dc951aefd
2 changed files with 40 additions and 35 deletions

View File

@ -454,8 +454,9 @@ int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev,
* RETURNS: * RETURNS:
* Packed xfer_mask. * Packed xfer_mask.
*/ */
unsigned int ata_pack_xfermask(unsigned int pio_mask, unsigned long ata_pack_xfermask(unsigned long pio_mask,
unsigned int mwdma_mask, unsigned int udma_mask) unsigned long mwdma_mask,
unsigned long udma_mask)
{ {
return ((pio_mask << ATA_SHIFT_PIO) & ATA_MASK_PIO) | return ((pio_mask << ATA_SHIFT_PIO) & ATA_MASK_PIO) |
((mwdma_mask << ATA_SHIFT_MWDMA) & ATA_MASK_MWDMA) | ((mwdma_mask << ATA_SHIFT_MWDMA) & ATA_MASK_MWDMA) |
@ -472,8 +473,8 @@ unsigned int ata_pack_xfermask(unsigned int pio_mask,
* Unpack @xfer_mask into @pio_mask, @mwdma_mask and @udma_mask. * Unpack @xfer_mask into @pio_mask, @mwdma_mask and @udma_mask.
* Any NULL distination masks will be ignored. * Any NULL distination masks will be ignored.
*/ */
void ata_unpack_xfermask(unsigned int xfer_mask, unsigned int *pio_mask, void ata_unpack_xfermask(unsigned long xfer_mask, unsigned long *pio_mask,
unsigned int *mwdma_mask, unsigned int *udma_mask) unsigned long *mwdma_mask, unsigned long *udma_mask)
{ {
if (pio_mask) if (pio_mask)
*pio_mask = (xfer_mask & ATA_MASK_PIO) >> ATA_SHIFT_PIO; *pio_mask = (xfer_mask & ATA_MASK_PIO) >> ATA_SHIFT_PIO;
@ -506,7 +507,7 @@ static const struct ata_xfer_ent {
* RETURNS: * RETURNS:
* Matching XFER_* value, 0xff if no match found. * Matching XFER_* value, 0xff if no match found.
*/ */
u8 ata_xfer_mask2mode(unsigned int xfer_mask) u8 ata_xfer_mask2mode(unsigned long xfer_mask)
{ {
int highbit = fls(xfer_mask) - 1; int highbit = fls(xfer_mask) - 1;
const struct ata_xfer_ent *ent; const struct ata_xfer_ent *ent;
@ -529,7 +530,7 @@ u8 ata_xfer_mask2mode(unsigned int xfer_mask)
* RETURNS: * RETURNS:
* Matching xfer_mask, 0 if no match found. * Matching xfer_mask, 0 if no match found.
*/ */
unsigned int ata_xfer_mode2mask(u8 xfer_mode) unsigned long ata_xfer_mode2mask(u8 xfer_mode)
{ {
const struct ata_xfer_ent *ent; const struct ata_xfer_ent *ent;
@ -552,7 +553,7 @@ unsigned int ata_xfer_mode2mask(u8 xfer_mode)
* RETURNS: * RETURNS:
* Matching xfer_shift, -1 if no match found. * Matching xfer_shift, -1 if no match found.
*/ */
int ata_xfer_mode2shift(unsigned int xfer_mode) int ata_xfer_mode2shift(unsigned long xfer_mode)
{ {
const struct ata_xfer_ent *ent; const struct ata_xfer_ent *ent;
@ -576,7 +577,7 @@ int ata_xfer_mode2shift(unsigned int xfer_mode)
* Constant C string representing highest speed listed in * Constant C string representing highest speed listed in
* @mode_mask, or the constant C string "<n/a>". * @mode_mask, or the constant C string "<n/a>".
*/ */
const char *ata_mode_string(unsigned int xfer_mask) const char *ata_mode_string(unsigned long xfer_mask)
{ {
static const char * const xfer_mode_str[] = { static const char * const xfer_mode_str[] = {
"PIO0", "PIO0",
@ -1424,9 +1425,9 @@ static inline void ata_dump_id(const u16 *id)
* RETURNS: * RETURNS:
* Computed xfermask * Computed xfermask
*/ */
unsigned int ata_id_xfermask(const u16 *id) unsigned long ata_id_xfermask(const u16 *id)
{ {
unsigned int pio_mask, mwdma_mask, udma_mask; unsigned long pio_mask, mwdma_mask, udma_mask;
/* Usual case. Word 53 indicates word 64 is valid */ /* Usual case. Word 53 indicates word 64 is valid */
if (id[ATA_ID_FIELD_VALID] & (1 << 1)) { if (id[ATA_ID_FIELD_VALID] & (1 << 1)) {
@ -2050,7 +2051,7 @@ int ata_dev_configure(struct ata_device *dev)
struct ata_eh_context *ehc = &dev->link->eh_context; struct ata_eh_context *ehc = &dev->link->eh_context;
int print_info = ehc->i.flags & ATA_EHI_PRINTINFO; int print_info = ehc->i.flags & ATA_EHI_PRINTINFO;
const u16 *id = dev->id; const u16 *id = dev->id;
unsigned int xfer_mask; unsigned long xfer_mask;
char revbuf[7]; /* XYZ-99\0 */ char revbuf[7]; /* XYZ-99\0 */
char fwrevbuf[ATA_ID_FW_REV_LEN+1]; char fwrevbuf[ATA_ID_FW_REV_LEN+1];
char modelbuf[ATA_ID_PROD_LEN+1]; char modelbuf[ATA_ID_PROD_LEN+1];
@ -2907,8 +2908,8 @@ int ata_timing_compute(struct ata_device *adev, unsigned short speed,
int ata_down_xfermask_limit(struct ata_device *dev, unsigned int sel) int ata_down_xfermask_limit(struct ata_device *dev, unsigned int sel)
{ {
char buf[32]; char buf[32];
unsigned int orig_mask, xfer_mask; unsigned long orig_mask, xfer_mask;
unsigned int pio_mask, mwdma_mask, udma_mask; unsigned long pio_mask, mwdma_mask, udma_mask;
int quiet, highbit; int quiet, highbit;
quiet = !!(sel & ATA_DNXFER_QUIET); quiet = !!(sel & ATA_DNXFER_QUIET);
@ -3052,7 +3053,7 @@ int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
/* step 1: calculate xfer_mask */ /* step 1: calculate xfer_mask */
ata_link_for_each_dev(dev, link) { ata_link_for_each_dev(dev, link) {
unsigned int pio_mask, dma_mask; unsigned long pio_mask, dma_mask;
unsigned int mode_mask; unsigned int mode_mask;
if (!ata_dev_enabled(dev)) if (!ata_dev_enabled(dev))

View File

@ -267,7 +267,7 @@ enum {
PORT_DISABLED = 2, PORT_DISABLED = 2,
/* encoding various smaller bitmaps into a single /* encoding various smaller bitmaps into a single
* unsigned int bitmap * unsigned long bitmap
*/ */
ATA_NR_PIO_MODES = 7, ATA_NR_PIO_MODES = 7,
ATA_NR_MWDMA_MODES = 5, ATA_NR_MWDMA_MODES = 5,
@ -277,13 +277,6 @@ enum {
ATA_SHIFT_MWDMA = ATA_SHIFT_PIO + ATA_NR_PIO_MODES, ATA_SHIFT_MWDMA = ATA_SHIFT_PIO + ATA_NR_PIO_MODES,
ATA_SHIFT_UDMA = ATA_SHIFT_MWDMA + ATA_NR_MWDMA_MODES, ATA_SHIFT_UDMA = ATA_SHIFT_MWDMA + ATA_NR_MWDMA_MODES,
ATA_MASK_PIO = ((1 << ATA_NR_PIO_MODES) - 1)
<< ATA_SHIFT_PIO,
ATA_MASK_MWDMA = ((1 << ATA_NR_MWDMA_MODES) - 1)
<< ATA_SHIFT_MWDMA,
ATA_MASK_UDMA = ((1 << ATA_NR_UDMA_MODES) - 1)
<< ATA_SHIFT_UDMA,
/* size of buffer to pad xfers ending on unaligned boundaries */ /* size of buffer to pad xfers ending on unaligned boundaries */
ATA_DMA_PAD_SZ = 4, ATA_DMA_PAD_SZ = 4,
ATA_DMA_PAD_BUF_SZ = ATA_DMA_PAD_SZ * ATA_MAX_QUEUE, ATA_DMA_PAD_BUF_SZ = ATA_DMA_PAD_SZ * ATA_MAX_QUEUE,
@ -355,6 +348,15 @@ enum {
ATA_DMA_MASK_CFA = (1 << 2), /* DMA on CF Card */ ATA_DMA_MASK_CFA = (1 << 2), /* DMA on CF Card */
}; };
enum ata_xfer_mask {
ATA_MASK_PIO = ((1LU << ATA_NR_PIO_MODES) - 1)
<< ATA_SHIFT_PIO,
ATA_MASK_MWDMA = ((1LU << ATA_NR_MWDMA_MODES) - 1)
<< ATA_SHIFT_MWDMA,
ATA_MASK_UDMA = ((1LU << ATA_NR_UDMA_MODES) - 1)
<< ATA_SHIFT_UDMA,
};
enum hsm_task_states { enum hsm_task_states {
HSM_ST_IDLE, /* no command on going */ HSM_ST_IDLE, /* no command on going */
HSM_ST_FIRST, /* (waiting the device to) HSM_ST_FIRST, /* (waiting the device to)
@ -526,9 +528,9 @@ struct ata_device {
unsigned int cdb_len; unsigned int cdb_len;
/* per-dev xfer mask */ /* per-dev xfer mask */
unsigned int pio_mask; unsigned long pio_mask;
unsigned int mwdma_mask; unsigned long mwdma_mask;
unsigned int udma_mask; unsigned long udma_mask;
/* for CHS addressing */ /* for CHS addressing */
u16 cylinders; /* Number of cylinders */ u16 cylinders; /* Number of cylinders */
@ -854,15 +856,16 @@ extern void ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
extern void ata_tf_to_fis(const struct ata_taskfile *tf, extern void ata_tf_to_fis(const struct ata_taskfile *tf,
u8 pmp, int is_cmd, u8 *fis); u8 pmp, int is_cmd, u8 *fis);
extern void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf); extern void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf);
extern unsigned int ata_pack_xfermask(unsigned int pio_mask, extern unsigned long ata_pack_xfermask(unsigned long pio_mask,
unsigned int mwdma_mask, unsigned int udma_mask); unsigned long mwdma_mask, unsigned long udma_mask);
extern void ata_unpack_xfermask(unsigned int xfer_mask, unsigned int *pio_mask, extern void ata_unpack_xfermask(unsigned long xfer_mask,
unsigned int *mwdma_mask, unsigned int *udma_mask); unsigned long *pio_mask, unsigned long *mwdma_mask,
extern u8 ata_xfer_mask2mode(unsigned int xfer_mask); unsigned long *udma_mask);
extern unsigned int ata_xfer_mode2mask(u8 xfer_mode); extern u8 ata_xfer_mask2mode(unsigned long xfer_mask);
extern int ata_xfer_mode2shift(unsigned int xfer_mode); extern unsigned long ata_xfer_mode2mask(u8 xfer_mode);
extern const char *ata_mode_string(unsigned int xfer_mask); extern int ata_xfer_mode2shift(unsigned long xfer_mode);
extern unsigned int ata_id_xfermask(const u16 *id); extern const char *ata_mode_string(unsigned long xfer_mask);
extern unsigned long ata_id_xfermask(const u16 *id);
extern void ata_noop_dev_select(struct ata_port *ap, unsigned int device); extern void ata_noop_dev_select(struct ata_port *ap, unsigned int device);
extern void ata_std_dev_select(struct ata_port *ap, unsigned int device); extern void ata_std_dev_select(struct ata_port *ap, unsigned int device);
extern u8 ata_check_status(struct ata_port *ap); extern u8 ata_check_status(struct ata_port *ap);
@ -1001,7 +1004,8 @@ extern int ata_pci_prepare_sff_host(struct pci_dev *pdev,
const struct ata_port_info * const * ppi, const struct ata_port_info * const * ppi,
struct ata_host **r_host); struct ata_host **r_host);
extern int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits); extern int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits);
extern unsigned long ata_pci_default_filter(struct ata_device *, unsigned long); extern unsigned long ata_pci_default_filter(struct ata_device *dev,
unsigned long xfer_mask);
#endif /* CONFIG_PCI */ #endif /* CONFIG_PCI */
/* /*